diff options
-rw-r--r-- | libs/cbi/htdocs/luci-static/resources/cbi.js | 17 | ||||
-rw-r--r-- | libs/cbi/luasrc/cbi.lua | 1 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/delegator.htm | 4 | ||||
-rw-r--r-- | libs/cbi/luasrc/view/cbi/header.htm | 2 |
4 files changed, 19 insertions, 5 deletions
diff --git a/libs/cbi/htdocs/luci-static/resources/cbi.js b/libs/cbi/htdocs/luci-static/resources/cbi.js index 004e12eaa4..7ba81189ee 100644 --- a/libs/cbi/htdocs/luci-static/resources/cbi.js +++ b/libs/cbi/htdocs/luci-static/resources/cbi.js @@ -59,15 +59,26 @@ function cbi_d_checkvalue(target, ref) { } function cbi_d_check(deps) { + var reverse; + var def = false; for (var i=0; i<deps.length; i++) { - var istat = true + var istat = true; + reverse = false; for (var j in deps[i]) { - istat = (istat && cbi_d_checkvalue(j, deps[i][j])) + if (j.slice(-8) == "!reverse") { + reverse = true; + } else if (j.slice(-8) == "!default") { + def = true; + istat = false; + } else { + istat = (istat && cbi_d_checkvalue(j, deps[i][j])) + } } if (istat) { - return true + return !reverse; } } + return def; } function cbi_d_update() { diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index 9b947cb2f0..e265589746 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -616,6 +616,7 @@ function Delegator.parse(self, ...) self.current = newcurrent or self.current self.active = self:get(self.current) if type(self.active) ~= "function" then + self.active:populate_delegator(self) self.active:parse(false) return FROM_PROCEED else diff --git a/libs/cbi/luasrc/view/cbi/delegator.htm b/libs/cbi/luasrc/view/cbi/delegator.htm index 08c1fe7c3a..a4a62af640 100644 --- a/libs/cbi/luasrc/view/cbi/delegator.htm +++ b/libs/cbi/luasrc/view/cbi/delegator.htm @@ -17,6 +17,7 @@ $Id$ <% for _, x in ipairs(self.chain) do %> <input type="hidden" name="cbi.delg.path" value="<%=x%>" /> <% end %> +<% if not self.disallow_pageactions then %> <% if self.allow_back and self:get_prev(self.current) then %> <input class="cbi-button cbi-button-back" type="submit" name="cbi.delg.back" value="<%:« Back%>" /> <% end %> @@ -31,5 +32,6 @@ $Id$ <% elseif self:get_next(self.current) then %> <input class="cbi-button cbi-button-next" type="submit" value="<%:Next »%>" /> <% end %> +<% end %> <script type="text/javascript">cbi_d_update();</script> - </div> + </div>
\ No newline at end of file diff --git a/libs/cbi/luasrc/view/cbi/header.htm b/libs/cbi/luasrc/view/cbi/header.htm index c831b0df1c..bece16bb2a 100644 --- a/libs/cbi/luasrc/view/cbi/header.htm +++ b/libs/cbi/luasrc/view/cbi/header.htm @@ -14,7 +14,7 @@ $Id$ -%> <%+header%> -<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data"> +<form method="post" name="cbi" action="<%=REQUEST_URI%>" enctype="multipart/form-data"> <div> <script type="text/javascript" src="<%=resource%>/cbi.js"></script> <input type="hidden" name="cbi.submit" value="1" /> |