]>
git.proxmox.com Git - pmg-gui.git/blob - js/PostfixMailQueue.js
1 Ext
.define('pmg-mailq', {
2 extend
: 'Ext.data.Model',
4 'queue_id', 'queue_name',
5 { type
: 'date', dateFormat
: 'timestamp', name
: 'arrival_time'},
6 { type
: 'integer', name
: 'message_size'},
7 'sender', 'receiver', 'reason'
12 Ext
.define('PMG.Postfix.MailQueue', {
13 extend
: 'Ext.grid.GridPanel',
14 alias
: 'widget.pmgPostfixMailQueue',
20 queuename
: 'deferred',
23 xclass
: 'Ext.data.BufferedStore',
31 xclass
: 'Ext.app.ViewController',
33 init: function(view
) {
34 if (view
.nodename
) view
.setNodename(view
.nodename
);
36 view
.delayFilterTask
= new Ext
.util
.DelayedTask(function() {
37 var filter
= view
.lookupReference('filter').getValue();
44 onChangeFilter: function(f
, v
) {
45 var view
= this.getView();
46 view
.delayFilterTask
.delay(500);
49 onFlush: function(button
, event
, rec
) {
50 var view
= this.getView();
52 Proxmox
.Utils
.API2Request({
53 url
: '/api2/extjs/nodes/' + view
.nodename
+ '/postfix/queue/' +
54 view
.queuename
+ '/' + rec
.data
.queue_id
,
57 failure: function (response
, opts
) {
58 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
64 onRemove: function(button
, event
, rec
) {
65 var view
= this.getView();
67 Proxmox
.Utils
.API2Request({
68 url
: '/api2/extjs/nodes/' + view
.nodename
+ '/postfix/queue/' +
69 view
.queuename
+ '/' + rec
.data
.queue_id
,
72 success: function(response
, opts
) {
75 failure: function (response
, opts
) {
76 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
83 activate: function() {
84 this.view
.updateProxy(); // reload
87 'field[reference=filter]': {
88 change
: 'onChangeFilter'
95 xtype
: 'proxmoxButton',
97 text
: gettext('Flush'),
101 xtype
: 'proxmoxStdRemoveButton',
106 html
: gettext('Filter') + ':'
117 header
: gettext('Time'),
119 renderer
: Ext
.util
.Format
.dateRenderer("Y-m-d H:i:s"),
120 dataIndex
: 'arrival_time'
125 dataIndex
: 'message_size'
128 header
: gettext('Sender'),
133 header
: gettext('Receiver'),
135 dataIndex
: 'receiver'
138 header
: gettext('Reason'),
146 updateProxy: function() {
149 if (me
.pendingLoad
) return;
155 url
: "/api2/json/nodes/" + me
.nodename
+ "/postfix/queue/" + me
.queuename
158 var filter
= me
.filter
;
159 var nodename
= me
.nodename
;
160 var queuename
= me
.queuename
;
162 if (filter
) { proxy
.extraParams
= { filter
: filter
}; }
165 me
.store
.setProxy(proxy
);
167 me
.pendingLoad
= true;
169 me
.store
.load(function() {
170 me
.pendingLoad
= false;
171 if (me
.nodename
!== nodename
|| me
.filter
!== filter
|| me
.queuename
!== queuename
) {
172 setTimeout(function() {
179 setFilter: function(filter
) {
180 this.lookupReference('filter').setValue(filter
);
183 setNodename: function(nodename
) {
186 me
.nodename
= nodename
;
191 setQueueName: function(queuename
) {
194 me
.queuename
= queuename
;