libs/cbi: Added support for stateful Values, Added editlink template
This commit is contained in:
parent
21d78afaa9
commit
355ac6b1a2
2 changed files with 32 additions and 3 deletions
|
@ -39,6 +39,9 @@ FORM_NODATA = 0
|
||||||
FORM_VALID = 1
|
FORM_VALID = 1
|
||||||
FORM_INVALID = -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
|
-- Loads a CBI map from given file, creating an environment and returns it
|
||||||
function load(cbimap, ...)
|
function load(cbimap, ...)
|
||||||
require("luci.fs")
|
require("luci.fs")
|
||||||
|
@ -233,6 +236,11 @@ function Map.get(self, section, option)
|
||||||
end
|
end
|
||||||
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
|
SimpleForm - A Simple non-UCI form
|
||||||
|
@ -505,7 +513,7 @@ end
|
||||||
function TypedSection.parse(self)
|
function TypedSection.parse(self)
|
||||||
if self.addremove then
|
if self.addremove then
|
||||||
-- Create
|
-- Create
|
||||||
local crval = "cbi.cts." .. self.config .. "." .. self.sectiontype
|
local crval = CREATE_PREFIX .. self.config .. "." .. self.sectiontype
|
||||||
local name = luci.http.formvalue(crval)
|
local name = luci.http.formvalue(crval)
|
||||||
if self.anonymous then
|
if self.anonymous then
|
||||||
if name then
|
if name then
|
||||||
|
@ -531,7 +539,7 @@ function TypedSection.parse(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Remove
|
-- Remove
|
||||||
crval = "cbi.rts." .. self.config
|
crval = REMOVE_PREFIX .. self.config
|
||||||
name = luci.http.formvaluetable(crval)
|
name = luci.http.formvaluetable(crval)
|
||||||
for k,v in pairs(name) do
|
for k,v in pairs(name) do
|
||||||
if self:cfgvalue(k) and self:checkscope(k) then
|
if self:cfgvalue(k) and self:checkscope(k) then
|
||||||
|
@ -606,6 +614,7 @@ function AbstractValue.__init__(self, map, option, ...)
|
||||||
self.default = nil
|
self.default = nil
|
||||||
self.size = nil
|
self.size = nil
|
||||||
self.optional = false
|
self.optional = false
|
||||||
|
self.stateful = false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Add a dependencie to another section field
|
-- Add a dependencie to another section field
|
||||||
|
@ -687,7 +696,9 @@ end
|
||||||
|
|
||||||
-- Return the UCI value of this object
|
-- Return the UCI value of this object
|
||||||
function AbstractValue.cfgvalue(self, section)
|
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
|
end
|
||||||
|
|
||||||
-- Validate the form value
|
-- Validate the form value
|
||||||
|
|
18
libs/cbi/luasrc/view/cbi/editlink.htm
Normal file
18
libs/cbi/luasrc/view/cbi/editlink.htm
Normal 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%>
|
Loading…
Reference in a new issue