From: Steven Barth Date: Tue, 12 Aug 2008 15:31:09 +0000 (+0000) Subject: libs/cbi: Added support for stateful Values, Added editlink template X-Git-Tag: 0.8.0~462 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=355ac6b1a27598499d64c793817877755e166f88;p=project%2Fluci.git libs/cbi: Added support for stateful Values, Added editlink template --- diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index ad5a519744..024687c6fb 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 0000000000..83260e437a --- /dev/null +++ b/libs/cbi/luasrc/view/cbi/editlink.htm @@ -0,0 +1,18 @@ +<%# +LuCI - Lua Configuration Interface +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +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%> +<%:edit%> +<%+cbi/valuefooter%>