]> git.proxmox.com Git - pmg-gui.git/blob - js/FetchmailView.js
quarantine: use new controller for virus and attachment quarantines
[pmg-gui.git] / js / FetchmailView.js
1 Ext.define('pmg-fetchmail-users', {
2 extend: 'Ext.data.Model',
3 fields: [
4 'id', 'protocol', 'port', 'server', 'user', 'pass', 'target',
5 'ssl', 'keep',
6 { type: 'integer', name: 'interval' },
7 { type: 'boolean', name: 'enable' },
8 ],
9 proxy: {
10 type: 'proxmox',
11 url: "/api2/json/config/fetchmail",
12 },
13 idProperty: 'id',
14 });
15
16 Ext.define('PMG.FetchmailView', {
17 extend: 'Ext.grid.GridPanel',
18 xtype: 'pmgFetchmailView',
19
20 baseurl: '/api2/extjs/config/fetchmail',
21
22 store: {
23 autoDestroy: true,
24 autoLoad: true,
25 model: 'pmg-fetchmail-users',
26 },
27
28 controller: {
29
30 xclass: 'Ext.app.ViewController',
31
32 init: function(view) {
33 Proxmox.Utils.monStoreErrors(view, view.store, true);
34 },
35
36 onAdd: function() {
37 var view = this.getView();
38
39 var win = Ext.create('PMG.FetchmailEdit', {
40 url: view.baseurl,
41 method: 'POST',
42 });
43 win.on('destroy', function() { view.store.load(); });
44 win.show();
45 },
46
47 onEdit: function() {
48 var view = this.getView();
49
50 var rec = view.selModel.getSelection()[0];
51
52 var win = Ext.create('PMG.FetchmailEdit', {
53 userid: rec.data.id,
54 url: view.baseurl + '/' + rec.data.id,
55 method: 'PUT',
56 autoLoad: true,
57 });
58 win.on('destroy', function() { view.store.load(); });
59 win.show();
60 },
61
62 onAfterRemove: function(btn, res) {
63 var view = this.getView();
64 view.store.load();
65 },
66 },
67
68 tbar: [
69 {
70 text: gettext('Add'),
71 reference: 'addBtn',
72 handler: 'onAdd',
73 },
74 {
75 xtype: 'proxmoxButton',
76 text: gettext('Edit'),
77 disabled: true,
78 handler: 'onEdit',
79 },
80 {
81 xtype: 'proxmoxStdRemoveButton',
82 baseurl: '/config/fetchmail',
83 reference: 'removeBtn',
84 callback: 'onAfterRemove',
85 waitMsgTarget: true,
86 },
87 ],
88
89 listeners: {
90 //scope: 'controller',
91 itemdblclick: 'onEdit',
92 },
93
94 columns: [
95 {
96 header: gettext('Server'),
97 flex: 1,
98 renderer: Ext.String.htmlEncode,
99 dataIndex: 'server',
100 },
101 {
102 header: gettext('Protocol'),
103 dataIndex: 'protocol',
104 },
105 {
106 header: gettext('User name'),
107 flex: 1,
108 renderer: Ext.String.htmlEncode,
109 dataIndex: 'user',
110 },
111 {
112 header: gettext('Deliver to'),
113 flex: 1,
114 renderer: Ext.String.htmlEncode,
115 dataIndex: 'target',
116 },
117 {
118 header: gettext('Enabled'),
119 sortable: true,
120 renderer: Proxmox.Utils.format_boolean,
121 dataIndex: 'enable',
122 },
123 {
124 header: gettext('Interval'),
125 dataIndex: 'interval',
126 },
127 ],
128 });