liquid_feedback_frontend

annotate app/main/delegation/new.lua @ 187:19fbc5c758b5

Fixed errors when displaying null delegation targets
author bsw
date Mon Nov 08 01:12:46 2010 +0100 (2010-11-08)
parents 02197b85ca3b
children e60a26bf535b
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/jbe@0 54
bsw/jbe@0 55 local contact_members = Member:new_selector()
bsw/jbe@0 56 :add_where{ "contact.member_id = ?", app.session.member.id }
bsw/jbe@0 57 :join("contact", nil, "member.id = contact.other_member_id")
bsw/jbe@4 58 :add_order_by("member.name")
bsw/jbe@0 59 :exec()
bsw/jbe@0 60
bsw/jbe@0 61
bsw/jbe@0 62 ui.form{
bsw/jbe@0 63 attr = { class = "vertical" },
bsw/jbe@0 64 module = "delegation",
bsw/jbe@0 65 action = "update",
bsw/jbe@0 66 params = {
bsw/jbe@0 67 area_id = area and area.id or nil,
bsw/jbe@0 68 issue_id = issue and issue.id or nil,
bsw/jbe@0 69 },
bsw/jbe@0 70 routing = {
bsw/jbe@0 71 default = {
bsw/jbe@0 72 mode = "redirect",
bsw/jbe@4 73 module = area and "area" or issue and "issue" or "index",
bsw/jbe@4 74 view = (area or issue) and "show" or "index",
bsw/jbe@4 75 id = area and area.id or issue and issue.id or nil,
bsw/jbe@0 76 }
bsw/jbe@0 77 },
bsw/jbe@0 78 content = function()
bsw@180 79 local records
bsw@180 80
bsw@180 81 if issue then
bsw@183 82 local delegate_name = ""
bsw@183 83 local scope = "no delegation set"
bsw@183 84 local area_delegation = Delegation:by_pk(app.session.member_id, issue.area_id)
bsw@183 85 if area_delegation then
bsw@187 86 delegate_name = area_delegation.trustee and area_delegation.trustee.name or _"abandoned"
bsw@183 87 scope = _"area"
bsw@183 88 else
bsw@183 89 local global_delegation = Delegation:by_pk(app.session.member_id)
bsw@183 90 if global_delegation then
bsw@183 91 delegate_name = global_delegation.trustee.name
bsw@183 92 scope = _"global"
bsw@183 93 end
bsw@183 94 end
bsw@180 95 records = {
bsw@180 96 {
bsw@180 97 id = -1,
bsw@183 98 name = _("Apply global or area delegation for this issue (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
bsw@180 99 },
bsw@180 100 {
bsw@180 101 id = 0,
bsw@183 102 name = _"Abandon global and area delegations for this issue"
bsw@180 103 },
bsw@180 104
bsw/jbe@4 105 }
bsw@180 106 elseif area then
bsw@183 107 local delegate_name = ""
bsw@183 108 local scope = "no delegation set"
bsw@183 109 local global_delegation = Delegation:by_pk(app.session.member_id)
bsw@183 110 if global_delegation then
bsw@183 111 delegate_name = global_delegation.trustee.name
bsw@183 112 scope = _"global"
bsw@183 113 end
bsw@180 114 records = {
bsw@180 115 {
bsw@180 116 id = -1,
bsw@183 117 name = _("Apply global delegation for this area (Currently: #{delegate_name} [#{scope}])", { delegate_name = delegate_name, scope = scope })
bsw@180 118 },
bsw@180 119 {
bsw@180 120 id = 0,
bsw@183 121 name = _"Abandon global delegation for this area"
bsw@180 122 }
bsw@180 123 }
bsw@180 124
bsw@180 125 else
bsw@180 126 records = {
bsw@180 127 {
bsw@180 128 id = -1,
bsw@180 129 name = _"No delegation"
bsw@180 130 }
bsw@180 131 }
bsw@180 132
bsw@180 133 end
bsw@183 134 -- add saved members
bsw@183 135 records[#records+1] = {id="_", name= "--- " .. _"Saved contacts" .. " ---"}
bsw/jbe@4 136 for i, record in ipairs(contact_members) do
bsw/jbe@4 137 records[#records+1] = record
bsw/jbe@4 138 end
poelzi@111 139 -- add initiative authors
poelzi@111 140 if initiative then
bsw@183 141 records[#records+1] = {id="_", name= "--- " .. _"Initiators" .. " ---"}
poelzi@111 142 for i,record in ipairs(initiative.initiators) do
poelzi@111 143 records[#records+1] = record.member
poelzi@111 144 end
poelzi@111 145 end
bsw/jbe@4 146
bsw@183 147 disabled_records = {}
bsw@183 148 disabled_records["_"] = true
bsw@183 149
bsw/jbe@0 150 ui.field.select{
bsw/jbe@0 151 label = _"Trustee",
bsw/jbe@0 152 name = "trustee_id",
bsw/jbe@4 153 foreign_records = records,
bsw/jbe@0 154 foreign_id = "id",
bsw/jbe@4 155 foreign_name = "name",
poelzi@111 156 disabled_records = disabled_records
bsw/jbe@0 157 }
poelzi@111 158
bsw/jbe@0 159 ui.submit{ text = _"Save" }
bsw/jbe@0 160 end
bsw/jbe@4 161 }

Impressum / About Us