diff options
author | Steven Barth <steven@midlink.org> | 2008-08-12 15:31:09 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2008-08-12 15:31:09 +0000 |
commit | 355ac6b1a27598499d64c793817877755e166f88 (patch) | |
tree | 7507e2d1c34eb5d95cf068a2c1684c4e483d70b5 | |
parent | 21d78afaa92498fa62c808ed444f4c1dd7cce33e (diff) |
libs/cbi: Added support for stateful Values, Added editlink template
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 17 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/editlink.htm | 18 |
2 files changed, 32 insertions, 3 deletions
diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index ad5a51974..024687c6f 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -39,6 +39,9 @@ FORM_NODATA = 0 FORM_VALID = 1 FORM_INVALID = -1 +CREATE_PREFIX = "cbi.cts." +REMOVE_PREFIX = "cbi.rts." + -- Loads a CBI map from given file, creating an environment and returns it function load(cbimap, ...) require("luci.fs") @@ -233,6 +236,11 @@ function Map.get(self, section, option) end end +-- UCI stateget +function Map.stateget(self, section, option) + return uci.get_statevalue(self.config, section, option) +end + --[[ SimpleForm - A Simple non-UCI form @@ -505,7 +513,7 @@ end function TypedSection.parse(self) if self.addremove then -- Create - local crval = "cbi.cts." .. self.config .. "." .. self.sectiontype + local crval = CREATE_PREFIX .. self.config .. "." .. self.sectiontype local name = luci.http.formvalue(crval) if self.anonymous then if name then @@ -531,7 +539,7 @@ function TypedSection.parse(self) end -- Remove - crval = "cbi.rts." .. self.config + crval = REMOVE_PREFIX .. self.config name = luci.http.formvaluetable(crval) for k,v in pairs(name) do if self:cfgvalue(k) and self:checkscope(k) then @@ -606,6 +614,7 @@ function AbstractValue.__init__(self, map, option, ...) self.default = nil self.size = nil self.optional = false + self.stateful = false end -- Add a dependencie to another section field @@ -687,7 +696,9 @@ end -- Return the UCI value of this object function AbstractValue.cfgvalue(self, section) - return self.map:get(section, self.option) + return self.stateful + and self.map:stateget(section, self.option) + or self.map:get(section, self.option) end -- Validate the form value diff --git a/libs/cbi/luasrc/view/cbi/editlink.htm b/libs/cbi/luasrc/view/cbi/editlink.htm new file mode 100644 index 000000000..83260e437 --- /dev/null +++ b/libs/cbi/luasrc/view/cbi/editlink.htm @@ -0,0 +1,18 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth <steven@midlink.org> +Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ + +-%> + +<%+cbi/valueheader%> +<a href="<%=REQUEST_URI%>/<%=section%>"><%:edit%></a> +<%+cbi/valuefooter%> |