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