CBI: Fix subdependencies
authorSteven Barth <steven@midlink.org>
Mon, 9 Nov 2009 11:22:29 +0000 (11:22 +0000)
committerSteven Barth <steven@midlink.org>
Mon, 9 Nov 2009 11:22:29 +0000 (11:22 +0000)
libs/cbi/luasrc/cbi.lua
libs/cbi/luasrc/view/cbi/full_valuefooter.htm

index 8ca9e5c..f6a2694 100644 (file)
@@ -1265,6 +1265,7 @@ function AbstractValue.__init__(self, map, section, option, ...)
        self.tag_reqerror = {}
        self.tag_error = {}
        self.deps = {}
+       self.subdeps = {}
        --self.cast = "string"
 
        self.track_missing = false
@@ -1595,7 +1596,7 @@ function ListValue.value(self, key, val, ...)
        table.insert(self.vallist, tostring(val))
 
        for i, deps in ipairs({...}) do
-               table.insert(self.deps, {add = "-"..key, deps=deps})
+               self.subdeps[#self.subdeps + 1] = {add = "-"..key, deps=deps}
        end
 end
 
index bdcd314..9130a99 100644 (file)
@@ -27,8 +27,21 @@ $Id$
        <%- end -%>
 </div>
 
-<% if #self.deps > 0 then -%>
+
+<% if #self.deps > 0 or #self.subdeps > 0 then -%>
        <script type="text/javascript" id="cbip-<%=self.config.."-"..section.."-"..self.option%>">
+               <% for j, d in ipairs(self.subdeps) do -%>
+                       cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option..d.add%>", {
+               <%-
+                       for k,v in pairs(d.deps) do
+               -%>
+                       <%-=string.format('"cbid.%s.%s.%s"', self.config, section, k) .. ":" .. string.format("%q", v)-%>
+                       <%-if next(d.deps, k) then-%>,<%-end-%>
+               <%-
+                       end
+               -%>
+                       }, "cbip-<%=self.config.."-"..section.."-"..self.option..d.add%>");
+               <%- end %>
                <% for j, d in ipairs(self.deps) do -%>
                        cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option..d.add%>", {
                <%-