diff options
author | Thomas Pulzer <t.pulzer@kniel.de> | 2016-08-19 10:47:02 +0200 |
---|---|---|
committer | Thomas Pulzer <t.pulzer@kniel.de> | 2016-08-19 10:50:51 +0200 |
commit | 58f9340d93f8d107ba7c849b7536d546be8cf7ad (patch) | |
tree | 0d45cc7a4e07eb7ba58b67bc8b08defbbc5b54f7 /core/js | |
parent | a83c5e8b005209adf349636b2175fdb46bbc2d66 (diff) | |
download | nextcloud-server-58f9340d93f8d107ba7c849b7536d546be8cf7ad.tar.gz nextcloud-server-58f9340d93f8d107ba7c849b7536d546be8cf7ad.zip |
Fixing infinite spinner animation
setupMainMenu() & setupUserMenu():
Changed click delegate to add the spinner animation only the primary mouse button was clicked without ctrl- or meta-key modifier
Adding mouseup delegate to hide the menu if the middle mouse button was clicked.
Redone #778
Diffstat (limited to 'core/js')
-rw-r--r-- | core/js/js.js | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/core/js/js.js b/core/js/js.js index 4e8d3a01416..799d2ba0b24 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1506,12 +1506,20 @@ function initCore() { if(!$app.is('a')) { $app = $app.closest('a'); } - if(!event.ctrlKey) { + if(event.which === 1 && !event.ctrlKey && !event.metaKey) { $app.addClass('app-loading'); } else { // Close navigation when opening app in // a new tab - OC.hideMenus(); + OC.hideMenus(function(){return false}); + } + }); + + $navigation.delegate('a', 'mouseup', function(event) { + if(event.which === 2) { + // Close navigation when opening app in + // a new tab via middle click + OC.hideMenus(function(){return false}); } }); } @@ -1519,14 +1527,29 @@ function initCore() { function setupUserMenu() { var $menu = $('#header #settings'); + // show loading feedback $menu.delegate('a', 'click', function(event) { var $page = $(event.target); if (!$page.is('a')) { $page = $page.closest('a'); } - $page.find('img').remove(); - $page.find('div').remove(); // prevent odd double-clicks - $page.prepend($('<div/>').addClass('icon-loading-small-dark')); + if(event.which === 1 && !event.ctrlKey && !event.metaKey) { + $page.find('img').remove(); + $page.find('div').remove(); // prevent odd double-clicks + $page.prepend($('<div/>').addClass('icon-loading-small-dark')); + } else { + // Close navigation when opening menu entry in + // a new tab + OC.hideMenus(function(){return false}); + } + }); + + $menu.delegate('a', 'mouseup', function(event) { + if(event.which === 2) { + // Close navigation when opening app in + // a new tab via middle click + OC.hideMenus(function(){return false}); + } }); } |