'type': this.options.multiple ? 'checkbox' : 'radio',
'class': this.options.multiple ? 'cbi-input-checkbox' : 'cbi-input-radio',
'value': keys[i],
- 'checked': ((!i && !this.values.length) || this.values.indexOf(keys[i]) > -1) ? '' : null,
+ 'checked': (this.values.indexOf(keys[i]) > -1) ? '' : null,
'disabled': this.options.disabled ? '' : null
}),
E('label', { 'for': this.options.id ? 'widget.%s.%d'.format(this.options.id, i) : null }),
]));
frameEl.appendChild(brEl.cloneNode());
-
- if (!frameEl.querySelector('> span > input[checked]')
- frameEl.querySelector('> span > input').checked = true;
}
}
'require rpc';
'require form';
'require network';
-'require validation';
var callGetCertificateFiles = rpc.declare({
object: 'luci.openconnect',
o.value('pulse', 'Pulse Connect Secure SSL VPN');
o = s.taboption('general', form.Value, 'server', _('VPN Server'));
- o.validate = function(section_id, value) {
- var m = String(value).match(/^(?:(\w+):\/\/|)(?:\[([0-9a-f:.]{2,45})\]|([^\/:]+))(?::([0-9]{1,5}))?(?:\/.*)?$/i);
-
- if (!m)
- return _('Invalid server URL');
-
- if (m[1] != null) {
- if (!m[1].match(/^(?:http|https|socks|socks4|socks5)$/i))
- return _('Unsupported protocol');
- }
-
- if (m[2] != null) {
- if (!validation.parseIPv6(m[2]))
- return _('Invalid IPv6 address');
- }
-
- if (m[3] != null) {
- if (!validation.parseIPv4(m[3])) {
- if (!(m[3].length <= 253 &&
- (m[3].match(/^[a-zA-Z0-9_]+$/) != null ||
- (m[3].match(/^[a-zA-Z0-9_][a-zA-Z0-9_\-.]*[a-zA-Z0-9]$/) &&
- m[3].match(/[^0-9.]/)))))
- return _('Invalid hostname or IPv4 address');
- }
- }
-
- if (m[4] != null) {
- var p = +m[4];
-
- if (p < 0 || p > 65535)
- return _('Invalid port');
- }
-
- return true;
- };
+ o.datatype = 'host(0)';
o = s.taboption('general', form.Value, 'port', _('VPN Server port'));
o.placeholder = '443';
o = s.taboption('general', form.Value, 'password2', _('Password2'));
o.password = true;
-
+
o = s.taboption('general', form.Value, 'proxy', _('Proxy Server'));
o.optional = true;
o.optional = true;
o.placeholder = 1406;
o.datatype = 'range(68, 9200)';
-
+
o = s.taboption('advanced', form.Value, 'reconnect_timeout', _('Reconnect Timeout'));
o.optional = true;
o.placeholder = 300;