]>
Commit | Line | Data |
---|---|---|
0c77683d SI |
1 | /*global Proxmox*/ |
2 | Ext.define('pmg-tls-policy', { | |
3 | extend: 'Ext.data.Model', | |
4 | fields: [ 'domain', 'policy' ], | |
5 | idProperty: 'domain' | |
6 | }); | |
7 | ||
8 | Ext.define('PMG.MailProxyTLSDomains', { | |
9 | extend: 'Ext.grid.GridPanel', | |
10 | alias: ['widget.pmgMailProxyTLSDomains'], | |
11 | ||
12 | initComponent : function() { | |
13 | var me = this; | |
14 | ||
15 | var baseurl = '/config/tlspolicy'; | |
16 | var rstore = Ext.create('Proxmox.data.UpdateStore', { | |
17 | model: 'pmg-tls-policy', | |
18 | storeid: 'pmg-mailproxy-tls-store-' + (++Ext.idSeed), | |
19 | proxy: { | |
20 | type: 'proxmox', | |
21 | url: '/api2/json' + baseurl | |
22 | }, | |
23 | sorters: { | |
24 | property: 'domain', | |
25 | order: 'DESC' | |
26 | } | |
27 | }); | |
28 | ||
29 | var store = Ext.create('Proxmox.data.DiffStore', { rstore: rstore}); | |
30 | ||
31 | var reload = function() { | |
3155688b | 32 | rstore.load(); |
0c77683d SI |
33 | }; |
34 | ||
35 | me.selModel = Ext.create('Ext.selection.RowModel', {}); | |
36 | ||
37 | var remove_btn = Ext.createWidget('proxmoxStdRemoveButton', { | |
38 | selModel: me.selModel, | |
39 | baseurl: baseurl, | |
40 | callback: reload, | |
41 | waitMsgTarget: me | |
42 | }); | |
43 | ||
44 | var policy_selector_properties = { | |
45 | xtype: 'proxmoxKVComboBox', | |
46 | name: 'policy', | |
47 | fieldLabel: 'Policy', | |
48 | deleteEmpty: false, | |
49 | comboItems: [ | |
50 | [ 'none', 'none' ], | |
51 | [ 'may', 'may' ], | |
52 | [ 'encrypt', 'encrypt' ], | |
53 | [ 'dane', 'dane' ], | |
54 | [ 'dane-only', 'dane-only' ], | |
55 | [ 'fingerprint', 'fingerprint' ], | |
56 | [ 'verify', 'verify' ], | |
57 | [ 'secure', 'secure' ] | |
58 | ], | |
59 | allowBlank: true, | |
60 | value: 'encrypt' | |
61 | }; | |
62 | ||
63 | var run_editor = function() { | |
64 | var rec = me.selModel.getSelection()[0]; | |
65 | if (!rec) { | |
66 | return; | |
67 | } | |
68 | ||
69 | var config = { | |
70 | url: '/api2/extjs' + baseurl + '/' + rec.data.domain, | |
71 | method: 'PUT', | |
72 | subject: gettext('TLS Policy'), | |
73 | items: [ | |
74 | { | |
75 | xtype: 'displayfield', | |
76 | name: 'domain', | |
77 | fieldLabel: gettext('Domain') | |
78 | }, | |
79 | policy_selector_properties | |
80 | ] | |
81 | }; | |
82 | ||
83 | var win = Ext.createWidget('proxmoxWindowEdit', config); | |
84 | ||
85 | win.load(); | |
86 | win.on('destroy', reload); | |
87 | win.show(); | |
88 | }; | |
89 | ||
90 | var tbar = [ | |
91 | { | |
92 | xtype: 'proxmoxButton', | |
93 | text: gettext('Edit'), | |
94 | disabled: true, | |
95 | selModel: me.selModel, | |
96 | handler: run_editor | |
97 | }, | |
98 | { | |
99 | text: gettext('Create'), | |
100 | handler: function() { | |
101 | var config = { | |
102 | url: '/api2/extjs' + baseurl, | |
103 | method: 'POST', | |
104 | subject: gettext('TLS Policy'), | |
105 | isCreate: true, | |
106 | items: [ | |
107 | { | |
108 | xtype: 'proxmoxtextfield', | |
109 | name: 'domain', | |
110 | fieldLabel: gettext('Domain') | |
111 | }, policy_selector_properties | |
112 | ] | |
113 | }; | |
114 | ||
115 | var win = Ext.createWidget('proxmoxWindowEdit', config); | |
116 | ||
117 | win.on('destroy', reload); | |
118 | win.show(); | |
119 | } | |
120 | }, | |
121 | remove_btn | |
122 | ]; | |
123 | ||
124 | Proxmox.Utils.monStoreErrors(me, store, true); | |
125 | ||
126 | Ext.apply(me, { | |
127 | store: store, | |
128 | tbar: tbar, | |
129 | run_editor: run_editor, | |
130 | viewConfig: { | |
131 | trackOver: false | |
132 | }, | |
133 | columns: [ | |
134 | { | |
135 | header: gettext('Domain'), | |
136 | width: 200, | |
137 | sortable: true, | |
138 | dataIndex: 'domain' | |
139 | }, | |
140 | { | |
141 | header: gettext('Policy'), | |
142 | sortable: false, | |
143 | dataIndex: 'policy', | |
144 | flex: 1 | |
145 | } | |
146 | ], | |
147 | listeners: { | |
148 | itemdblclick: run_editor, | |
149 | activate: reload | |
150 | } | |
151 | }); | |
152 | ||
153 | me.on('activate', rstore.startUpdate); | |
154 | me.on('destroy', rstore.stopUpdate); | |
155 | me.on('deactivate', rstore.stopUpdate); | |
156 | me.callParent(); | |
157 | } | |
158 | }); |