bsw/jbe@0: slot.select("delegation", function() bsw/jbe@0: bsw/jbe@0: local delegation bsw/jbe@0: local area_id bsw/jbe@0: local issue_id bsw/jbe@0: bsw/jbe@0: local scope = "global" bsw/jbe@0: bsw/jbe@0: if param.get("initiative_id", atom.integer) then bsw/jbe@0: issue_id = Initiative:by_id(param.get("initiative_id", atom.integer)).issue_id bsw/jbe@0: scope = "issue" bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: if param.get("issue_id", atom.integer) then bsw/jbe@0: issue_id = param.get("issue_id", atom.integer) bsw/jbe@0: scope = "issue" bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: if param.get("area_id", atom.integer) then bsw/jbe@0: area_id = param.get("area_id", atom.integer) bsw/jbe@0: scope = "area" bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: bsw/jbe@0: bsw/jbe@0: local delegation bsw/jbe@0: bsw/jbe@0: if issue_id then bsw/jbe@0: delegation = Delegation:by_pk(app.session.member.id, nil, issue_id) bsw/jbe@0: if not delegation then bsw/jbe@0: local issue = Issue:by_id(issue_id) bsw/jbe@0: delegation = Delegation:by_pk(app.session.member.id, issue.area_id) bsw/jbe@0: end bsw/jbe@0: elseif area_id then bsw/jbe@0: delegation = Delegation:by_pk(app.session.member.id, area_id) bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: if not delegation then bsw/jbe@0: delegation = Delegation:by_pk(app.session.member.id) bsw/jbe@0: end bsw/jbe@0: if delegation then bsw/jbe@0: ui.container{ bsw/jbe@0: attr = { bsw/jbe@0: class = "head", bsw/jbe@0: style = "cursor: pointer;", bsw/jbe@0: onclick = "document.getElementById('delegation_content').style.display = 'block';" bsw/jbe@0: }, bsw/jbe@0: content = _"Your vote is delegated. [more]" bsw/jbe@0: } bsw/jbe@0: ui.container{ bsw/jbe@0: attr = { class = "content", id = "delegation_content" }, bsw/jbe@0: content = function() bsw@2: ui.container{ bsw@2: attr = { bsw@2: class = "close", bsw@2: style = "cursor: pointer;", bsw@2: onclick = "document.getElementById('delegation_content').style.display = 'none';" bsw@2: }, bsw@2: content = _"X" bsw@2: } bsw/jbe@0: bsw/jbe@0: local delegation_chain = db:query{ "SELECT * FROM delegation_chain(?, ?, ?) JOIN member ON member.id = member_id ORDER BY index", app.session.member.id, area_id, issue_id } bsw/jbe@0: bsw/jbe@0: for i, record in ipairs(delegation_chain) do bsw/jbe@0: local style bsw@2: execute.view{ bsw@2: module = "member", bsw@2: view = "_show_thumb", bsw@2: params = { member = record } bsw@2: } bsw@2: slot.put("
") bsw@2: if record.scope_out then bsw@2: ui.container{ bsw@2: attr = { class = "delegation_info" }, bsw@2: content = function() bsw@2: ui.image{ bsw@2: attr = { class = "delegation_arrow" }, bsw@2: static = "delegation_arrow_vertical.jpg" bsw@2: } bsw@2: ui.container{ bsw@2: attr = { class = "delegation_scope" }, bsw@2: content = function() bsw@2: if record.scope_out == "global" then bsw@2: slot.put(_"Global delegation") bsw@2: elseif record.scope_out == "area" then bsw@2: slot.put(_"Area delegation") bsw@2: elseif record.scope_out == "issue" then bsw@2: slot.put(_"Issue delegation") bsw@2: end bsw@2: end bsw@2: } bsw@2: if record.id == app.session.member.id then bsw@2: ui.link{ bsw@2: attr = { class = "revoke" }, bsw@2: content = function() bsw@2: ui.image{ static = "icons/16/delete.png" } bsw@2: slot.put(_"Revoke") bsw@2: end, bsw@2: module = "delegation", bsw@2: action = "update", bsw@2: params = { issue_id = delegation.issue_id, area_id = delegation.area_id, delete = true }, bsw@2: routing = { bsw@2: default = { bsw@2: mode = "redirect", bsw@2: module = request.get_module(), bsw@2: view = request.get_view(), bsw@2: id = param.get_id_cgi(), bsw@2: params = param.get_all_cgi() bsw@2: } bsw@2: } bsw@2: } bsw@2: end bsw@2: end bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@0: end bsw/jbe@0: } bsw/jbe@0: end bsw/jbe@0: bsw/jbe@0: end)