o.placeholder = '0.0.0.0/0';
o.modalonly = true;
- o = s.taboption('conntrack', form.Flag, 'conntrack', _('Force connection tracking'), _('Prevent the installation of <em>NOTRACK</em> rules which would bypass connection tracking.'));
- o.modalonly = true;
-
o = s.taboption('conntrack', form.Flag, 'masq_allow_invalid', _('Allow "invalid" traffic'), _('Do not install extra rules to reject forwarded traffic with conntrack state <em>invalid</em>. This may be required for complex asymmetric route setups.'));
o.modalonly = true;
unique: function(subvalidator, subargs) {
var ctx = this,
- option = findParent(ctx.field, '[data-type][data-name]'),
+ option = findParent(ctx.field, '[data-widget][data-name]'),
section = findParent(option, '.cbi-section'),
- query = '[data-type="%s"][data-name="%s"]'.format(option.getAttribute('data-type'), option.getAttribute('data-name')),
+ query = '[data-widget="%s"][data-name="%s"]'.format(option.getAttribute('data-widget'), option.getAttribute('data-name')),
unique = true;
section.querySelectorAll(query).forEach(function(sibling) {
.uneditable-input {
display: inline-block;
width: 210px;
- height: 30px;
padding: 4px;
font-size: 13px;
line-height: 18px;
border-radius: 3px;
}
+input,
+select,
+.cbi-dropdown:not(.btn):not(.cbi-button),
+.uneditable-input {
+ height: 30px;
+}
+
.uneditable-input {
color: #808080;
}
background-color: #fff;
}
-textarea {
- height: auto !important;
-}
-
.td > input[type=text],
.td > input[type=password],
.td > select,