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