summaryrefslogtreecommitdiffstats
path: root/core/js
diff options
context:
space:
mode:
authorThomas Pulzer <t.pulzer@kniel.de>2016-08-19 10:47:02 +0200
committerThomas Pulzer <t.pulzer@kniel.de>2016-08-19 10:50:51 +0200
commit58f9340d93f8d107ba7c849b7536d546be8cf7ad (patch)
tree0d45cc7a4e07eb7ba58b67bc8b08defbbc5b54f7 /core/js
parenta83c5e8b005209adf349636b2175fdb46bbc2d66 (diff)
downloadnextcloud-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.js33
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});
+ }
});
}