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