]> git.proxmox.com Git - pmg-gui.git/blob - js/PostfixQShape.js
fix bug #1707: use correct units for deferred mail queue (minutes)
[pmg-gui.git] / js / PostfixQShape.js
1 /*global Proxmox*/
2 Ext.define('pmg-qshape', {
3 extend: 'Ext.data.Model',
4 fields: [
5 'domain',
6 { type: 'integer', name: 'total'},
7 { type: 'integer', name: '5m'},
8 { type: 'integer', name: '10m'},
9 { type: 'integer', name: '20m'},
10 { type: 'integer', name: '40m'},
11 { type: 'integer', name: '80m'},
12 { type: 'integer', name: '160m'},
13 { type: 'integer', name: '320m'},
14 { type: 'integer', name: '640m'},
15 { type: 'integer', name: '1280m'},
16 { type: 'integer', name: '1280m+'}
17 ],
18 idProperty: 'domain'
19 });
20
21 Ext.define('PMG.Postfix.QShape', {
22 extend: 'Ext.grid.GridPanel',
23 alias: 'widget.pmgPostfixQShape',
24
25 nodename : undefined,
26
27 store: {
28 autoLoad: true,
29 model: 'pmg-qshape'
30 },
31
32 controller: {
33
34 xclass: 'Ext.app.ViewController',
35
36 init: function(view) {
37 if (view.nodename) {
38 view.setNodename(view.nodename);
39 }
40 },
41
42 onFlush: function() {
43 var view = this.getView();
44
45 Proxmox.Utils.API2Request({
46 url: '/api2/extjs/nodes/' + view.nodename + '/postfix/flush_queues',
47 method: 'POST',
48 waitMsgTarget: view,
49 success: function(response, opts) {
50 view.store.load();
51 },
52 failure: function (response, opts) {
53 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
54 }
55 });
56 },
57
58 onDeleteAll: function() {
59 var view = this.getView();
60
61 Proxmox.Utils.API2Request({
62 url: '/api2/extjs/nodes/' + view.nodename + '/postfix/queue/deferred',
63 method: 'DELETE',
64 waitMsgTarget: view,
65 success: function(response, opts) {
66 view.store.load();
67 },
68 failure: function (response, opts) {
69 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
70 }
71 });
72 },
73
74 onDiscardVerifyDatabase: function() {
75 var view = this.getView();
76
77 Proxmox.Utils.API2Request({
78 url: '/api2/extjs/nodes/' + view.nodename + '/postfix/discard_verify_cache',
79 method: 'POST',
80 waitMsgTarget: view,
81 failure: function (response, opts) {
82 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
83 }
84 });
85 },
86
87 control: {
88 '#': {
89 activate: function() {
90 this.view.store.load(); // reload
91 }
92 }
93 }
94 },
95
96 tbar: [
97 {
98 text: gettext('Flush Queue'),
99 handler: 'onFlush'
100 },
101 {
102 xtype: 'proxmoxButton',
103 text: gettext('Delete all Messages'),
104 dangerous: true,
105 confirmMsg: "Are you sure you want to delete all deferred mails?",
106 selModel: null,
107 handler: 'onDeleteAll'
108 },
109 {
110 text: gettext('Discard address verification database'),
111 handler: 'onDiscardVerifyDatabase'
112 }
113 ],
114
115 columns: [
116 {
117 header: gettext('Domain'),
118 width: 200,
119 dataIndex: 'domain'
120 },
121 {
122 header: gettext('Total'),
123 width: 80,
124 dataIndex: 'total'
125 },
126 {
127 header: '5m',
128 width: 80,
129 dataIndex: '5m'
130 },
131 {
132 header: '10m',
133 width: 80,
134 dataIndex: '10m'
135 },
136 {
137 header: '20m',
138 width: 80,
139 dataIndex: '20m'
140 },
141 {
142 header: '40m',
143 width: 80,
144 dataIndex: '40m'
145 },
146 {
147 header: '80m',
148 width: 80,
149 dataIndex: '80m'
150 },
151 {
152 header: '160m',
153 width: 80,
154 dataIndex: '160m'
155 },
156 {
157 header: '320m',
158 width: 80,
159 dataIndex: '320m'
160 },
161 {
162 header: '640m',
163 width: 80,
164 dataIndex: '640m'
165 },
166 {
167 header: '1280m',
168 width: 80,
169 dataIndex: '1280m'
170 },
171 {
172 header: '1280m+',
173 width: 80,
174 dataIndex: '1280m+'
175 }
176 ],
177
178 setNodename: function(nodename) {
179 var me = this;
180
181 me.nodename = nodename;
182
183 me.store.setProxy({
184 type: 'proxmox',
185 url: "/api2/json/nodes/" + me.nodename + "/postfix/qshape"
186 });
187
188 me.store.load();
189 }
190
191 });