liquid_feedback_frontend

annotate app/main/initiative/new.lua @ 286:c587d8762e62

Registration process updated for Core 2.0, lockable member fields, notification settings
author bsw
date Sat Feb 25 11:51:37 2012 +0100 (2012-02-25)
parents fecd4c13054a
children 418b590fa9ed
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@278 29 ui.field.text{ label = _"Unit", value = area.unit.name }
bsw/jbe@0 30 ui.field.text{ label = _"Area", value = area.name }
bsw/jbe@52 31 slot.put("<br />")
bsw/jbe@0 32 if issue_id then
bsw/jbe@0 33 ui.field.text{ label = _"Issue", value = issue_id }
bsw/jbe@0 34 else
bsw@10 35 tmp = { { id = -1, name = _"Please choose a policy" } }
bsw@10 36 for i, allowed_policy in ipairs(area.allowed_policies) do
bsw@10 37 tmp[#tmp+1] = allowed_policy
bsw@10 38 end
bsw/jbe@0 39 ui.field.select{
bsw/jbe@0 40 label = _"Policy",
bsw/jbe@0 41 name = "policy_id",
bsw@10 42 foreign_records = tmp,
bsw/jbe@0 43 foreign_id = "id",
bsw@7 44 foreign_name = "name",
bsw@95 45 value = area.default_policy and area.default_policy.id or param.get("policy_id", atom.integer)
bsw/jbe@0 46 }
bsw@64 47 ui.tag{
bsw@64 48 tag = "div",
bsw@64 49 content = function()
bsw@64 50 ui.tag{
bsw@64 51 tag = "label",
bsw@64 52 attr = { class = "ui_field_label" },
bsw@64 53 content = function() slot.put("&nbsp;") end,
bsw@64 54 }
bsw@64 55 ui.tag{
bsw@64 56 content = function()
bsw@64 57 ui.link{
bsw@64 58 text = _"Information about the available policies",
bsw@64 59 module = "policy",
bsw@64 60 view = "list"
bsw@64 61 }
bsw@64 62 slot.put(" ")
bsw@64 63 ui.link{
bsw@64 64 attr = { target = "_blank" },
bsw@64 65 text = _"(new window)",
bsw@64 66 module = "policy",
bsw@64 67 view = "list"
bsw@64 68 }
bsw@64 69 end
bsw@64 70 }
bsw@64 71 end
bsw@64 72 }
bsw/jbe@0 73 end
bsw@95 74
bsw@95 75 if param.get("preview") then
bsw@95 76 ui.heading{ level = 1, content = encode.html(param.get("name")) }
bsw@95 77 local discussion_url = param.get("discussion_url")
bsw@95 78 ui.container{
bsw@95 79 attr = { class = "ui_field_label" },
bsw@95 80 content = _"Discussion with initiators"
bsw@95 81 }
bsw@95 82 ui.tag{
bsw@95 83 tag = "span",
bsw@95 84 content = function()
bsw@95 85 if discussion_url:find("^https?://") then
bsw@95 86 if discussion_url and #discussion_url > 0 then
bsw@95 87 ui.link{
bsw@95 88 attr = {
bsw@95 89 class = "actions",
bsw@95 90 target = "_blank",
bsw@95 91 title = discussion_url
bsw@95 92 },
bsw@95 93 content = discussion_url,
bsw@95 94 external = discussion_url
bsw@95 95 }
bsw@95 96 end
bsw@95 97 else
bsw@95 98 slot.put(encode.html(discussion_url))
bsw@95 99 end
bsw@95 100 end
bsw@95 101 }
bsw@95 102 ui.container{
bsw@95 103 attr = { class = "draft_content wiki" },
bsw@95 104 content = function()
bsw@95 105 slot.put(format.wiki_text(param.get("draft"), param.get("formatting_engine")))
bsw@95 106 end
bsw@95 107 }
bsw@95 108 slot.put("<br />")
bsw@95 109 ui.submit{ text = _"Save" }
bsw@95 110 slot.put("<br />")
bsw@95 111 slot.put("<br />")
bsw@95 112 end
bsw/jbe@52 113 slot.put("<br />")
bsw@95 114
bsw@95 115 ui.field.text{
bsw@95 116 label = _"Title of initiative",
bsw@95 117 name = "name",
bsw@95 118 value = param.get("name")
bsw@95 119 }
bsw@95 120 ui.field.text{
bsw@95 121 label = _"Discussion URL",
bsw@95 122 name = "discussion_url",
bsw@95 123 value = param.get("discussion_url")
bsw@95 124 }
bsw/jbe@4 125 ui.field.select{
bsw/jbe@4 126 label = _"Wiki engine",
bsw/jbe@4 127 name = "formatting_engine",
bsw/jbe@4 128 foreign_records = {
bsw/jbe@4 129 { id = "rocketwiki", name = "RocketWiki" },
bsw/jbe@4 130 { id = "compat", name = _"Traditional wiki syntax" }
bsw/jbe@4 131 },
poelzi@133 132 attr = {id = "formatting_engine"},
bsw/jbe@4 133 foreign_id = "id",
bsw@95 134 foreign_name = "name",
bsw@95 135 value = param.get("formatting_engine")
bsw/jbe@4 136 }
poelzi@133 137 ui.tag{
poelzi@133 138 tag = "div",
poelzi@133 139 content = function()
poelzi@133 140 ui.tag{
poelzi@133 141 tag = "label",
poelzi@133 142 attr = { class = "ui_field_label" },
poelzi@133 143 content = function() slot.put("&nbsp;") end,
poelzi@133 144 }
poelzi@133 145 ui.tag{
poelzi@133 146 content = function()
poelzi@133 147 ui.link{
poelzi@133 148 text = _"Syntax help",
poelzi@133 149 module = "help",
poelzi@133 150 view = "show",
poelzi@133 151 id = "wikisyntax",
poelzi@133 152 attr = {onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"}
poelzi@133 153 }
poelzi@133 154 slot.put(" ")
poelzi@133 155 ui.link{
poelzi@133 156 text = _"(new window)",
poelzi@133 157 module = "help",
poelzi@133 158 view = "show",
poelzi@133 159 id = "wikisyntax",
poelzi@133 160 attr = {target = "_blank", onClick="this.href=this.href.replace(/wikisyntax[^.]*/g, 'wikisyntax_'+getElementById('formatting_engine').value)"}
poelzi@133 161 }
poelzi@133 162 end
poelzi@133 163 }
poelzi@133 164 end
poelzi@133 165 }
bsw@95 166 ui.field.text{
bsw@95 167 label = _"Draft",
bsw@95 168 name = "draft",
bsw@95 169 multiline = true,
bsw@95 170 attr = { style = "height: 50ex;" },
bsw@95 171 value = param.get("draft")
bsw@95 172 }
bsw@95 173 ui.submit{ name = "preview", text = _"Preview" }
bsw/jbe@0 174 ui.submit{ text = _"Save" }
bsw/jbe@0 175 end
bsw/jbe@0 176 }

Impressum / About Us