]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1631051-Store current configuration of auto refresh button in My Dashboard
authorLisset Cuevas <lisset.cuevasj@gmail.com>
Mon, 20 Apr 2020 21:28:44 +0000 (16:28 -0500)
committerGitHub <noreply@github.com>
Mon, 20 Apr 2020 21:28:44 +0000 (17:28 -0400)
extensions/MyDashboard/web/js/flags.js
extensions/MyDashboard/web/js/query.js

index bf08437026e11e5fc78fcbfa14d1fdb0d758bdd5..9c5b743eb0973411fdb10aa524b83843a4597cb0 100644 (file)
@@ -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");
index f39af33ae887c6bad28d6097a1f8eabf60716490..f9373e11e8368fcca711e2769cbdf2638d46dd7e 100644 (file)
@@ -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) {