]> git.proxmox.com Git - pmg-gui.git/blob - js/MailProxyRelaying.js
mail proxy: tls destinations: consitent add/edit/remove button
[pmg-gui.git] / js / MailProxyRelaying.js
1 Ext.define('PMG.MailProxyRelaying', {
2 extend: 'Proxmox.grid.ObjectGrid',
3 alias: ['widget.pmgMailProxyRelaying'],
4
5 monStoreErrors: true,
6
7 initComponent: function() {
8 var me = this;
9
10 me.add_text_row('relay', gettext('Default Relay'), {
11 deleteEmpty: true,
12 defaultValue: Proxmox.Utils.noneText,
13 onlineHelp: 'pmgconfig_mailproxy_relaying',
14 });
15
16 me.add_integer_row('relayport', gettext('Relay Port'), {
17 defaultValue: 25,
18 deleteEmpty: true,
19 minValue: 1,
20 maxValue: 65535,
21 onlineHelp: 'pmgconfig_mailproxy_relaying',
22 });
23
24 me.add_combobox_row('relayprotocol', gettext('Relay Protocol'), {
25 defaultValue: 'smtp',
26 comboItems: [
27 ['smtp', 'SMTP'],
28 ['lmtp', 'LMTP']],
29 onlineHelp: 'pmgconfig_mailproxy_relaying',
30 });
31
32
33 me.add_boolean_row('relaynomx', gettext('Disable MX lookup (SMTP)'), {
34 onlineHelp: 'pmgconfig_mailproxy_relaying',
35 });
36
37 me.rows.smarthost = {
38 required: true,
39 multiKey: ['smarthost', 'smarthostport'],
40 header: gettext('Smarthost'),
41 renderer: function() {
42 var host = me.getObjectValue('smarthost', undefined);
43 var port = me.getObjectValue('smarthostport', undefined);
44 var result = '';
45 if (host) {
46 if (port) {
47 if (host.match(Proxmox.Utils.IP6_match)) {
48 result = "[" + host + "]:" + port;
49 } else {
50 result = host + ':' + port;
51 }
52 } else {
53 result = host;
54 }
55 }
56 if (result === '') {
57 result = Proxmox.Utils.noneText;
58 }
59 return result;
60 },
61 editor: {
62 xtype: 'proxmoxWindowEdit',
63 onlineHelp: 'pmgconfig_mailproxy_relaying',
64 subject: gettext('Smarthost'),
65 fieldDefaults: {
66 labelWidth: 100,
67 },
68 items: [
69 {
70 xtype: 'proxmoxtextfield',
71 name: 'smarthost',
72 deleteEmpty: true,
73 emptyText: Proxmox.Utils.noneText,
74 fieldLabel: gettext('Smarthost'),
75 },
76 {
77 xtype: 'proxmoxintegerfield',
78 name: 'smarthostport',
79 deleteEmpty: true,
80 minValue: 1,
81 maxValue: 65535,
82 emptyText: Proxmox.Utils.defaultText,
83 fieldLabel: gettext('Port'),
84 },
85 ],
86 },
87 onlineHelp: 'pmgconfig_mailproxy_relaying',
88 };
89
90 me.rows.smarthostport = { visible: false };
91
92 var baseurl = '/config/mail';
93
94 me.selModel = Ext.create('Ext.selection.RowModel', {});
95
96 Ext.apply(me, {
97 tbar: [{
98 text: gettext('Edit'),
99 xtype: 'proxmoxButton',
100 disabled: true,
101 handler: function() { me.run_editor(); },
102 selModel: me.selModel,
103 }],
104 url: '/api2/json' + baseurl,
105 editorConfig: {
106 url: '/api2/extjs' + baseurl,
107 onlineHelp: 'pmgconfig_mailproxy_relaying',
108 },
109 interval: 5000,
110 cwidth1: 200,
111 listeners: {
112 itemdblclick: me.run_editor,
113 },
114 });
115
116 me.callParent();
117
118 me.on('activate', me.rstore.startUpdate);
119 me.on('destroy', me.rstore.stopUpdate);
120 me.on('deactivate', me.rstore.stopUpdate);
121 },
122 });