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