liquid_feedback_frontend

annotate app/main/delegation/new.lua @ 199:e60a26bf535b

Delegation module refactored
author bsw
date Mon Nov 08 15:49:23 2010 +0100 (2010-11-08)
parents 19fbc5c758b5
children e3613831cd1e
rev   line source
bsw/jbe@0 1 local area = Area:by_id(param.get("area_id", atom.integer))
bsw/jbe@0 2 if area then
bsw/jbe@0 3 slot.put_into("title", encode.html(_"Set delegation for Area '#{name}'":gsub("#{name}", area.name)))
bsw/jbe@4 4 util.help("delegation.new.area")
bsw/jbe@0 5 end
bsw/jbe@0 6
bsw/jbe@0 7 local issue = Issue:by_id(param.get("issue_id", atom.integer))
bsw/jbe@0 8 if issue then
bsw/jbe@0 9 slot.put_into("title", encode.html(_"Set delegation for Issue ##{number} in Area '#{area_name}'":gsub("#{number}", issue.id):gsub("#{area_name}", issue.area.name)))
bsw/jbe@4 10 util.help("delegation.new.issue")
bsw/jbe@0 11 end
bsw/jbe@0 12
poelzi@111 13 local initiative = Initiative:by_id(param.get("initiative_id", atom.integer))
poelzi@111 14
bsw/jbe@4 15 if not area and not issue then
bsw/jbe@4 16 slot.put_into("title", encode.html(_"Set global delegation"))
bsw/jbe@4 17 util.help("delegation.new.global")
bsw/jbe@4 18 end
bsw/jbe@4 19
bsw/jbe@4 20 slot.select("actions", function()
bsw/jbe@4 21 if issue then
bsw/jbe@4 22 ui.link{
bsw/jbe@4 23 module = "issue",
bsw/jbe@4 24 view = "show",
bsw/jbe@4 25 id = issue.id,
bsw/jbe@4 26 content = function()
bsw/jbe@4 27 ui.image{ static = "icons/16/cancel.png" }
bsw/jbe@4 28 slot.put(_"Cancel")
bsw/jbe@4 29 end,
bsw/jbe@4 30 }
bsw/jbe@4 31 elseif area then
bsw/jbe@4 32 ui.link{
bsw/jbe@4 33 module = "area",
bsw/jbe@4 34 view = "show",
bsw/jbe@4 35 id = area.id,
bsw/jbe@4 36 content = function()
bsw/jbe@4 37 ui.image{ static = "icons/16/cancel.png" }
bsw/jbe@4 38 slot.put(_"Cancel")
bsw/jbe@4 39 end,
bsw/jbe@4 40 }
bsw/jbe@4 41 else
bsw/jbe@4 42 ui.link{
bsw/jbe@4 43 module = "index",
bsw/jbe@4 44 view = "index",
bsw/jbe@4 45 content = function()
bsw/jbe@4 46 ui.image{ static = "icons/16/cancel.png" }
bsw/jbe@4 47 slot.put(_"Cancel")
bsw/jbe@4 48 end,
bsw/jbe@4 49 }
bsw/jbe@4 50 end
bsw/jbe@4 51 end)
bsw/jbe@4 52
bsw/jbe@4 53
bsw@199 54 local contact_members = Member:build_selector{
bsw@199 55 is_contact_of_member_id = app.session.member_id,
bsw@199 56 order = "name"
bsw@199 57 }:exec()
bsw/jbe@0 58
bsw/jbe@0 59 ui.form{
bsw/jbe@0 60 attr = { class = "vertical" },
bsw/jbe@0 61 module = "delegation",
bsw/jbe@0 62 action = "update",
bsw/jbe@0 63 params = {
bsw/jbe@0 64 area_id = area and area.id or nil,
bsw/jbe@0 65 issue_id = issue and issue.id or nil,
bsw/jbe@0 66 },
bsw/jbe@0 67 routing = {
bsw/jbe@0 68 default = {
bsw/jbe@0 69 mode = "redirect",
bsw/jbe@4 70 module = area and "area" or issue and "issue" or "index",
bsw/jbe@4 71 view = (area or issue) and "show" or "index",
bsw/jbe@4 72 id = area and area.id or issue and issue.id or nil,
bsw/jbe@0 73 }
bsw/jbe@0 74 },
bsw/jbe@0 75 content = function()
bsw@180 76 local records
bsw@180 77
bsw@180 78 if issue then
bsw@183 79 local delegate_name = ""
bsw@183 80 local scope = "no delegation set"
bsw@183 81 local area_delegation = Delegation:by_pk(app.session.member_id, issue.area_id)
bsw@183 82 if area_delegation then
bsw@187 83 delegate_name = area_delegation.trustee and area_delegation.trustee.name or _"abandoned"
bsw@183 84 scope = _"area"
bsw@183 85 else
bsw@183 86 local global_delegation = Delegation:by_pk(app.session.member_id)
bsw@183 87 if global_delegation then
bsw@183 88 delegate_name = global_delegation.trustee.name
bsw@183 89 scope = _"global"
bsw@183 90 end
bsw@183 91 end
bsw@180 92 records = {
bsw@180 93 {
bsw@180 94 id = -1,
bsw@183 95 name = _("Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
bsw@180 96 },
bsw@180 97 {
bsw@180 98 id = 0,
bsw@183 99 name = _"Abandon global and area delegations for this issue"
bsw@180 100 },
bsw@180 101
bsw/jbe@4 102 }
bsw@180 103 elseif area then
bsw@183 104 local delegate_name = ""
bsw@183 105 local scope = "no delegation set"
bsw@183 106 local global_delegation = Delegation:by_pk(app.session.member_id)
bsw@183 107 if global_delegation then
bsw@183 108 delegate_name = global_delegation.trustee.name
bsw@183 109 scope = _"global"
bsw@183 110 end
bsw@180 111 records = {
bsw@180 112 {
bsw@180 113 id = -1,
bsw@183 114 name = _("Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
bsw@180 115 },
bsw@180 116 {
bsw@180 117 id = 0,
bsw@183 118 name = _"Abandon global delegation for this area"
bsw@180 119 }
bsw@180 120 }
bsw@180 121
bsw@180 122 else
bsw@180 123 records = {
bsw@180 124 {
bsw@180 125 id = -1,
bsw@180 126 name = _"No delegation"
bsw@180 127 }
bsw@180 128 }
bsw@180 129
bsw@180 130 end
bsw@183 131 -- add saved members
bsw@183 132 records[#records+1] = {id="_", name= "--- " .. _"Saved contacts" .. " ---"}
bsw/jbe@4 133 for i, record in ipairs(contact_members) do
bsw/jbe@4 134 records[#records+1] = record
bsw/jbe@4 135 end
poelzi@111 136 -- add initiative authors
poelzi@111 137 if initiative then
bsw@183 138 records[#records+1] = {id="_", name= "--- " .. _"Initiators" .. " ---"}
poelzi@111 139 for i,record in ipairs(initiative.initiators) do
poelzi@111 140 records[#records+1] = record.member
poelzi@111 141 end
poelzi@111 142 end
bsw/jbe@4 143
bsw@183 144 disabled_records = {}
bsw@183 145 disabled_records["_"] = true
bsw@183 146
bsw/jbe@0 147 ui.field.select{
bsw/jbe@0 148 label = _"Trustee",
bsw/jbe@0 149 name = "trustee_id",
bsw/jbe@4 150 foreign_records = records,
bsw/jbe@0 151 foreign_id = "id",
bsw/jbe@4 152 foreign_name = "name",
poelzi@111 153 disabled_records = disabled_records
bsw/jbe@0 154 }
poelzi@111 155
bsw/jbe@0 156 ui.submit{ text = _"Save" }
bsw/jbe@0 157 end
bsw/jbe@4 158 }

Impressum / About Us