From 355ac6b1a27598499d64c793817877755e166f88 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Tue, 12 Aug 2008 15:31:09 +0000 Subject: [PATCH] libs/cbi: Added support for stateful Values, Added editlink template --- libs/cbi/luasrc/cbi.lua | 17 ++++++++++++++--- libs/cbi/luasrc/view/cbi/editlink.htm | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 libs/cbi/luasrc/view/cbi/editlink.htm 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 +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%> -- 2.11.0