liquid_feedback_frontend
annotate app/main/initiative/new.lua @ 118:93f4e465b50d
add initiator support in delegation
if a delegation is issued from the initiative view, the initiators
from that one are added to the delegation target list. this makes it easier to delegate to the author without the need to add him to the contact list.
if a delegation is issued from the initiative view, the initiators
from that one are added to the delegation target list. this makes it easier to delegate to the author without the need to add him to the contact list.
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Mon Sep 20 20:32:04 2010 +0200 (2010-09-20) |
parents | 6a12fb7e4963 |
children | fa55c8ded9fd |
rev | line source |
---|---|
bsw/jbe@0 | 1 local issue |
bsw/jbe@0 | 2 local area |
bsw/jbe@0 | 3 |
bsw/jbe@0 | 4 local issue_id = param.get("issue_id", atom.integer) |
bsw/jbe@0 | 5 if issue_id then |
bsw/jbe@0 | 6 issue = Issue:new_selector():add_where{"id=?",issue_id}:single_object_mode():exec() |
bsw/jbe@0 | 7 area = issue.area |
bsw/jbe@0 | 8 |
bsw/jbe@0 | 9 else |
bsw/jbe@0 | 10 local area_id = param.get("area_id", atom.integer) |
bsw/jbe@0 | 11 area = Area:new_selector():add_where{"id=?",area_id}:single_object_mode():exec() |
bsw/jbe@0 | 12 end |
bsw/jbe@0 | 13 |
bsw/jbe@0 | 14 if issue_id then |
bsw/jbe@19 | 15 slot.put_into("title", _"Add alternative initiative to issue") |
bsw/jbe@0 | 16 else |
bsw/jbe@0 | 17 slot.put_into("title", _"Create new issue") |
bsw/jbe@0 | 18 end |
bsw/jbe@0 | 19 |
bsw/jbe@0 | 20 ui.form{ |
bsw/jbe@0 | 21 module = "initiative", |
bsw/jbe@0 | 22 action = "create", |
bsw/jbe@0 | 23 params = { |
bsw/jbe@0 | 24 area_id = area.id, |
bsw/jbe@0 | 25 issue_id = issue and issue.id or nil |
bsw/jbe@0 | 26 }, |
bsw/jbe@0 | 27 attr = { class = "vertical" }, |
bsw/jbe@0 | 28 content = function() |
bsw/jbe@0 | 29 ui.field.text{ label = _"Area", value = area.name } |
bsw/jbe@52 | 30 slot.put("<br />") |
bsw/jbe@0 | 31 if issue_id then |
bsw/jbe@0 | 32 ui.field.text{ label = _"Issue", value = issue_id } |
bsw/jbe@0 | 33 else |
bsw@10 | 34 tmp = { { id = -1, name = _"Please choose a policy" } } |
bsw@10 | 35 for i, allowed_policy in ipairs(area.allowed_policies) do |
bsw@10 | 36 tmp[#tmp+1] = allowed_policy |
bsw@10 | 37 end |
bsw/jbe@0 | 38 ui.field.select{ |
bsw/jbe@0 | 39 label = _"Policy", |
bsw/jbe@0 | 40 name = "policy_id", |
bsw@10 | 41 foreign_records = tmp, |
bsw/jbe@0 | 42 foreign_id = "id", |
bsw@7 | 43 foreign_name = "name", |
bsw@95 | 44 value = area.default_policy and area.default_policy.id or param.get("policy_id", atom.integer) |
bsw/jbe@0 | 45 } |
bsw@64 | 46 ui.tag{ |
bsw@64 | 47 tag = "div", |
bsw@64 | 48 content = function() |
bsw@64 | 49 ui.tag{ |
bsw@64 | 50 tag = "label", |
bsw@64 | 51 attr = { class = "ui_field_label" }, |
bsw@64 | 52 content = function() slot.put(" ") end, |
bsw@64 | 53 } |
bsw@64 | 54 ui.tag{ |
bsw@64 | 55 content = function() |
bsw@64 | 56 ui.link{ |
bsw@64 | 57 text = _"Information about the available policies", |
bsw@64 | 58 module = "policy", |
bsw@64 | 59 view = "list" |
bsw@64 | 60 } |
bsw@64 | 61 slot.put(" ") |
bsw@64 | 62 ui.link{ |
bsw@64 | 63 attr = { target = "_blank" }, |
bsw@64 | 64 text = _"(new window)", |
bsw@64 | 65 module = "policy", |
bsw@64 | 66 view = "list" |
bsw@64 | 67 } |
bsw@64 | 68 end |
bsw@64 | 69 } |
bsw@64 | 70 end |
bsw@64 | 71 } |
bsw/jbe@0 | 72 end |
bsw@95 | 73 |
bsw@95 | 74 if param.get("preview") then |
bsw@95 | 75 ui.heading{ level = 1, content = encode.html(param.get("name")) } |
bsw@95 | 76 local discussion_url = param.get("discussion_url") |
bsw@95 | 77 ui.container{ |
bsw@95 | 78 attr = { class = "ui_field_label" }, |
bsw@95 | 79 content = _"Discussion with initiators" |
bsw@95 | 80 } |
bsw@95 | 81 ui.tag{ |
bsw@95 | 82 tag = "span", |
bsw@95 | 83 content = function() |
bsw@95 | 84 if discussion_url:find("^https?://") then |
bsw@95 | 85 if discussion_url and #discussion_url > 0 then |
bsw@95 | 86 ui.link{ |
bsw@95 | 87 attr = { |
bsw@95 | 88 class = "actions", |
bsw@95 | 89 target = "_blank", |
bsw@95 | 90 title = discussion_url |
bsw@95 | 91 }, |
bsw@95 | 92 content = discussion_url, |
bsw@95 | 93 external = discussion_url |
bsw@95 | 94 } |
bsw@95 | 95 end |
bsw@95 | 96 else |
bsw@95 | 97 slot.put(encode.html(discussion_url)) |
bsw@95 | 98 end |
bsw@95 | 99 end |
bsw@95 | 100 } |
bsw@95 | 101 ui.container{ |
bsw@95 | 102 attr = { class = "draft_content wiki" }, |
bsw@95 | 103 content = function() |
bsw@95 | 104 slot.put(format.wiki_text(param.get("draft"), param.get("formatting_engine"))) |
bsw@95 | 105 end |
bsw@95 | 106 } |
bsw@95 | 107 slot.put("<br />") |
bsw@95 | 108 ui.submit{ text = _"Save" } |
bsw@95 | 109 slot.put("<br />") |
bsw@95 | 110 slot.put("<br />") |
bsw@95 | 111 end |
bsw/jbe@52 | 112 slot.put("<br />") |
bsw@95 | 113 |
bsw@95 | 114 ui.field.text{ |
bsw@95 | 115 label = _"Title of initiative", |
bsw@95 | 116 name = "name", |
bsw@95 | 117 value = param.get("name") |
bsw@95 | 118 } |
bsw@95 | 119 ui.field.text{ |
bsw@95 | 120 label = _"Discussion URL", |
bsw@95 | 121 name = "discussion_url", |
bsw@95 | 122 value = param.get("discussion_url") |
bsw@95 | 123 } |
bsw/jbe@4 | 124 ui.field.select{ |
bsw/jbe@4 | 125 label = _"Wiki engine", |
bsw/jbe@4 | 126 name = "formatting_engine", |
bsw/jbe@4 | 127 foreign_records = { |
bsw/jbe@4 | 128 { id = "rocketwiki", name = "RocketWiki" }, |
bsw/jbe@4 | 129 { id = "compat", name = _"Traditional wiki syntax" } |
bsw/jbe@4 | 130 }, |
bsw/jbe@4 | 131 foreign_id = "id", |
bsw@95 | 132 foreign_name = "name", |
bsw@95 | 133 value = param.get("formatting_engine") |
bsw/jbe@4 | 134 } |
bsw@95 | 135 ui.field.text{ |
bsw@95 | 136 label = _"Draft", |
bsw@95 | 137 name = "draft", |
bsw@95 | 138 multiline = true, |
bsw@95 | 139 attr = { style = "height: 50ex;" }, |
bsw@95 | 140 value = param.get("draft") |
bsw@95 | 141 } |
bsw@95 | 142 ui.submit{ name = "preview", text = _"Preview" } |
bsw/jbe@0 | 143 ui.submit{ text = _"Save" } |
bsw/jbe@0 | 144 end |
bsw/jbe@0 | 145 } |