]> git.proxmox.com Git - pmg-gui.git/blame - js/MailProxyOptions.js
MailProxyOptions: add more options, cleanup
[pmg-gui.git] / js / MailProxyOptions.js
CommitLineData
7b27b6bc
DM
1Ext.define('PMG.MailProxyOptions', {
2 extend: 'Proxmox.grid.ObjectGrid',
3 alias: ['widget.pmgMailProxyOptions'],
4
5 initComponent : function() {
6 var me = this;
7
e866b4e7
DM
8 var register_bool = function(cfg, name, subject, defaultValue, labelWidth) {
9 cfg[name] = {
7b27b6bc 10 required: true,
e866b4e7
DM
11 defaultValue: defaultValue,
12 header: subject,
13 renderer: Proxmox.Utils.format_boolean,
7b27b6bc
DM
14 editor: {
15 xtype: 'proxmoxWindowEdit',
e866b4e7 16 subject: subject,
7b27b6bc 17 items: {
e866b4e7
DM
18 xtype: 'proxmoxcheckbox',
19 name: name,
20 uncheckedValue: 0,
21 defaultValue: defaultValue,
22 deleteDefaultValue: true,
23 labelWidth: labelWidth,
24 fieldLabel: subject
25 }
26 }
27 };
28 };
29
30 var register_integer = function(cfg, name, subject, defaultValue,
31 minValue, maxValue, labelWidth) {
32 cfg[name] = {
33 required: true,
34 defaultValue: defaultValue,
35 header: subject,
36 editor: {
37 xtype: 'proxmoxWindowEdit',
38 subject: subject,
39 items: {
40 xtype: 'proxmoxintegerfield',
41 name: 'name',
42 minValue: minValue,
43 maxValue: maxValue,
7b27b6bc 44 deleteEmpty: true,
e866b4e7
DM
45 value: defaultValue,
46 labelWidth: labelWidth,
47 fieldLabel: subject
7b27b6bc
DM
48 }
49 }
e866b4e7
DM
50 };
51 };
52
53 var rows = {};
54
55 register_integer(rows, 'maxsize', gettext('Message Size (bytes)'),
56 1024*1024*10, 1024, undefined, 150);
57
58 register_bool(rows, 'rejectunknown', gettext('Reject Unknown Clients'), 0, 150);
59
60 register_bool(rows, 'rejectunknownsender', gettext('Reject Unknown Senders'), 0, 150);
61
62 register_bool(rows, 'helotests', gettext('SMTP HELO checks'), 0, 150);
63
64 register_bool(rows, 'use_rbl', gettext('Use RBL checks'), 1, 150);
65
66 // fixme: verify receivers
67
68 register_bool(rows, 'greylist', gettext('Use Greylisting'), 1, 150);
69
70 register_bool(rows, 'spf', gettext('Use SPF'), 1, 100);
71
72 register_bool(rows, 'hide_received', gettext('Hide Internal Hosts'), 0, 150);
73
74 register_integer(rows, 'dwarning', gettext('Delay Warning Time (hours)'),
75 4, 0, undefined, 200);
76
77 register_integer(rows, 'conn_count_limit', gettext('Client Connection Count Limit'),
78 50, 0, 65535, 200);
79
80 register_integer(rows, 'conn_rate_limit', gettext('Client Connection Rate Limit'),
81 0, 0, undefined, 200);
82
83 register_integer(rows, 'message_rate_limit', gettext('Client Message Rate Limit'),
84 0, 0, undefined, 200);
85
86 rows.banner = {
87 required: true,
88 defaultValue: 'ESMTP Proxmox',
89 header: gettext('SMTPD Banner'),
90 editor: {
91 xtype: 'proxmoxWindowEdit',
92 subject: gettext('SMTPD Banner'),
93 items: {
94 xtype: 'proxmoxtextfield',
95 name: 'banner',
96 deleteEmpty: true,
97 fieldLabel: gettext('SMTPD Banner')
98 }
99 }
7b27b6bc
DM
100 };
101
102 var baseurl = '/config/mail';
103
104 Ext.apply(me, {
105 url: '/api2/json' + baseurl,
106 editorConfig: {
107 url: '/api2/extjs' + baseurl,
108 },
109 interval: 5000,
110 cwidth1: 200,
111 rows: rows,
112 listeners: {
113 itemdblclick: me.run_editor
114 }
115 });
116
117 me.callParent();
118
119 me.on('activate', me.rstore.startUpdate);
120 me.on('destroy', me.rstore.stopUpdate);
121 }
122});