summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--libs/web/htdocs/luci-static/resources/cbi.js8
-rw-r--r--libs/web/luasrc/cbi/datatypes.lua8
2 files changed, 16 insertions, 0 deletions
diff --git a/libs/web/htdocs/luci-static/resources/cbi.js b/libs/web/htdocs/luci-static/resources/cbi.js
index 1cd49bc65d..1e751d47e6 100644
--- a/libs/web/htdocs/luci-static/resources/cbi.js
+++ b/libs/web/htdocs/luci-static/resources/cbi.js
@@ -219,6 +219,14 @@ var cbi_validators = {
return (val <= max);
return false;
+ },
+
+ 'neg': function(v, args)
+ {
+ if (args[0] && typeof cbi_validators[args[0]] == "function")
+ return cbi_validators[args[0]](v.replace(/^\s*!\s*/, ''));
+
+ return false;
}
};
diff --git a/libs/web/luasrc/cbi/datatypes.lua b/libs/web/luasrc/cbi/datatypes.lua
index 6640db6392..fc3048e37e 100644
--- a/libs/web/luasrc/cbi/datatypes.lua
+++ b/libs/web/luasrc/cbi/datatypes.lua
@@ -267,3 +267,11 @@ function max(val, max)
return false
end
+
+function neg(val, what)
+ if what and type(_M[what]) == "function" then
+ return _M[what](val:gsub("^%s*!%s*", ""))
+ end
+
+ return false
+end