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