| rev | line source | 
| bsw@1045 | 1 local initiative = Initiative:by_id(param.get("initiative_id")) | 
| bsw@1045 | 2 initiative:load_everything_for_member_id(app.session.member_id) | 
| bsw@1045 | 3 initiative.issue:load_everything_for_member_id(app.session.member_id) | 
| bsw/jbe@0 | 4 | 
| bsw@1136 | 5 if initiative.issue.closed then | 
| bsw@1135 | 6   slot.put_into("error", _"This issue is already closed.") | 
| bsw@1135 | 7   return | 
| bsw@1136 | 8 elseif initiative.issue.half_frozen then | 
| bsw@1135 | 9   slot.put_into("error", _"This issue is already frozen.") | 
| bsw@1135 | 10   return | 
| bsw@1136 | 11 elseif initiative.issue.phase_finished then | 
| bsw@1135 | 12   slot.put_into("error", _"Current phase is already closed.") | 
| bsw@1135 | 13   return | 
| bsw@1135 | 14 end | 
| bsw@1135 | 15 | 
| bsw/jbe@0 | 16 | 
| bsw@1045 | 17 execute.view{ | 
| bsw@1045 | 18   module = "issue", view = "_head", params = { | 
| bsw@1045 | 19     issue = initiative.issue, | 
| bsw@1045 | 20     initiative = initiative | 
| bsw/jbe@4 | 21   } | 
| bsw@1045 | 22 } | 
| bsw@1045 | 23 | 
| bsw@1045 | 24 execute.view { | 
| bsw@1045 | 25   module = "issue", view = "_sidebar_issue", | 
| bsw@1045 | 26   params = { | 
| bsw@1045 | 27     issue = initiative.issue, | 
| bsw@1045 | 28   } | 
| bsw@1045 | 29 } | 
| bsw/jbe@4 | 30 | 
| bsw@95 | 31 | 
| bsw@95 | 32 | 
| bsw/jbe@0 | 33 ui.form{ | 
| bsw@2 | 34   record = initiative.current_draft, | 
| bsw@1045 | 35   attr = { class = "vertical section" }, | 
| bsw/jbe@0 | 36   module = "draft", | 
| bsw/jbe@0 | 37   action = "add", | 
| bsw@2 | 38   params = { initiative_id = initiative.id }, | 
| bsw/jbe@0 | 39   routing = { | 
| bsw@95 | 40     ok = { | 
| bsw/jbe@0 | 41       mode = "redirect", | 
| bsw/jbe@0 | 42       module = "initiative", | 
| bsw/jbe@0 | 43       view = "show", | 
| bsw@2 | 44       id = initiative.id | 
| bsw/jbe@0 | 45     } | 
| bsw/jbe@0 | 46   }, | 
| bsw/jbe@0 | 47   content = function() | 
| bsw@1045 | 48 | 
| bsw@1045 | 49     ui.sectionHead( function() | 
| bsw@1045 | 50       ui.heading { level = 1, content = initiative.display_name } | 
| bsw@1045 | 51     end) | 
| bsw@1045 | 52 | 
| bsw@95 | 53     if param.get("preview") then | 
| bsw@1045 | 54       ui.sectionRow( function() | 
| bsw@1045 | 55         ui.field.hidden{ name = "formatting_engine", value = param.get("formatting_engine") } | 
| bsw@1045 | 56         ui.field.hidden{ name = "content", value = param.get("content") } | 
| bsw@1145 | 57         local formatting_engine | 
| bsw@1045 | 58         if config.enforce_formatting_engine then | 
| bsw@1045 | 59           formatting_engine = config.enforce_formatting_engine | 
| bsw@1045 | 60         else | 
| bsw@1045 | 61           formatting_engine = param.get("formatting_engine") | 
| bsw@95 | 62         end | 
| bsw@1045 | 63         ui.container{ | 
| bsw@1045 | 64           attr = { class = "draft" }, | 
| bsw@1045 | 65           content = function() | 
| bsw@1045 | 66             slot.put(format.wiki_text(param.get("content"), formatting_engine)) | 
| bsw@1045 | 67           end | 
| bsw@1045 | 68         } | 
| bsw@95 | 69 | 
| bsw@1045 | 70         slot.put("<br />") | 
| bsw@1045 | 71         ui.tag{ | 
| bsw@1045 | 72           tag = "input", | 
| bsw@1045 | 73           attr = { | 
| bsw@1045 | 74             type = "submit", | 
| bsw@1045 | 75             class = "btn btn-default", | 
| bsw@1045 | 76             value = _'Publish now' | 
| bsw@1045 | 77           }, | 
| bsw@1045 | 78           content = "" | 
| bsw@1045 | 79         } | 
| bsw@1045 | 80         slot.put("<br />") | 
| bsw@1045 | 81         slot.put("<br />") | 
| bsw@95 | 82 | 
| poelzi@133 | 83         ui.tag{ | 
| bsw@1045 | 84           tag = "input", | 
| bsw@1045 | 85           attr = { | 
| bsw@1045 | 86             type = "submit", | 
| bsw@1045 | 87             name = "edit", | 
| bsw@1045 | 88             class = "btn-link", | 
| bsw@1045 | 89             value = _'Edit again' | 
| bsw@1045 | 90           }, | 
| bsw@1045 | 91           content = "" | 
| bsw@1045 | 92         } | 
| bsw@1045 | 93         slot.put(" | ") | 
| bsw@1045 | 94         ui.link{ | 
| bsw@1045 | 95           content = _"Cancel", | 
| bsw@1045 | 96           module = "initiative", | 
| bsw@1045 | 97           view = "show", | 
| bsw@1045 | 98           id = initiative.id | 
| bsw@1045 | 99         } | 
| bsw@1045 | 100       end ) | 
| bsw@1045 | 101 | 
| bsw@1045 | 102     else | 
| bsw@1045 | 103       ui.sectionRow( function() | 
| bsw@1045 | 104         execute.view{ module = "initiative", view = "_sidebar_wikisyntax" } | 
| bsw@1045 | 105 | 
| bsw@1045 | 106         if not config.enforce_formatting_engine then | 
| bsw@1045 | 107           ui.field.select{ | 
| bsw@1045 | 108             label = _"Wiki engine", | 
| bsw@1045 | 109             name = "formatting_engine", | 
| bsw@1045 | 110             foreign_records = config.formatting_engines, | 
| bsw@1045 | 111             attr = {id = "formatting_engine"}, | 
| bsw@1045 | 112             foreign_id = "id", | 
| bsw@1045 | 113             foreign_name = "name" | 
| bsw@1045 | 114           } | 
| bsw@1045 | 115         end | 
| bsw@1045 | 116 | 
| bsw@1045 | 117         ui.heading{ level = 2, content = _"Enter your proposal and/or reasons" } | 
| bsw@1045 | 118 | 
| bsw@1045 | 119         ui.field.text{ | 
| bsw@1045 | 120           name = "content", | 
| bsw@1045 | 121           multiline = true, | 
| bsw@1045 | 122           attr = { style = "height: 50ex; width: 100%;" }, | 
| bsw@1045 | 123           value = param.get("content") | 
| poelzi@133 | 124         } | 
| poelzi@133 | 125         ui.tag{ | 
| bsw@1045 | 126           tag = "input", | 
| bsw@1045 | 127           attr = { | 
| bsw@1045 | 128             type = "submit", | 
| bsw@1045 | 129             name = "preview", | 
| bsw@1045 | 130             class = "btn btn-default", | 
| bsw@1045 | 131             value = _'Preview' | 
| bsw@1045 | 132           }, | 
| bsw@1045 | 133           content = "" | 
| poelzi@133 | 134         } | 
| bsw@1045 | 135         slot.put("<br />") | 
| bsw@1045 | 136         slot.put("<br />") | 
| bsw@1045 | 137 | 
| bsw@1045 | 138         ui.link{ | 
| bsw@1045 | 139           content = _"Cancel", | 
| bsw@1045 | 140           module = "initiative", | 
| bsw@1045 | 141           view = "show", | 
| bsw@1045 | 142           id = initiative.id | 
| bsw@1045 | 143         } | 
| bsw@1045 | 144 | 
| bsw@1045 | 145       end ) | 
| bsw@1045 | 146     end | 
| bsw/jbe@0 | 147   end | 
| bsw/jbe@0 | 148 } |