mirror of
https://git.proxmox.com/git/pmg-gui
synced 2025-06-03 01:09:12 +00:00
123 lines
2.9 KiB
JavaScript
123 lines
2.9 KiB
JavaScript
Ext.define('PMG.MailProxyOptions', {
|
|
extend: 'Proxmox.grid.ObjectGrid',
|
|
alias: ['widget.pmgMailProxyOptions'],
|
|
|
|
initComponent : function() {
|
|
var me = this;
|
|
|
|
var register_bool = function(cfg, name, subject, defaultValue, labelWidth) {
|
|
cfg[name] = {
|
|
required: true,
|
|
defaultValue: defaultValue,
|
|
header: subject,
|
|
renderer: Proxmox.Utils.format_boolean,
|
|
editor: {
|
|
xtype: 'proxmoxWindowEdit',
|
|
subject: subject,
|
|
items: {
|
|
xtype: 'proxmoxcheckbox',
|
|
name: name,
|
|
uncheckedValue: 0,
|
|
defaultValue: defaultValue,
|
|
deleteDefaultValue: true,
|
|
labelWidth: labelWidth,
|
|
fieldLabel: subject
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
var register_integer = function(cfg, name, subject, defaultValue,
|
|
minValue, maxValue, labelWidth) {
|
|
cfg[name] = {
|
|
required: true,
|
|
defaultValue: defaultValue,
|
|
header: subject,
|
|
editor: {
|
|
xtype: 'proxmoxWindowEdit',
|
|
subject: subject,
|
|
items: {
|
|
xtype: 'proxmoxintegerfield',
|
|
name: 'name',
|
|
minValue: minValue,
|
|
maxValue: maxValue,
|
|
deleteEmpty: true,
|
|
value: defaultValue,
|
|
labelWidth: labelWidth,
|
|
fieldLabel: subject
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
var rows = {};
|
|
|
|
register_integer(rows, 'maxsize', gettext('Message Size (bytes)'),
|
|
1024*1024*10, 1024, undefined, 150);
|
|
|
|
register_bool(rows, 'rejectunknown', gettext('Reject Unknown Clients'), 0, 150);
|
|
|
|
register_bool(rows, 'rejectunknownsender', gettext('Reject Unknown Senders'), 0, 150);
|
|
|
|
register_bool(rows, 'helotests', gettext('SMTP HELO checks'), 0, 150);
|
|
|
|
register_bool(rows, 'use_rbl', gettext('Use RBL checks'), 1, 150);
|
|
|
|
// fixme: verify receivers
|
|
|
|
register_bool(rows, 'greylist', gettext('Use Greylisting'), 1, 150);
|
|
|
|
register_bool(rows, 'spf', gettext('Use SPF'), 1, 100);
|
|
|
|
register_bool(rows, 'hide_received', gettext('Hide Internal Hosts'), 0, 150);
|
|
|
|
register_integer(rows, 'dwarning', gettext('Delay Warning Time (hours)'),
|
|
4, 0, undefined, 200);
|
|
|
|
register_integer(rows, 'conn_count_limit', gettext('Client Connection Count Limit'),
|
|
50, 0, 65535, 200);
|
|
|
|
register_integer(rows, 'conn_rate_limit', gettext('Client Connection Rate Limit'),
|
|
0, 0, undefined, 200);
|
|
|
|
register_integer(rows, 'message_rate_limit', gettext('Client Message Rate Limit'),
|
|
0, 0, undefined, 200);
|
|
|
|
rows.banner = {
|
|
required: true,
|
|
defaultValue: 'ESMTP Proxmox',
|
|
header: gettext('SMTPD Banner'),
|
|
editor: {
|
|
xtype: 'proxmoxWindowEdit',
|
|
subject: gettext('SMTPD Banner'),
|
|
items: {
|
|
xtype: 'proxmoxtextfield',
|
|
name: 'banner',
|
|
deleteEmpty: true,
|
|
fieldLabel: gettext('SMTPD Banner')
|
|
}
|
|
}
|
|
};
|
|
|
|
var baseurl = '/config/mail';
|
|
|
|
Ext.apply(me, {
|
|
url: '/api2/json' + baseurl,
|
|
editorConfig: {
|
|
url: '/api2/extjs' + baseurl,
|
|
},
|
|
interval: 5000,
|
|
cwidth1: 200,
|
|
rows: rows,
|
|
listeners: {
|
|
itemdblclick: me.run_editor
|
|
}
|
|
});
|
|
|
|
me.callParent();
|
|
|
|
me.on('activate', me.rstore.startUpdate);
|
|
me.on('destroy', me.rstore.stopUpdate);
|
|
}
|
|
});
|