-function Delegator.getactive(self)
- return self:get(Map.formvalue(self, "cbi.delegated")
- or (self.children[1] and self.children[1].name))
+function Delegator.get_prev(self, state)
+ for k, v in ipairs(self.chain) do
+ if v == state then
+ return self.chain[k-1]
+ end
+ end
+end
+
+function Delegator.get_chain(self)
+ local x = Map.formvalue(self, "cbi.delg.path") or self.defaultpath
+ return type(x) == "table" and x or {x}
+end
+
+function Delegator.get_active(self)
+ return Map.formvalue(self, "cbi.delg.current") or self.chain[1]