]> git.proxmox.com Git - pmg-gui.git/commitdiff
add maild queue administration panel
authorDietmar Maurer <dietmar@proxmox.com>
Sat, 1 Apr 2017 15:58:50 +0000 (17:58 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Sat, 1 Apr 2017 16:00:01 +0000 (18:00 +0200)
js/MailQueue.js [new file with mode: 0644]
js/Makefile
js/QueueAdministration.js [new file with mode: 0644]
js/Workspace.js

diff --git a/js/MailQueue.js b/js/MailQueue.js
new file mode 100644 (file)
index 0000000..24ecbea
--- /dev/null
@@ -0,0 +1,142 @@
+Ext.define('pmg-mailq', {
+    extend: 'Ext.data.Model',
+    fields: [
+       'queue_id', 'queue_name',
+       { type: 'date',  dateFormat: 'timestamp', name: 'arrival_time'},
+       { type: 'integer', name: 'message_size'},
+       'sender', 'receiver', 'reason'
+    ],
+    idProperty: 'queue_id'
+});
+
+Ext.define('pmg-qshape', {
+    extend: 'Ext.data.Model',
+    fields: [
+       'domain',
+       { type: 'integer', name: 'total'},
+       { type: 'integer', name: '5s'},
+       { type: 'integer', name: '10s'},
+       { type: 'integer', name: '20s'},
+       { type: 'integer', name: '40s'},
+       { type: 'integer', name: '80s'},
+       { type: 'integer', name: '160s'},
+       { type: 'integer', name: '320s'},
+       { type: 'integer', name: '640s'},
+       { type: 'integer', name: '1280s'},
+       { type: 'integer', name: '1280s+'}
+    ],
+    proxy: {
+       type: 'proxmox',
+       url: "/api2/json/nodes/" + Proxmox.NodeName + "/postfix/qshape"
+    },
+    idProperty: 'domain'
+});
+
+Ext.define('PMG.Postfix.QShape', {
+    extend: 'Ext.grid.GridPanel',
+    alias: 'widget.pmgPostfixQShape',
+
+    store: {
+       autoLoad: true,
+       model: 'pmg-qshape'
+    },
+
+    controller: {
+
+       xclass: 'Ext.app.ViewController',
+
+       onFlush: function() {
+           console.log('flush');
+       },
+
+       onDeleteAll: function() {
+           console.log('delete all');
+       },
+
+       onDiscardVerifyDatabase: function() {
+           console.log('discard verify datatbase');
+       }
+    },
+
+    tbar: [
+        {
+           text: gettext('Flush Queue'),
+           handler: 'onFlush'
+       },
+       {
+           xtype: 'proxmoxButton',
+           text: gettext('Delete all Messages'),
+           selModel: null,
+           handler: 'onDeleteAll'
+       },
+       {
+           xtype: 'proxmoxButton',
+           text: gettext('Discard address verification database'),
+           selModel: null,
+           handler: 'onDiscardVerifyDatabase'
+       }
+    ],
+
+    columns: [
+       {
+           header: gettext('Domain'),
+           width: 200,
+           dataIndex: 'domain'
+       },
+       {
+           header: gettext('Total'),
+           width: 80,
+           dataIndex: 'total'
+       },
+       {
+           header: '5s',
+           width: 80,
+           dataIndex: '5s'
+       },
+       {
+           header: '10s',
+           width: 80,
+           dataIndex: '10s'
+       },
+       {
+           header: '20s',
+           width: 80,
+           dataIndex: '20s'
+       },
+       {
+           header: '40s',
+           width: 80,
+           dataIndex: '40s'
+       },
+       {
+           header: '80s',
+           width: 80,
+           dataIndex: '80s'
+       },
+       {
+           header: '160s',
+           width: 80,
+           dataIndex: '160s'
+       },
+       {
+           header: '320s',
+           width: 80,
+           dataIndex: '320s'
+       },
+       {
+           header: '640s',
+           width: 80,
+           dataIndex: '640s'
+       },
+       {
+           header: '1280s',
+           width: 80,
+           dataIndex: '1280s'
+       },
+       {
+           header: '1280s+',
+           width: 80,
+           dataIndex: '1280s+'
+       }
+    ]
+});
index 3b9c6391578005a98c12a8ab9a4415c2f3f5d802..51196999066cd5f520057a06c147c946463700e8 100644 (file)
@@ -38,6 +38,8 @@ JSSRC=                                                        \
        UserEdit.js                                     \
        UserView.js                                     \
        UserManagement.js                               \
+       QueueAdministration.js                          \
+       MailQueue.js                                    \
        ConfigPanel.js                                  \
        Workspace.js
 
diff --git a/js/QueueAdministration.js b/js/QueueAdministration.js
new file mode 100644 (file)
index 0000000..6fa2338
--- /dev/null
@@ -0,0 +1,16 @@
+Ext.define('PMG.QueueAdministration', {
+    extend: 'Ext.tab.Panel',
+    alias: 'widget.pmgQueueAdministration',
+
+    title: gettext('Queue Administration'),
+
+    border: false,
+    defaults: { border: false },
+
+    items: [
+       {
+           title: gettext('Deferred Mails'),
+           xtype: 'pmgPostfixQShape'
+       }
+    ]
+});
index c57ddacb1bc81d36d49031585b737bf659001395..a2e6771ca443044e9eaaea4f83ac2512231002ac 100644 (file)
@@ -335,7 +335,7 @@ Ext.define('PMG.StdWorkspace', {
                            groups: ['admin'],
                            title: gettext('Queues'),
                            itemId: 'queues',
-                           html: "Queues"
+                           items: [{ xtype: 'pmgQueueAdministration' }]
                        }
                    ]
                }