]> git.proxmox.com Git - pmg-gui.git/blame - js/FetchmailView.js
FetchmailView.js - add remove button
[pmg-gui.git] / js / FetchmailView.js
CommitLineData
6a2f908e
DM
1Ext.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
16Ext.define('PMG.FetchmailView', {
17 extend: 'Ext.grid.GridPanel',
18 xtype: 'pmgFetchmailView',
19
c37614f5
DM
20 baseurl: '/api2/extjs/config/fetchmail',
21
6a2f908e
DM
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);
c37614f5
DM
34 },
35
36 onEdit: function() {
37 var view = this.getView();
38
39 var rec = view.selModel.getSelection()[0];
40
41 var win = Ext.create('PMG.FetchmailEdit', {
42 userid: rec.data.id,
43 url: view.baseurl + '/' + rec.data.id,
44 method: 'PUT',
45 autoLoad: true
46 });
47 win.on('destroy', function() { view.store.load(); });
48 win.show();
a989cf62
DM
49 },
50
51 onAfterRemove: function(btn, res) {
52 var view = this.getView();
53 view.store.load();
6a2f908e
DM
54 }
55 },
56
a989cf62
DM
57 tbar: [
58 {
59 xtype: 'proxmoxStdRemoveButton',
60 baseurl: '/config/fetchmail',
61 reference: 'removeBtn',
62 callback: 'onAfterRemove',
63 waitMsgTarget: true
64 },
65 ],
66
6a2f908e
DM
67 listeners: {
68 //scope: 'controller',
c37614f5 69 itemdblclick: 'onEdit',
6a2f908e
DM
70 },
71
c37614f5 72 columns: [
6a2f908e
DM
73 {
74 header: gettext('Server'),
75 flex: 1,
76 renderer: Ext.String.htmlEncode,
77 dataIndex: 'server'
78 },
79 {
80 header: gettext('User name'),
81 flex: 1,
82 renderer: Ext.String.htmlEncode,
83 dataIndex: 'user'
84 },
85 {
86 header: gettext('Deliver to'),
87 flex: 1,
88 renderer: Ext.String.htmlEncode,
89 dataIndex: 'target'
90 },
91 {
92 header: gettext('Enabled'),
93 sortable: true,
94 renderer: Proxmox.Utils.format_boolean,
95 dataIndex: 'enable'
96 },
97 {
98 header: gettext('Interval'),
99 dataIndex: 'interval'
100 }
101 ]
102});