Przeglądaj źródła

Mailboxes datatable - server side processing ordering

Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
Kristian Feldsam 1 rok temu
rodzic
commit
efcca61f5a
2 zmienionych plików z 6 dodań i 7 usunięć
  1. 1 7
      data/web/js/site/mailbox.js
  2. 5 0
      data/web/json_api.php

+ 1 - 7
data/web/js/site/mailbox.js

@@ -1002,7 +1002,6 @@ jQuery(function($){
           title: lang.last_mail_login,
           data: 'last_mail_login',
           searchable: false,
-          orderable: false,
           defaultContent: '',
           responsivePriority: 7,
           render: function (data, type) {
@@ -1016,18 +1015,15 @@ jQuery(function($){
           title: lang.last_pw_change,
           data: 'last_pw_change',
           searchable: false,
-          orderable: false,
           defaultContent: ''
         },
         {
           title: lang.in_use,
           data: 'in_use.value',
           searchable: false,
-          orderable: false,
           defaultContent: '',
           responsivePriority: 9,
-          className: 'dt-data-w100',
-          orderData: 24
+          className: 'dt-data-w100'
         },
         {
           title: lang.fname,
@@ -1093,7 +1089,6 @@ jQuery(function($){
           title: lang.msg_num,
           data: 'messages',
           searchable: false,
-          orderable: false,
           defaultContent: '',
           responsivePriority: 5
         },
@@ -1119,7 +1114,6 @@ jQuery(function($){
           title: lang.active,
           data: 'active',
           searchable: false,
-          orderable: false,
           defaultContent: '',
           responsivePriority: 4,
           render: function (data, type) {

+ 5 - 0
data/web/json_api.php

@@ -1057,6 +1057,11 @@ if (isset($_GET['query'])) {
                 $columns = [
                   ['db' => 'username', 'dt' => 2],
                   ['db' => 'quota', 'dt' => 3],
+                  ['db' => 'last_mail_login', 'dt' => 4, 'dummy' => true, 'order_subquery' => "SELECT MAX(`datetime`) FROM `sasl_log` WHERE `service` != 'SSO' AND `username` = `m`.`username`"],
+                  ['db' => 'last_pw_change', 'dt' => 5, 'dummy' => true, 'order_subquery' => "JSON_EXTRACT(attributes, '$.passwd_update')"],
+                  ['db' => 'in_use', 'dt' => 6, 'dummy' => true, 'order_subquery' => "(SELECT SUM(bytes) FROM `quota2` WHERE `quota2`.`username` = `m`.`username`) / `m`.`quota`"],
+                  ['db' => 'messages', 'dt' => 17, 'dummy' => true, 'order_subquery' => "SELECT SUM(messages) FROM `quota2` WHERE `quota2`.`username` = `m`.`username`"],
+                  ['db' => 'active', 'dt' => 21]
                 ];
 
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/lib/ssp.class.php';