From: Lisset Cuevas Date: Mon, 20 Apr 2020 21:28:44 +0000 (-0500) Subject: Bug 1631051-Store current configuration of auto refresh button in My Dashboard X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cc9a2f4727237992c1831032ac80bb464e86ff17;p=thirdparty%2Fbugzilla.git Bug 1631051-Store current configuration of auto refresh button in My Dashboard --- diff --git a/extensions/MyDashboard/web/js/flags.js b/extensions/MyDashboard/web/js/flags.js index bf0843702..9c5b743eb 100644 --- a/extensions/MyDashboard/web/js/flags.js +++ b/extensions/MyDashboard/web/js/flags.js @@ -11,13 +11,24 @@ $(function () { YUI({ base: 'js/yui3/', combine: false - }).use('node', 'datatable', 'datatable-sort', 'escape', function(Y) { + }).use('node', 'datatable', 'datatable-sort', 'escape', 'cookie', function(Y) { // Common var dataTable = { requestee: null, requester: null }; + var button_state = false, + refresh_interval = null; + + // Grab last used auto-refresh configuration from cookie or use default + var autorefresh_cookie = Y.Cookie.get("my_dashboard_autorefresh"); + if (autorefresh_cookie) { + if ("true" == autorefresh_cookie) { + button_state = true; + } + } + var updateFlagTable = async type => { if (!type) return; @@ -97,6 +108,17 @@ $(function () { } }; + var auto_updateFlagTable = function(o) { + if (button_state == true) { + refresh_interval = setInterval(function(e) { + updateFlagTable('requestee'); + updateFlagTable('requester'); + }, 1000*60*10); + } else { + clearInterval(refresh_interval); + } + }; + // Requestee dataTable.requestee = new Y.DataTable({ columns: [ @@ -148,21 +170,15 @@ $(function () { loadBugList('requester'); }); - var refresh_interval; Y.one('#auto_refresh').on('click', function(e) { - if(auto_refresh.checked == true){ - refresh_interval = setInterval(function(e) { - updateFlagTable("requester"); - updateFlagTable("requestee"); - },1000*60*10); - }else if(auto_refresh.checked == false){ - clearInterval(refresh_interval); - } + button_state = auto_refresh.checked; + auto_updateFlagTable(); }); // Initial load Y.on("contentready", function (e) { updateFlagTable("requestee"); + auto_updateFlagTable(); }, "#requestee_table"); Y.on("contentready", function (e) { updateFlagTable("requester"); diff --git a/extensions/MyDashboard/web/js/query.js b/extensions/MyDashboard/web/js/query.js index f39af33ae..f9373e11e 100644 --- a/extensions/MyDashboard/web/js/query.js +++ b/extensions/MyDashboard/web/js/query.js @@ -27,6 +27,7 @@ $(function() { var bugQueryTable = null, lastChangesCache = {}, default_query = "assignedbugs"; + refresh_interval = null; // Grab last used query name from cookie or use default var query_cookie = Y.Cookie.get("my_dashboard_query"); @@ -44,6 +45,16 @@ $(function() { } } + // Grab last used auto-refresh configuration from cookie or use default + var autorefresh_cookie = Y.Cookie.get("my_dashboard_autorefresh"); + if (autorefresh_cookie) { + if (autorefresh_cookie == 'true') { + Y.one("#auto_refresh").set('checked', true); + } else { + Y.Cookie.set("my_dashboard_autorefresh", "false"); + } + } + var updateQueryTable = async query_name => { if (!query_name) return; @@ -154,9 +165,20 @@ $(function() { bugQueryTable.plug(Y.Plugin.DataTableSort); + var auto_updateQueryTable = function(o) { + if (auto_refresh.checked == true) { + refresh_interval = setInterval(function(e) { + updateQueryTable(default_query); + }, 1000*60*10); + } else { + clearInterval(refresh_interval); + } + }; + // Initial load Y.on("contentready", function (e) { updateQueryTable(default_query); + auto_updateQueryTable(); }, "#query_table"); Y.one('#query').on('change', function(e) { @@ -173,15 +195,9 @@ $(function() { updateQueryTable(selected_value); }); - var refresh_interval; Y.one('#auto_refresh').on('click', function(e) { - if(auto_refresh.checked == true){ - refresh_interval = setInterval(function(e) { - updateQueryTable(default_query); - },1000*60*10); - }else if(auto_refresh.checked == false){ - clearInterval(refresh_interval); - } + auto_updateQueryTable(); + Y.Cookie.set("my_dashboard_autorefresh", auto_refresh.checked, { expires: new Date("January 12, 2030") }); }); Y.one('#query_markread').on('click', function(e) {