summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2009-11-22 20:32:56 +0000
committerSteven Barth <steven@midlink.org>2009-11-22 20:32:56 +0000
commit19758fae439cffad8adaf64f2e8f74ae452816ee (patch)
tree55339f37986fbc586131f2e8336e0ed0cc6262fa
parentbbfdc9ea830aa14bd3d3ee7a394ba19fe707c9aa (diff)
CBI:
Implement reverse dependencies Allow wiazrd steps without buttons
-rw-r--r--libs/cbi/htdocs/luci-static/resources/cbi.js17
-rw-r--r--libs/cbi/luasrc/cbi.lua1
-rw-r--r--libs/cbi/luasrc/view/cbi/delegator.htm4
-rw-r--r--libs/cbi/luasrc/view/cbi/header.htm2
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" />