| 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@1309 | 16 local draft = initiative.current_draft | 
| bsw/jbe@1309 | 17 if config.initiative_abstract then | 
| bsw/jbe@1309 | 18   draft.abstract = string.match(draft.content, "(.+)<!%--END_OF_ABSTRACT%-->") | 
| bsw/jbe@1309 | 19   if draft.abstract then | 
| bsw/jbe@1309 | 20     draft.content = string.match(draft.content, "<!%--END_OF_ABSTRACT%-->(.*)") | 
| bsw/jbe@1309 | 21   end | 
| bsw/jbe@1309 | 22 end | 
| bsw@95 | 23 | 
| bsw/jbe@0 | 24 ui.form{ | 
| bsw/jbe@1309 | 25   record = draft, | 
| bsw@1045 | 26   attr = { class = "vertical section" }, | 
| bsw/jbe@0 | 27   module = "draft", | 
| bsw/jbe@0 | 28   action = "add", | 
| bsw@2 | 29   params = { initiative_id = initiative.id }, | 
| bsw/jbe@0 | 30   routing = { | 
| bsw@95 | 31     ok = { | 
| bsw/jbe@0 | 32       mode = "redirect", | 
| bsw/jbe@0 | 33       module = "initiative", | 
| bsw/jbe@0 | 34       view = "show", | 
| bsw@2 | 35       id = initiative.id | 
| bsw/jbe@0 | 36     } | 
| bsw/jbe@0 | 37   }, | 
| bsw/jbe@0 | 38   content = function() | 
| bsw@1045 | 39 | 
| bsw/jbe@1309 | 40     ui.grid{ content = function() | 
| bsw/jbe@1309 | 41       ui.cell_main{ content = function() | 
| bsw/jbe@1309 | 42         ui.container{ attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function() | 
| bsw/jbe@1309 | 43           ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() | 
| bsw/jbe@1309 | 44             ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = initiative.display_name } | 
| bsw/jbe@1309 | 45           end } | 
| bsw/jbe@1309 | 46           ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function() | 
| bsw/jbe@1309 | 47             if param.get("preview") then | 
| bsw/jbe@1309 | 48               ui.sectionRow( function() | 
| bsw/jbe@1309 | 49                 if config.initiative_abstract then | 
| bsw/jbe@1309 | 50                   ui.field.hidden{ name = "abstract", value = param.get("abstract") } | 
| bsw/jbe@1309 | 51                   ui.container{ | 
| bsw/jbe@1309 | 52                     attr = { class = "abstract" }, | 
| bsw/jbe@1309 | 53                     content = param.get("abstract") | 
| bsw/jbe@1309 | 54                   } | 
| bsw/jbe@1309 | 55                   slot.put("<br />") | 
| bsw/jbe@1309 | 56                 end | 
| bsw/jbe@1309 | 57                 local draft_text = param.get("content") | 
| bsw/jbe@1309 | 58                 local draft_text = util.wysihtml_preproc(draft_text) | 
| bsw/jbe@1309 | 59                 ui.field.hidden{ name = "content", value = draft_text } | 
| bsw/jbe@1309 | 60                 ui.container{ | 
| bsw/jbe@1309 | 61                   attr = { class = "draft" }, | 
| bsw/jbe@1309 | 62                   content = function() | 
| bsw/jbe@1309 | 63                     slot.put(draft_text) | 
| bsw/jbe@1309 | 64                   end | 
| bsw/jbe@1309 | 65                 } | 
| bsw/jbe@1309 | 66                 slot.put("<br />") | 
| bsw@95 | 67 | 
| bsw/jbe@1309 | 68                 ui.tag{ | 
| bsw/jbe@1309 | 69                   tag = "input", | 
| bsw/jbe@1309 | 70                   attr = { | 
| bsw/jbe@1309 | 71                     type = "submit", | 
| bsw/jbe@1309 | 72                     class = "mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored", | 
| bsw/jbe@1309 | 73                     value = _'Publish now' | 
| bsw/jbe@1309 | 74                   }, | 
| bsw/jbe@1309 | 75                   content = "" | 
| bsw/jbe@1309 | 76                 } | 
| bsw/jbe@1309 | 77                 slot.put("   ") | 
| bsw/jbe@1309 | 78 | 
| bsw/jbe@1309 | 79                 ui.tag{ | 
| bsw/jbe@1309 | 80                   tag = "input", | 
| bsw/jbe@1309 | 81                   attr = { | 
| bsw/jbe@1309 | 82                     type = "submit", | 
| bsw/jbe@1309 | 83                     name = "edit", | 
| bsw/jbe@1309 | 84                     class = "mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect", | 
| bsw/jbe@1309 | 85                     value = _'Edit again' | 
| bsw/jbe@1309 | 86                   }, | 
| bsw/jbe@1309 | 87                   content = "" | 
| bsw/jbe@1309 | 88                 } | 
| bsw/jbe@1309 | 89                 slot.put("   ") | 
| bsw@95 | 90 | 
| bsw/jbe@1309 | 91                 ui.link{ | 
| bsw/jbe@1309 | 92                   attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect" }, | 
| bsw/jbe@1309 | 93                   content = _"Cancel", | 
| bsw/jbe@1309 | 94                   module = "initiative", | 
| bsw/jbe@1309 | 95                   view = "show", | 
| bsw/jbe@1309 | 96                   id = initiative.id | 
| bsw/jbe@1309 | 97                 } | 
| bsw/jbe@1309 | 98               end ) | 
| bsw@1045 | 99 | 
| bsw/jbe@1309 | 100             else | 
| bsw/jbe@1309 | 101               ui.sectionRow( function() | 
| bsw/jbe@1309 | 102                 if config.initiative_abstract then | 
| bsw/jbe@1309 | 103                   ui.container { content = _"Enter abstract:" } | 
| bsw/jbe@1309 | 104                   ui.container{ attr = { class = "mdl-textfield mdl-js-textfield mdl-textfield--expandable mdl-textfield__fullwidth" }, content = function() | 
| bsw/jbe@1309 | 105                     ui.field.text{ | 
| bsw/jbe@1309 | 106                       name = "abstract", | 
| bsw/jbe@1309 | 107                       multiline = true, | 
| bsw/jbe@1309 | 108                       attr = { id = "abstract", style = "height: 20ex; width: 100%;" }, | 
| bsw/jbe@1309 | 109                       value = param.get("abstract") | 
| bsw/jbe@1309 | 110                     } | 
| bsw/jbe@1309 | 111                   end } | 
| bsw/jbe@1309 | 112                 end | 
| bsw/jbe@1309 | 113 | 
| bsw/jbe@1309 | 114                 ui.container { content = _"Enter your proposal and/or reasons:" } | 
| bsw/jbe@1309 | 115                 ui.field.wysihtml{ | 
| bsw/jbe@1309 | 116                   name = "content", | 
| bsw/jbe@1309 | 117                   multiline = true, | 
| bsw/jbe@1309 | 118                   attr = { id = "draft", style = "height: 50ex; width: 100%;" }, | 
| bsw/jbe@1309 | 119                   value = param.get("content") | 
| bsw/jbe@1309 | 120                 } | 
| bsw/jbe@1309 | 121                 if not issue or issue.state == "admission" or issue.state == "discussion" then | 
| bsw/jbe@1309 | 122                   ui.container { content = _"You can change your text again anytime during admission and discussion phase" } | 
| bsw/jbe@1309 | 123                 else | 
| bsw/jbe@1309 | 124                   ui.container { content = _"You cannot change your text again later, because this issue is already in verfication phase!" } | 
| bsw/jbe@1309 | 125                 end | 
| bsw/jbe@1309 | 126                 slot.put("<br />") | 
| bsw@1045 | 127 | 
| bsw/jbe@1309 | 128                 ui.tag{ | 
| bsw/jbe@1309 | 129                   tag = "input", | 
| bsw/jbe@1309 | 130                   attr = { | 
| bsw/jbe@1309 | 131                     type = "submit", | 
| bsw/jbe@1309 | 132                     name = "preview", | 
| bsw/jbe@1309 | 133                     class = "mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored", | 
| bsw/jbe@1309 | 134                     value = _'Preview' | 
| bsw/jbe@1309 | 135                   }, | 
| bsw/jbe@1309 | 136                   content = "" | 
| bsw/jbe@1309 | 137                 } | 
| bsw/jbe@1309 | 138                 slot.put("   ") | 
| bsw/jbe@1309 | 139 | 
| bsw/jbe@1309 | 140                 ui.link{ | 
| bsw/jbe@1309 | 141                   content = _"Cancel", | 
| bsw/jbe@1309 | 142                   module = "initiative", | 
| bsw/jbe@1309 | 143                   view = "show", | 
| bsw/jbe@1309 | 144                   id = initiative.id, | 
| bsw/jbe@1309 | 145                   attr = { class = "mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect" } | 
| bsw/jbe@1309 | 146                 } | 
| bsw/jbe@1309 | 147 | 
| bsw/jbe@1309 | 148               end ) | 
| bsw/jbe@1309 | 149             end | 
| bsw/jbe@1309 | 150           end } | 
| bsw/jbe@1309 | 151         end } | 
| bsw/jbe@1309 | 152       end } | 
| bsw/jbe@1309 | 153     end } | 
| bsw/jbe@0 | 154   end | 
| bsw/jbe@0 | 155 } |