o.optional = true;
o.rmempty = true;
- o = s.taboption('adv_chain', form.Value, 'ban_allowflag', _('Allow Protocol/Ports'), _('Always allow a protocol \(tcp/udp\) with certain ports or port ranges in WAN-Input and WAN-Forward chain.'));
+ o = s.taboption('adv_chain', form.Value, 'ban_allowflag', _('Allow Protocol/Ports'), _('Always allow a protocol (tcp/udp) with certain ports or port ranges in WAN-Input and WAN-Forward chain.'));
o.placeholder = 'tcp 80 443-445';
o.rmempty = true;
if (!value) {
return _('Empty field not allowed');
}
- if (!value.match(/^[A-Za-z0-9\.\:]+$/)) {
+ if (!value.match(/^[A-Za-z0-9.:]+$/)) {
return _('Invalid characters');
}
return true;
if (!value) {
return true;
}
- if (!value.match(/^(http:\/\/|https:\/\/)[A-Za-z0-9\/\.\-_\?\&\+=:~#]+$/)) {
- return _('Protocol/URL format not supported');
+ if (!value.match(/^(https?:\/\/)[A-Za-z0-9-]+\.[A-Za-z0-9.-]+(:[0-9]+)?(\/[A-Za-z0-9._\-?&+=:~#%]*)?$/)) {
+ return _('Invalid URL format');
}
return true;
}
o.rmempty = true;
o = s.taboption('feeds', form.Value, 'ban_nftexpiry', _('Blocklist Set Expiry'), _('Expiry time for auto added blocklist Set members.'));
+ o.value('30ms');
o.value('10s');
o.value('1m');
o.value('5m');
o.value('2h');
o.value('1d');
o.value('7d');
+ o.value('2w');
o.placeholder = _('-- default --');
o.optional = true;
o.rmempty = true;