=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.contextmenu.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.contextmenu.js 2013-12-04 14:39:36 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/dhis2/dhis2.contextmenu.js 2013-12-11 14:39:02 +0000 @@ -60,7 +60,7 @@ var config = dhis2.contextmenu.config; var $list = $('#' + config.listId); - var $menu = $('#' + config.menuId); + window.$menu = $('#' + config.menuId); var $menuItems = $menu.find('ul'); // make sure that all old event handler are removed (with .context namespace) @@ -111,8 +111,25 @@ } }); + var menuHeight = $menu.height(); + var menuWidth = $menu.width(); + var winHeight = $(window).height(); + var winWidth = $(window).width(); + + var pageX = e.pageX; + var pageY = e.pageY; + $menu.show(); - $menu.css({left: e.pageX, top: e.pageY}); + + if( (menuWidth + pageX) > winWidth ) { + pageX -= menuWidth; + } + + if( (menuHeight + pageY) > winHeight ) { + pageY -= menuHeight; + } + + $menu.css({left: pageX, top: pageY}); return false; });