Skip to content
Snippets Groups Projects
Commit f70e85b0 authored by Jorrit Schaap's avatar Jorrit Schaap
Browse files

Task #9349: make context menu direct child of body, and set position based on...

Task #9349: make context menu direct child of body, and set position based on mouse click event. This way all styles and overflows are handled better
parent 13af045c
No related branches found
No related tags found
No related merge requests found
......@@ -27,6 +27,7 @@
dElement.bind('contextmenu', function(event) {
//TODO: remove link to dataService in this generic plugin
var dataService = dScope.scope.dataService;
var docElement = angular.element($document);
if(dScope.task.model.raTask) {
dataService.selected_task_id = dScope.task.model.raTask.id;
......@@ -38,15 +39,15 @@
$document.find('#gantt-context-menu')[0].remove();
//unbind document close event handlers
angular.element($document).unbind('click', closeContextMenu);
angular.element($document).unbind('contextmenu', closeContextMenu);
docElement.unbind('click', closeContextMenu);
docElement.unbind('contextmenu', closeContextMenu);
}
//create contextmenu element
//with list of menu items,
//each with it's own action
var contextmenuElement = angular.element('<div id="gantt-context-menu"></div>');
var ulElement = angular.element('<ul style="z-index:10000; position:absolute; top:initial; left:initial; display:block;" role="menu" class="dropdown-menu"></ul>');
var ulElement = angular.element('<ul class="dropdown-menu" role="menu" style="left:' + event.clientX + 'px; top:' + event.clientY + 'px; z-index: 100000; display:block;"></ul>');
contextmenuElement.append(ulElement);
var liElement = angular.element('<li><a href="#">Copy Task</a></li>');
ulElement.append(liElement);
......@@ -60,16 +61,17 @@
contextmenuElement.remove();
//unbind document close event handlers
angular.element($document).unbind('click', closeContextMenu);
angular.element($document).unbind('contextmenu', closeContextMenu);
docElement.unbind('click', closeContextMenu);
docElement.unbind('contextmenu', closeContextMenu);
};
//click anywhere to remove the contextmenu
angular.element($document).bind('click', closeContextMenu);
angular.element($document).bind('contextmenu', closeContextMenu);
docElement.bind('click', closeContextMenu);
docElement.bind('contextmenu', closeContextMenu);
//add contextmenu to clicked element
dElement.append(contextmenuElement);
//add contextmenu to body
var body = $document.find('body');
body.append(contextmenuElement);
//prevent bubbling event upwards
return false;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment