Implement reverse dependencies
Allow wiazrd steps without buttons
This commit is contained in:
Steven Barth 2009-11-22 20:32:56 +00:00
parent bbfdc9ea83
commit 19758fae43
4 changed files with 19 additions and 5 deletions

View file

@ -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() {

View file

@ -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

View file

@ -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 %>
@ -30,6 +31,7 @@ $Id$
<input class="cbi-button cbi-button-finish" type="submit" value="<%:Finish%>" />
<% 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>

View file

@ -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" />