liquid_feedback_frontend
annotate app/main/initiative/new.lua @ 159:5d797c6706d5
implement quorum display
show the initiative quorum as a small 1px line in bargraph
allow to update your support on the diff page
better linked title in diff page
show absolute quorum numbers in detail pages of issue and initiative
show the initiative quorum as a small 1px line in bargraph
allow to update your support on the diff page
better linked title in diff page
show absolute quorum numbers in detail pages of issue and initiative
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Sat Oct 09 03:42:48 2010 +0200 (2010-10-09) |
parents | fa55c8ded9fd |
children | fecd4c13054a |
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 }, |
poelzi@133 | 131 attr = {id = "formatting_engine"}, |
bsw/jbe@4 | 132 foreign_id = "id", |
bsw@95 | 133 foreign_name = "name", |
bsw@95 | 134 value = param.get("formatting_engine") |
bsw/jbe@4 | 135 } |
poelzi@133 | 136 ui.tag{ |
poelzi@133 | 137 tag = "div", |
poelzi@133 | 138 content = function() |
poelzi@133 | 139 ui.tag{ |
poelzi@133 | 140 tag = "label", |
poelzi@133 | 141 attr = { class = "ui_field_label" }, |
poelzi@133 | 142 content = function() slot.put(" ") end, |
poelzi@133 | 143 } |
poelzi@133 | 144 ui.tag{ |
poelzi@133 | 145 content = function() |
poelzi@133 | 146 ui.link{ |
poelzi@133 | 147 text = _"Syntax help", |
poelzi@133 | 148 module = "help", |
poelzi@133 | 149 view = "show", |
poelzi@133 | 150 id = "wikisyntax", |
poelzi@133 | 151 attr = {onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"} |
poelzi@133 | 152 } |
poelzi@133 | 153 slot.put(" ") |
poelzi@133 | 154 ui.link{ |
poelzi@133 | 155 text = _"(new window)", |
poelzi@133 | 156 module = "help", |
poelzi@133 | 157 view = "show", |
poelzi@133 | 158 id = "wikisyntax", |
poelzi@133 | 159 attr = {target = "_blank", onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"} |
poelzi@133 | 160 } |
poelzi@133 | 161 end |
poelzi@133 | 162 } |
poelzi@133 | 163 end |
poelzi@133 | 164 } |
bsw@95 | 165 ui.field.text{ |
bsw@95 | 166 label = _"Draft", |
bsw@95 | 167 name = "draft", |
bsw@95 | 168 multiline = true, |
bsw@95 | 169 attr = { style = "height: 50ex;" }, |
bsw@95 | 170 value = param.get("draft") |
bsw@95 | 171 } |
bsw@95 | 172 ui.submit{ name = "preview", text = _"Preview" } |
bsw/jbe@0 | 173 ui.submit{ text = _"Save" } |
bsw/jbe@0 | 174 end |
bsw/jbe@0 | 175 } |