diff options
Diffstat (limited to 'libs/cbi')
-rw-r--r-- | libs/cbi/htdocs/luci-static/resources/cbi.js | 28 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/cell_valuefooter.htm | 6 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/cell_valueheader.htm | 3 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/full_valuefooter.htm | 6 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/nullsection.htm | 2 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/ucisection.htm | 5 |
6 files changed, 29 insertions, 21 deletions
diff --git a/libs/cbi/htdocs/luci-static/resources/cbi.js b/libs/cbi/htdocs/luci-static/resources/cbi.js index 227e33269d..f70818e16e 100644 --- a/libs/cbi/htdocs/luci-static/resources/cbi.js +++ b/libs/cbi/htdocs/luci-static/resources/cbi.js @@ -1,6 +1,6 @@ var cbi_d = []; -function cbi_d_add(field, dep) { +function cbi_d_add(field, dep, next) { var obj = document.getElementById(field); if (obj) { var entry @@ -12,10 +12,10 @@ function cbi_d_add(field, dep) { } if (!entry) { entry = { - "id": field, "node": obj, - "parent": obj.parentNode, - "next": obj.nextSibling, + "id": field, + "parent": obj.parentNode.id, + "next": next, "deps": [] }; cbi_d.unshift(entry); @@ -57,16 +57,20 @@ function cbi_d_update() { var state = false; for (var i=0; i<cbi_d.length; i++) { var entry = cbi_d[i]; - if (entry.node.parentNode && !cbi_d_check(entry.deps)) { - entry.parent.removeChild(entry.node); - state = (state || !entry.node.parentNode) - } else if (!entry.node.parentNode && cbi_d_check(entry.deps)) { - if (!entry.next) { - entry.parent.appendChild(entry.node); + var next = document.getElementById(entry.next) + var node = document.getElementById(entry.id) + var parent = document.getElementById(entry.parent) + + if (node && node.parentNode && !cbi_d_check(entry.deps)) { + node.parentNode.removeChild(node); + state = (state || !node.parentNode) + } else if ((!node || !node.parentNode) && cbi_d_check(entry.deps)) { + if (!next) { + parent.appendChild(entry.node); } else { - entry.parent.insertBefore(entry.node, entry.next); + next.parentNode.insertBefore(entry.node, next); } - state = (state || entry.node.parentNode) + state = (state || (node && node.parentNode)) } } if (state) { diff --git a/libs/cbi/luasrc/view/cbi/cell_valuefooter.htm b/libs/cbi/luasrc/view/cbi/cell_valuefooter.htm index e4f7982942..c325e49cb4 100644 --- a/libs/cbi/luasrc/view/cbi/cell_valuefooter.htm +++ b/libs/cbi/luasrc/view/cbi/cell_valuefooter.htm @@ -12,6 +12,8 @@ You may obtain a copy of the License at $Id$ -%> +</div> +<div id="cbip-<%=self.config.."-"..section.."-"..self.option%>"></div> </td> <% if #self.deps > 0 then -%> @@ -26,7 +28,7 @@ $Id$ <%- end -%> - }); + }, "cbip-<%=self.config.."-"..section.."-"..self.option%>"); <%- end %> </script> -<%- end %> +<%- end %>
\ No newline at end of file diff --git a/libs/cbi/luasrc/view/cbi/cell_valueheader.htm b/libs/cbi/luasrc/view/cbi/cell_valueheader.htm index dda17463cf..0f24f1f764 100644 --- a/libs/cbi/luasrc/view/cbi/cell_valueheader.htm +++ b/libs/cbi/luasrc/view/cbi/cell_valueheader.htm @@ -13,4 +13,5 @@ $Id$ -%> -<td class="cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>" id="cbi-<%=self.config.."-"..section.."-"..self.option%>"> +<td class="cbi-value-field<% if self.error and self.error[section] then %> cbi-value-error<% end %>"> +<div id="cbi-<%=self.config.."-"..section.."-"..self.option%>"> diff --git a/libs/cbi/luasrc/view/cbi/full_valuefooter.htm b/libs/cbi/luasrc/view/cbi/full_valuefooter.htm index d05714033c..a9596441b5 100644 --- a/libs/cbi/luasrc/view/cbi/full_valuefooter.htm +++ b/libs/cbi/luasrc/view/cbi/full_valuefooter.htm @@ -28,7 +28,7 @@ $Id$ </div> <% if #self.deps > 0 then -%> - <script type="text/javascript"> + <script type="text/javascript" id="cbip-<%=self.config.."-"..section.."-"..self.option%>"> <% for j, d in ipairs(self.deps) do -%> cbi_d_add("cbi-<%=self.config.."-"..section.."-"..self.option..d.add%>", { <%- @@ -39,7 +39,7 @@ $Id$ <%- end -%> - }); + }, "cbip-<%=self.config.."-"..section.."-"..self.option%>"); <%- end %> </script> -<%- end %> +<%- end %>
\ No newline at end of file diff --git a/libs/cbi/luasrc/view/cbi/nullsection.htm b/libs/cbi/luasrc/view/cbi/nullsection.htm index 476db96d87..9520b47cab 100644 --- a/libs/cbi/luasrc/view/cbi/nullsection.htm +++ b/libs/cbi/luasrc/view/cbi/nullsection.htm @@ -16,7 +16,7 @@ $Id$ <% if self.title and #self.title > 0 then -%> <legend><%=self.title%></legend> <%- end %> - <div class="cbi-section-node"> + <div class="cbi-section-node" id="cbi-<%=self.config%>-<%=tostring(self):sub(8)%>"> <% self:render_children(1, scope or {}) %> </div> <br /> diff --git a/libs/cbi/luasrc/view/cbi/ucisection.htm b/libs/cbi/luasrc/view/cbi/ucisection.htm index 5023f6a2f3..5504a7476c 100644 --- a/libs/cbi/luasrc/view/cbi/ucisection.htm +++ b/libs/cbi/luasrc/view/cbi/ucisection.htm @@ -40,7 +40,7 @@ $Id$ </script> <% end %> <% else %> - <select name="cbi.opt.<%=self.config%>.<%=section%>"> + <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> @@ -52,7 +52,8 @@ $Id$ <%- for k,v in pairs(d.deps) do -%> - <%-=string.format('"cbid.%s.%s.%s"', self.config, section, k) .. ":" .. string.format("%q", v)-%>, + <%-=string.format('"cbid.%s.%s.%s"', self.config, section, k) .. ":" .. string.format("%q", v)-%> + <%-if next(d.deps, k) then-%>,<%-end-%> <%- end -%> |