From ecc60ce540b589dce3509803f5ced1807494538d Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 12 Sep 2018 14:17:19 -0400 Subject: [PATCH] Add HTML buffer to reduce flicker on AJAX menu update. GitLab issue #511. Signed-off-by: Roberto Rosario --- .../appearance/static/appearance/js/mayan_app.js | 12 ++++++++++-- mayan/apps/appearance/templates/appearance/root.html | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/mayan/apps/appearance/static/appearance/js/mayan_app.js b/mayan/apps/appearance/static/appearance/js/mayan_app.js index ac6f3179bc..ba69e424cd 100644 --- a/mayan/apps/appearance/static/appearance/js/mayan_app.js +++ b/mayan/apps/appearance/static/appearance/js/mayan_app.js @@ -115,6 +115,9 @@ class MayanApp { doRefreshMainMenu (options) { var self = this; + var $mainMenu = $('#main-menu'); + var $mainMenuBuffer = $('#main-menu-buffer'); + $.ajax({ complete: function() { setTimeout(app.doRefreshMainMenu, options.interval, options); @@ -123,7 +126,12 @@ class MayanApp { var $elements = $('.dropdown.open'); if ($elements.length === 0) { // Don't refresh the HTML if there are open dropdowns - $('#main-menu').html(data); + $mainMenuBuffer.html(data); + $mainMenuBuffer.show(); + $mainMenu.hide(); + $mainMenu.html($mainMenuBuffer.html()); + $mainMenu.show(); + $mainMenuBuffer.hide(); } }, url: options.url, @@ -240,7 +248,7 @@ class MayanApp { setTimeout( function () { self.callbackAJAXSpinnerUpdate(); - }, 350 + }, 450 ); }); diff --git a/mayan/apps/appearance/templates/appearance/root.html b/mayan/apps/appearance/templates/appearance/root.html index 7d36325908..61818e8940 100644 --- a/mayan/apps/appearance/templates/appearance/root.html +++ b/mayan/apps/appearance/templates/appearance/root.html @@ -36,6 +36,7 @@ +