diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-01-12 21:46:20 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-01-12 21:46:20 -0500 |
commit | 713113d6c05e7a85d68ad096e25536a0553f5534 (patch) | |
tree | b29ccf419bd0a71be75d55e0983e4aba8b273a7a /assets/js/src | |
parent | 3699073371acc66ccacb56a89e87147a9c90d8c4 (diff) |
Add dropdown menu for subtasks
Diffstat (limited to 'assets/js/src')
-rw-r--r-- | assets/js/src/Dropdown.js | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/assets/js/src/Dropdown.js b/assets/js/src/Dropdown.js index 81ce2509..146a3c17 100644 --- a/assets/js/src/Dropdown.js +++ b/assets/js/src/Dropdown.js @@ -14,25 +14,31 @@ Dropdown.prototype.listen = function() { self.close(); var submenu = $(this).next('ul'); - var submenuHeight = 240; var offset = $(this).offset(); - var height = $(this).height(); // Clone the submenu outside of the column to avoid clipping issue with overflow $("body").append(jQuery("<div>", {"id": "dropdown"})); submenu.clone().appendTo("#dropdown"); var clone = $("#dropdown ul"); - clone.css('left', offset.left); + clone.addClass('dropdown-submenu-open'); + + var submenuHeight = clone.outerHeight(); + var submenuWidth = clone.outerWidth(); if (offset.top + submenuHeight - $(window).scrollTop() > $(window).height()) { - clone.css('top', offset.top - submenuHeight - height); + clone.css('top', offset.top - submenuHeight - 5); } else { - clone.css('top', offset.top + height); + clone.css('top', offset.top + $(this).height()); } - clone.addClass('dropdown-submenu-open'); + if (offset.left + submenuWidth > $(window).width()) { + clone.css('left', offset.left - submenuWidth + $(this).outerWidth()); + } + else { + clone.css('left', offset.left); + } }); $(document).on('click', '.dropdown-submenu-open li', function(e) { |