--- /dev/null
+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+'
+ }
+ ]
+});