liquid_feedback_frontend
annotate app/main/delegation/new.lua @ 143:a33abf457d29
add initiative_id selector in suggestion api
fixes bug #301
fixes bug #301
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Wed Oct 06 16:35:33 2010 +0200 (2010-10-06) | 
| parents | bf885faf3452 | 
| children | 02aacb3dffe0 | 
| 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@10 | 79 local records = { | 
| bsw/jbe@4 | 80 { | 
| bsw/jbe@4 | 81 id = "-1", | 
| bsw/jbe@4 | 82 name = _"No delegation" | 
| bsw/jbe@4 | 83 } | 
| bsw/jbe@4 | 84 } | 
| poelzi@111 | 85 | 
| bsw/jbe@4 | 86 for i, record in ipairs(contact_members) do | 
| bsw/jbe@4 | 87 records[#records+1] = record | 
| bsw/jbe@4 | 88 end | 
| poelzi@111 | 89 disabled_records = {} | 
| poelzi@111 | 90 -- add initiative authors | 
| poelzi@111 | 91 if initiative then | 
| poelzi@111 | 92 records[#records+1] = {id="_", name=_"--- Initiators ---"} | 
| poelzi@111 | 93 disabled_records["_"] = true | 
| poelzi@111 | 94 for i,record in ipairs(initiative.initiators) do | 
| poelzi@111 | 95 trace.debug(record) | 
| poelzi@111 | 96 trace.debug(record.member.name) | 
| poelzi@111 | 97 records[#records+1] = record.member | 
| poelzi@111 | 98 end | 
| poelzi@111 | 99 end | 
| bsw/jbe@4 | 100 | 
| bsw/jbe@0 | 101 ui.field.select{ | 
| bsw/jbe@0 | 102 label = _"Trustee", | 
| bsw/jbe@0 | 103 name = "trustee_id", | 
| bsw/jbe@4 | 104 foreign_records = records, | 
| bsw/jbe@0 | 105 foreign_id = "id", | 
| bsw/jbe@4 | 106 foreign_name = "name", | 
| poelzi@111 | 107 disabled_records = disabled_records | 
| bsw/jbe@0 | 108 } | 
| poelzi@111 | 109 | 
| bsw/jbe@0 | 110 ui.submit{ text = _"Save" } | 
| bsw/jbe@0 | 111 end | 
| bsw/jbe@4 | 112 } |