]>
Commit | Line | Data |
---|---|---|
7b27b6bc DM |
1 | Ext.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 | }); |