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