diff --git a/UI/WebServerResources/js/Scheduler/CalendarListController.js b/UI/WebServerResources/js/Scheduler/CalendarListController.js index 4bb086b75..167999d3f 100644 --- a/UI/WebServerResources/js/Scheduler/CalendarListController.js +++ b/UI/WebServerResources/js/Scheduler/CalendarListController.js @@ -66,6 +66,7 @@ // Update the component being dragged $rootScope.$on('calendar:dragend', updateComponentFromGhost); + $rootScope.$on('calendar:doubleclick', updateComponentFromGhost); $scope.$on('$destroy', function() { // Deregister hotkeys diff --git a/UI/WebServerResources/js/Scheduler/sgDraggableCalendarBlock.directive.js b/UI/WebServerResources/js/Scheduler/sgDraggableCalendarBlock.directive.js index b2d3465b5..92e61c44b 100644 --- a/UI/WebServerResources/js/Scheduler/sgDraggableCalendarBlock.directive.js +++ b/UI/WebServerResources/js/Scheduler/sgDraggableCalendarBlock.directive.js @@ -34,6 +34,7 @@ // Start dragging on mousedown element.on('mousedown', onDragDetect); + element.on('dblclick', onDoubleClick); // Deregister listeners when removing the element from the DOM scope.$on('$destroy', function() { @@ -218,6 +219,35 @@ }); } + function onDoubleClick(ev) { + var block, pointerHandler, startDate, newData, newComponent; + + startDate = calendarDayCtrl.dayString.parseDate(Preferences.$mdDateLocaleProvider, '%Y-%m-%e'); + newData = { + type: 'appointment', + pid: Calendar.$defaultCalendar(), + summary: l('New Event'), + startDate: startDate, + isAllDay: 1 + }; + newComponent = new Component(newData); + block = { + component: newComponent, + dayNumber: calendarDayCtrl.dayNumber, + length: 0 + }; + block.component.blocks = [block]; + + pointerHandler = new SOGoEventDragPointerHandler('double-click'); + pointerHandler.initFromBlock(block); + + // Update Component.$ghost + Component.$ghost.pointerHandler = pointerHandler; + + Component.$ghost.component = block.component; + $rootScope.$emit('calendar:doubleclick'); + } + /** * SOGoCoordinates */