libs/web: add new datatypes min(...), max(...) and neg_network_ip4addr
This commit is contained in:
parent
64c6f8f4b6
commit
354aeb44f6
2 changed files with 60 additions and 1 deletions
|
@ -2,7 +2,7 @@
|
|||
LuCI - Lua Configuration Interface
|
||||
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2008-2010 Jo-Philipp Wich <xm@subsignal.org>
|
||||
Copyright 2008-2011 Jo-Philipp Wich <xm@subsignal.org>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -153,6 +153,8 @@ var cbi_validators = {
|
|||
'hostname': function(v)
|
||||
{ if ( v.length <= 253 )
|
||||
return (v.match(/^[a-zA-Z0-9][a-zA-Z0-9\-.]*[a-zA-Z0-9]$/) != null);
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
'wpakey': function(v)
|
||||
|
@ -179,6 +181,12 @@ var cbi_validators = {
|
|||
return (v.match(/^[a-zA-Z0-9_]+$/) != null);
|
||||
},
|
||||
|
||||
'neg_network_ip4addr': function(v)
|
||||
{
|
||||
v = v.replace(/^\s*!/, "");
|
||||
return cbi_validators.uciname(v) || cbi_validators.ip4addr(v);
|
||||
},
|
||||
|
||||
'range': function(v, args)
|
||||
{
|
||||
var min = parseInt(args[0]);
|
||||
|
@ -188,6 +196,28 @@ var cbi_validators = {
|
|||
if (!isNaN(min) && !isNaN(max) && !isNaN(val))
|
||||
return ((val >= min) && (val <= max));
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
'min': function(v, args)
|
||||
{
|
||||
var min = parseInt(args[0]);
|
||||
var val = parseInt(v);
|
||||
|
||||
if (!isNaN(min) && !isNaN(val))
|
||||
return (val >= min);
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
'max': function(v, args)
|
||||
{
|
||||
var max = parseInt(args[0]);
|
||||
var val = parseInt(v);
|
||||
|
||||
if (!isNaN(max) && !isNaN(val))
|
||||
return (val <= max);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -227,6 +227,13 @@ function uciname(val)
|
|||
return (val:match("^[a-zA-Z0-9_]+$") ~= nil)
|
||||
end
|
||||
|
||||
function neg_network_ip4addr(val)
|
||||
if type(v) == "string" then
|
||||
v = v:gsub("^%s*!", "")
|
||||
return (uciname(v) or ip4addr(v))
|
||||
end
|
||||
end
|
||||
|
||||
function range(val, min, max)
|
||||
val = tonumber(val)
|
||||
min = tonumber(min)
|
||||
|
@ -238,3 +245,25 @@ function range(val, min, max)
|
|||
|
||||
return false
|
||||
end
|
||||
|
||||
function min(val, min)
|
||||
val = tonumber(val)
|
||||
min = tonumber(min)
|
||||
|
||||
if val ~= nil and min ~= nil then
|
||||
return (val >= min)
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function max(val, max)
|
||||
val = tonumber(val)
|
||||
max = tonumber(max)
|
||||
|
||||
if val ~= nil and max ~= nil then
|
||||
return (val <= max)
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue