]> git.proxmox.com Git - pmg-gui.git/blob - js/RelayDomains.js
quarantine grids: use arrow function for size renderer
[pmg-gui.git] / js / RelayDomains.js
1 Ext.define('pmg-domains', {
2 extend: 'Ext.data.Model',
3 fields: ['domain', 'comment'],
4 idProperty: 'domain',
5 });
6
7 Ext.define('PMG.RelayDomains', {
8 extend: 'Ext.grid.GridPanel',
9 alias: ['widget.pmgRelayDomains'],
10
11 baseurl: '/config/domains',
12 domain_desc: gettext('Relay Domain'),
13
14 onlineHelp: 'pmgconfig_mailproxy_relay_domains',
15
16 initComponent: function() {
17 var me = this;
18
19 var store = new Ext.data.Store({
20 model: 'pmg-domains',
21 sorters: {
22 property: 'domain',
23 direction: 'ASC',
24 },
25 proxy: {
26 type: 'proxmox',
27 url: '/api2/json' + me.baseurl,
28 },
29 });
30
31 var reload = function() {
32 store.load();
33 };
34
35 me.selModel = Ext.create('Ext.selection.RowModel', {});
36
37 var remove_btn = Ext.createWidget('proxmoxStdRemoveButton', {
38 selModel: me.selModel,
39 baseurl: me.baseurl,
40 callback: reload,
41 waitMsgTarget: me,
42 });
43
44 var run_editor = function() {
45 var rec = me.selModel.getSelection()[0];
46 if (!rec) {
47 return;
48 }
49
50 var config = {
51 url: '/api2/extjs' + me.baseurl + '/' + rec.data.domain,
52 onlineHelp: me.onlineHelp,
53 method: 'PUT',
54 subject: me.domain_desc,
55 items: [
56 {
57 xtype: 'displayfield',
58 name: 'domain',
59 fieldLabel: me.domain_desc,
60 },
61 {
62 xtype: 'textfield',
63 name: 'comment',
64 fieldLabel: gettext("Comment"),
65 },
66 ],
67 };
68
69 var win = Ext.createWidget('proxmoxWindowEdit', config);
70
71 win.load();
72 win.on('destroy', reload);
73 win.show();
74 };
75
76 var tbar = [
77 {
78 xtype: 'proxmoxButton',
79 text: gettext('Edit'),
80 disabled: true,
81 selModel: me.selModel,
82 handler: run_editor,
83 },
84 {
85 text: gettext('Create'),
86 handler: function() {
87 var config = {
88 method: 'POST',
89 url: '/api2/extjs' + me.baseurl,
90 onlineHelp: me.onlineHelp,
91 isCreate: true,
92 subject: gettext("Relay Domain"),
93 items: [
94 {
95 xtype: 'proxmoxtextfield',
96 name: 'domain',
97 fieldLabel: me.domain_desc,
98 },
99 {
100 xtype: 'proxmoxtextfield',
101 name: 'comment',
102 fieldLabel: gettext("Comment"),
103 },
104 ],
105 };
106
107 var win = Ext.createWidget('proxmoxWindowEdit', config);
108
109 win.on('destroy', reload);
110 win.show();
111 },
112 },
113 remove_btn,
114 ];
115
116 Proxmox.Utils.monStoreErrors(me, store, true);
117
118 Ext.apply(me, {
119 store: store,
120 tbar: tbar,
121 run_editor: run_editor,
122 viewConfig: {
123 trackOver: false,
124 },
125 columns: [
126 {
127 header: me.domain_desc,
128 width: 200,
129 sortable: true,
130 dataIndex: 'domain',
131 },
132 {
133 header: gettext('Comment'),
134 sortable: false,
135 renderer: Ext.String.htmlEncode,
136 dataIndex: 'comment',
137 flex: 1,
138 },
139 ],
140 listeners: {
141 itemdblclick: run_editor,
142 activate: reload,
143 },
144 });
145
146 me.callParent();
147 },
148 });