X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fluci-base%2Fhtdocs%2Fluci-static%2Fresources%2Fcbi.js;h=b334703bdfb421964a57d6c7e64f4abda64f5dd1;hb=b2274e5d6d27cdd0819d9e35058ebcd2cb8b55f5;hp=b819230cf3af0d96accfb710ead029d7e9ced59f;hpb=bf407f087cde592631bd0c95948e32cbd0efab08;p=project%2Fluci.git diff --git a/modules/luci-base/htdocs/luci-static/resources/cbi.js b/modules/luci-base/htdocs/luci-static/resources/cbi.js index b819230cf..b334703bd 100644 --- a/modules/luci-base/htdocs/luci-static/resources/cbi.js +++ b/modules/luci-base/htdocs/luci-static/resources/cbi.js @@ -118,48 +118,88 @@ var cbi_validators = { return false; }, - 'ipmask': function() + 'ip4prefix': function() { - return cbi_validators.ipmask4.apply(this) || - cbi_validators.ipmask6.apply(this); + return !isNaN(this) && this >= 0 && this <= 32; }, - 'ipmask4': function() + 'ip6prefix': function() { - var ip = this, mask = 32; + return !isNaN(this) && this >= 0 && this <= 128; + }, - if (ip.match(/^(\S+)\/(\S+)$/)) + 'cidr': function() + { + return cbi_validators.cidr4.apply(this) || + cbi_validators.cidr6.apply(this); + }, + + 'cidr4': function() + { + if (this.match(/^(\S+)\/(\S+)$/)) { ip = RegExp.$1; mask = RegExp.$2; + return cbi_validators.ip4addr.apply(ip) && + cbi_validators.ip4prefix.apply(mask); } + return false; + }, - if (!isNaN(mask) && (mask < 0 || mask > 32)) - return false; - - if (isNaN(mask) && !cbi_validators.ip4addr.apply(mask)) - return false; - - return cbi_validators.ip4addr.apply(ip); + 'cidr6': function() + { + if (this.match(/^(\S+)\/(\S+)$/)) + { + ip = RegExp.$1; + mask = RegExp.$2; + return cbi_validators.ip6addr.apply(ip) && + cbi_validators.ip6prefix.apply(mask); + } + return false; }, - 'ipmask6': function() + 'ipnet4': function() { - var ip = this, mask = 128; + if (this.match(/^(\S+)\/(\S+)$/)) + { + ip = RegExp.$1; + net = RegExp.$2; + return cbi_validators.ip4addr.apply(ip) && + cbi_validators.ip4addr.apply(net); + } + return false; + }, - if (ip.match(/^(\S+)\/(\S+)$/)) + 'ipnet6': function() + { + if (this.match(/^(\S+)\/(\S+)$/)) { ip = RegExp.$1; - mask = RegExp.$2; + net = RegExp.$2; + return cbi_validators.ip6addr.apply(ip) && + cbi_validators.ip6addr.apply(net); } + return false; + }, - if (!isNaN(mask) && (mask < 0 || mask > 128)) - return false; + 'ipmask': function() + { + return cbi_validators.ipmask4.apply(this) || + cbi_validators.ipmask6.apply(this); + }, - if (isNaN(mask) && !cbi_validators.ip6addr.apply(mask)) - return false; + 'ipmask4': function() + { + return cbi_validators.cidr4.apply(this) || + cbi_validators.ipnet4.apply(this) || + cbi_validators.ip4addr.apply(this); + }, - return cbi_validators.ip6addr.apply(ip); + 'ipmask6': function() + { + return cbi_validators.cidr6.apply(this) || + cbi_validators.ipnet6.apply(this) || + cbi_validators.ip6addr.apply(this); }, 'port': function() @@ -189,7 +229,7 @@ var cbi_validators = { { return cbi_validators.hostname.apply(this) || ((ipv4only != 1) && cbi_validators.ipaddr.apply(this)) || - ((ipv4only == 1) && cb_validators.ip4addr.apply(this)); + ((ipv4only == 1) && cbi_validators.ip4addr.apply(this)); }, 'hostname': function()