فهرست منبع

[Web] Remember FooTable settings by using state plugin, fixes #2122

andryyy 6 سال پیش
والد
کامیت
af49a41ff6
3فایلهای تغییر یافته به همراه50 افزوده شده و 59 حذف شده
  1. 3 13
      data/web/js/admin.js
  2. 43 46
      data/web/js/mailbox.js
  3. 4 0
      data/web/js/user.js

+ 3 - 13
data/web/js/admin.js

@@ -50,14 +50,6 @@ jQuery(function($){
     $(heading).children('.table-lines').text(function(){
       return ft_paging.totalRows;
     })
-    if (current_page[name]) {
-      ft_paging.goto(parseInt(current_page[name]))
-    }
-  }
-  function paging_admin_after(ft, name) {
-    var ft_paging = ft.use(FooTable.Paging)
-    current_page[name] = ft_paging.current;
-    localStorage.setItem('current_page', JSON.stringify(current_page));
   }
   function draw_domain_admins() {
     ft_domainadmins = FooTable.init('#domainadminstable', {
@@ -82,8 +74,8 @@ jQuery(function($){
       }),
       "empty": lang.empty,
       "paging": {"enabled": true,"limit": 5,"size": log_pagination_size},
-      "filtering": {"enabled": true,"delay": 1,"position": "left","connectors": false,"placeholder": lang.filter_table
-      },
+      "state": {"enabled": true},
+      "filtering": {"enabled": true,"delay": 1,"position": "left","connectors": false,"placeholder": lang.filter_table},
       "sorting": {"enabled": true}
     });
   }
@@ -110,6 +102,7 @@ jQuery(function($){
       "empty": lang.empty,
       "paging": {"enabled": true,"limit": 5,"size": log_pagination_size},
       "filtering": {"enabled": false},
+      "state": {"enabled": true},
       "sorting": {"enabled": true}
     });
   }
@@ -222,9 +215,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_admin_ready(ft, 'queuetable');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_admin_after(ft, 'queuetable');
         }
       }
     });

+ 43 - 46
data/web/js/mailbox.js

@@ -179,11 +179,6 @@ jQuery(function($){
   // http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery
   var entityMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};
   function escapeHtml(n){return String(n).replace(/[&<>"'`=\/]/g,function(n){return entityMap[n]})}
-  if (localStorage.getItem("current_page") === null) {
-    var current_page = {};
-  } else {
-    var current_page = JSON.parse(localStorage.getItem('current_page'));
-  }
   // http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
   function validateEmail(email) {
     var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
@@ -210,14 +205,6 @@ jQuery(function($){
     $(heading).children('.table-lines').text(function(){
       return ft_paging.totalRows;
     })
-    if (current_page[name]) {
-      ft_paging.goto(parseInt(current_page[name]))
-    }
-  }
-  function paging_mailbox_after(ft, name) {
-    var ft_paging = ft.use(FooTable.Paging)
-    current_page[name] = ft_paging.current;
-    localStorage.setItem('current_page', JSON.stringify(current_page));
   }
   function draw_domain_table() {
     ft_domain_table = FooTable.init('#domain_table', {
@@ -280,6 +267,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -293,9 +283,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'domain_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'domain_table');
         }
       }
     });
@@ -319,6 +306,7 @@ jQuery(function($){
         {"name":"spam_aliases","filterable": false,"title":lang.spam_aliases,"breakpoints":"xs sm md"},
         {"name":"tls_enforce_in","filterable": false,"title":lang.tls_enforce_in,"breakpoints":"all"},
         {"name":"tls_enforce_out","filterable": false,"title":lang.tls_enforce_out,"breakpoints":"all"},
+        {"name":"quarantine_notification","filterable": false,"title":lang.quarantine_notification,"breakpoints":"all"},
         {"name":"in_use","filterable": false,"type":"html","title":lang.in_use,"sortValue": function(value){
           return Number($(value).find(".progress-bar").attr('aria-valuenow'));
         },
@@ -350,6 +338,15 @@ jQuery(function($){
             item.chkbox = '<input type="checkbox" data-id="mailbox" name="multi_select" value="' + encodeURIComponent(item.username) + '" />';
             item.tls_enforce_in = '<span class="text-' + (item.attributes.tls_enforce_in == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-lock"></span>';
             item.tls_enforce_out = '<span class="text-' + (item.attributes.tls_enforce_out == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-lock"></span>';
+            if (item.attributes.quarantine_notification === 'never') {
+              item.quarantine_notification = lang.never;
+            } else if (item.attributes.quarantine_notification === 'hourly') {
+              item.quarantine_notification = lang.hourly;
+            } else if (item.attributes.quarantine_notification === 'daily') {
+              item.quarantine_notification = lang.daily;
+            } else if (item.attributes.quarantine_notification === 'weekly') {
+              item.quarantine_notification = lang.weekly;
+            }
             if (acl_data.login_as === 1) {
             item.action = '<div class="btn-group">' +
               '<a href="/edit/mailbox/' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
@@ -375,6 +372,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -392,9 +392,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'mailbox_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'mailbox_table');
         }
       }
     });
@@ -441,6 +438,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -457,9 +457,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'resource_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'resource_table');
         }
       }
     });
@@ -506,6 +503,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -519,9 +519,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'bcc_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'bcc_table');
         }
       }
     });
@@ -563,6 +560,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -576,9 +576,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'recipient_map_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'recipient_map_table');
         }
       }
     });
@@ -626,6 +623,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -639,9 +639,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'tls_policy_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'tls_policy_table');
         }
       }
     });
@@ -687,6 +684,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -700,9 +700,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'transport_maps_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'transport_maps_table');
         }
       }
     });
@@ -760,6 +757,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -776,9 +776,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'alias_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'alias_table');
         }
       }
     });
@@ -817,6 +814,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -830,9 +830,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'aliasdomain_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'aliasdomain_table');
         }
       }
     });
@@ -892,6 +889,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -905,9 +905,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'sync_job_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'sync_job_table');
         }
       }
     });
@@ -955,6 +952,9 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {
+        "enabled": true
+      },
       "filtering": {
         "enabled": true,
         "delay": 100,
@@ -968,9 +968,6 @@ jQuery(function($){
       "on": {
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'filter_table');
-        },
-        "after.ft.paging": function(e, ft){
-          paging_mailbox_after(ft, 'filter_table');
         }
       }
     });

+ 4 - 0
data/web/js/user.js

@@ -81,6 +81,7 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {"enabled": true},
       "sorting": {
         "enabled": true
       }
@@ -147,6 +148,7 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {"enabled": true},
       "sorting": {
         "enabled": true
       }
@@ -182,6 +184,7 @@ jQuery(function($){
           });
         }
       }),
+      "state": {"enabled": true},
       "paging": {
         "enabled": true,
         "limit": 5,
@@ -227,6 +230,7 @@ jQuery(function($){
         "limit": 5,
         "size": pagination_size
       },
+      "state": {"enabled": true},
       "sorting": {
         "enabled": true
       }