X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=libs%2Fcbi%2Fluasrc%2Fcbi.lua;h=024687c6fb236bf27825fc5bfc77dad0a4600851;hb=355ac6b1a27598499d64c793817877755e166f88;hp=0ec2ff815de7095fe94c56fefc5ac6ff9498d62c;hpb=bdb4bbde130ba4cfb86746dde2905fc12b94175f;p=project%2Fluci.git diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 0ec2ff815..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 @@ -649,7 +658,7 @@ function AbstractValue.parse(self, section) if self.rmempty or self.optional then self:remove(section) elseif not fvalue or fvalue ~= cvalue then - self.tag_missing[section] = true + --self.tag_missing[section] = true end end end @@ -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