luci-base: Add time and data datatypes for use with firewall app
Adding LuCI configuation of the firewall time and data uci options is in progress and this adds the necessary datatypes for validating those fields.
This commit is contained in:
parent
63155e9932
commit
6318f67fd4
2 changed files with 86 additions and 0 deletions
|
@ -322,6 +322,47 @@ var cbi_validators = {
|
|||
'phonedigit': function()
|
||||
{
|
||||
return (this.match(/^[0-9\*#!\.]+$/) != null);
|
||||
},
|
||||
'timehhmmss': function()
|
||||
{
|
||||
return (this.match(/^[0-6][0-9]:[0-6][0-9]:[0-6][0-9]$/) != null);
|
||||
},
|
||||
'dateyyyymmdd': function()
|
||||
{
|
||||
if (this == null) {
|
||||
return false;
|
||||
}
|
||||
if (this.match(/^(\d\d\d\d)-(\d\d)-(\d\d)/)) {
|
||||
var year = RegExp.$1;
|
||||
var month = RegExp.$2;
|
||||
var day = RegExp.$2
|
||||
|
||||
var days_in_month = [ 31, 28, 31, 30, 31, 30, 31, 31, 30 , 31, 30, 31 ];
|
||||
function is_leap_year(year) {
|
||||
return ((year % 4) == 0) && ((year % 100) != 0) || ((year % 400) == 0);
|
||||
}
|
||||
function get_days_in_month(month, year) {
|
||||
if ((month == 2) && is_leap_year(year)) {
|
||||
return 29;
|
||||
} else {
|
||||
return days_in_month[month];
|
||||
}
|
||||
}
|
||||
/* Firewall rules in the past don't make sense */
|
||||
if (year < 2015) {
|
||||
return false;
|
||||
}
|
||||
if ((month <= 0) || (month > 12)) {
|
||||
return false;
|
||||
}
|
||||
if ((day <= 0) || (day > get_days_in_month(month, year))) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -341,3 +341,48 @@ end
|
|||
function phonedigit(val)
|
||||
return (val:match("^[0-9\*#!%.]+$") ~= nil)
|
||||
end
|
||||
|
||||
function timehhmmss(val)
|
||||
return (val:match("^[0-6][0-9]:[0-6][0-9]:[0-6][0-9]$") ~= nil)
|
||||
end
|
||||
|
||||
function dateyyyymmdd(val)
|
||||
if val ~= nil then
|
||||
yearstr, monthstr, daystr = val:match("^(%d%d%d%d)-(%d%d)-(%d%d)$")
|
||||
if (yearstr == nil) or (monthstr == nil) or (daystr == nil) then
|
||||
return false;
|
||||
end
|
||||
year = tonumber(yearstr)
|
||||
month = tonumber(monthstr)
|
||||
day = tonumber(daystr)
|
||||
if (year == nil) or (month == nil) or (day == nil) then
|
||||
return false;
|
||||
end
|
||||
|
||||
local days_in_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
|
||||
|
||||
local function is_leap_year(year)
|
||||
return (year % 4 == 0) and ((year % 100 ~= 0) or (year % 400 == 0))
|
||||
end
|
||||
|
||||
function get_days_in_month(month, year)
|
||||
if (month == 2) and is_leap_year(year) then
|
||||
return 29
|
||||
else
|
||||
return days_in_month[month]
|
||||
end
|
||||
end
|
||||
if (year < 2015) then
|
||||
return false
|
||||
end
|
||||
if ((month == 0) or (month > 12)) then
|
||||
return false
|
||||
end
|
||||
if ((day == 0) or (day > get_days_in_month(month, year))) then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue