Overall CBI improvements: DummyValue handling, dependency conflicts, ...

This commit is contained in:
Steven Barth 2008-09-19 10:44:35 +00:00
parent e20ee5ca00
commit 1999bfc066
4 changed files with 19 additions and 14 deletions

View file

@ -26,11 +26,9 @@ function cbi_d_add(field, dep, next) {
function cbi_d_checkvalue(target, ref) {
var t = document.getElementById(target);
var value
var value;
if (!t) {
return true
} else if (!t.value) {
if (!t || !t.value) {
value = "";
} else {
value = t.value;

View file

@ -1011,7 +1011,7 @@ function AbstractValue.cfgvalue(self, section)
return value[1]
end
elseif self.cast == "table" then
return {value}
return luci.util.split(value, "%s+", nil, true)
end
end
@ -1065,6 +1065,20 @@ function DummyValue.__init__(self, ...)
self.value = nil
end
function DummyValue.cfgvalue(self, section)
local value
if self.value then
if type(self.value) == "function" then
value = self:value(section)
else
value = self.value
end
else
value = AbstractValue.cfgvalue(self, section)
end
return value
end
function DummyValue.parse(self)
end

View file

@ -15,15 +15,8 @@ $Id$
<%+cbi/valueheader%>
<% if self.href then %><a href="<%=self.href%>"><% end -%>
<%- if self.value then
if type(self.value) == "function" then %>
<%=luci.util.pcdata(self:value(section))%>
<% else %>
<%=luci.util.pcdata(self.value)%>
<% end
else %>
<%=luci.util.pcdata(self:cfgvalue(section))%>
<% end -%>
<%- if self.href then %></a><%end%>
&#160;
<input type="hidden" id="<%=cbid%>" value="<%=luci.util.pcdata(self:cfgvalue(section))%>" />
<%+cbi/valuefooter%>

View file

@ -43,7 +43,7 @@ $Id$
<select id="cbi.opt.<%=self.config%>.<%=section%>" name="cbi.opt.<%=self.config%>.<%=section%>">
<option><%:cbi_addopt%></option>
<% for key, val in pairs(self.optionals[section]) do -%>
<option id="cbi-<%=self.config.."-"..section.."-"..val.option%>" value="<%=val.option%>"><%=striptags(val.title)%></option>
<option id="cbid-<%=self.config.."-"..section.."-"..val.option%>" value="<%=val.option%>"><%=striptags(val.title)%></option>
<%- end %>
</select>
<script type="text/javascript"><% for key, val in pairs(self.optionals[section]) do %>