libs/cbi: Added support for stateful Values, Added editlink template

This commit is contained in:
Steven Barth 2008-08-12 15:31:09 +00:00
parent 21d78afaa9
commit 355ac6b1a2
2 changed files with 32 additions and 3 deletions

View file

@ -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

View file

@ -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%>