| rev | line source | 
| bsw/jbe@1309 | 1 local draft = Draft:new_selector():add_where{ "id = ?", param.get_id() }:optional_object_mode():exec() | 
| bsw/jbe@1309 | 2 | 
| bsw/jbe@1309 | 3 if not draft then | 
| bsw/jbe@1309 | 4   execute.view { module = "index", view = "404" } | 
| bsw/jbe@1309 | 5   request.set_status("404 Not Found") | 
| bsw/jbe@1309 | 6   return | 
| bsw/jbe@1309 | 7 end | 
| bsw/jbe@1309 | 8 | 
| bsw@1495 | 9 local member = app.session.member | 
| bsw@1495 | 10 | 
| bsw@1495 | 11 if member then | 
| bsw@1495 | 12   draft.initiative:load_everything_for_member_id(member.id) | 
| bsw@1495 | 13   draft.initiative.issue:load_everything_for_member_id(member.id) | 
| bsw@1495 | 14 end | 
| bsw/jbe@1309 | 15 | 
| poelzi@160 | 16 local source = param.get("source", atom.boolean) | 
| poelzi@160 | 17 | 
| bsw@1495 | 18 execute.view{ module = "issue", view = "_head", params = { issue = draft.initiative.issue, link_issue = true } } | 
| bsw@1495 | 19 | 
| bsw@1495 | 20 ui.grid{ content = function() | 
| poelzi@160 | 21 | 
| bsw@1495 | 22   ui.cell_main{ content = function() | 
| bsw@1495 | 23 | 
| bsw@1495 | 24     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function() | 
| bsw@1495 | 25 | 
| bsw@1495 | 26       ui.container{ attr = { class = "mdl-card__title mdl-card--has-fab mdl-card--border" }, content = function () | 
| bsw@1495 | 27 | 
| bsw@1045 | 28         ui.heading { | 
| bsw@1495 | 29           attr = { class = "mdl-card__title-text" }, | 
| bsw@1495 | 30           level = 2, | 
| bsw@1495 | 31           content = function() | 
| bsw@1495 | 32             ui.link{ | 
| bsw@1495 | 33               module = "initiative", view = "show", id = draft.initiative.id, | 
| bsw@1495 | 34               content = draft.initiative.display_name | 
| bsw@1495 | 35             } | 
| bsw@1495 | 36             ui.container{ content = _("Draft revision #{id}", { id = draft.id } ) } | 
| bsw@1495 | 37           end | 
| bsw@1045 | 38         } | 
| bsw@1495 | 39       end } | 
| bsw@1495 | 40 | 
| bsw@1495 | 41       ui.container{ attr = { class = "draft mdl-card__title mdl-card--border" }, content = function() | 
| bsw@1495 | 42         if config.render_external_reference and config.render_external_reference.draft then | 
| bsw@1495 | 43           config.render_external_reference.draft(draft, function (callback) | 
| bsw@1495 | 44             ui.sectionRow(callback) | 
| bsw@1495 | 45           end) | 
| bsw@1495 | 46         end | 
| bsw@1495 | 47 | 
| bsw@1495 | 48         execute.view{ | 
| bsw@1045 | 49           module = "draft", | 
| bsw@1495 | 50           view = "_show", | 
| bsw@1495 | 51           params = { draft = draft, source = source } | 
| bsw@1045 | 52         } | 
| bsw@1495 | 53 | 
| bsw@1495 | 54 | 
| bsw@1495 | 55 | 
| bsw@1495 | 56       end } | 
| bsw@1495 | 57 | 
| bsw@1495 | 58       if config.attachments then | 
| bsw@1495 | 59 | 
| bsw@1495 | 60         local files = File:new_selector() | 
| bsw@1495 | 61           :left_join("draft_attachment", nil, "draft_attachment.file_id = file.id") | 
| bsw@1495 | 62           :add_where{ "draft_attachment.draft_id = ?", draft.id } | 
| bsw@1495 | 63           :reset_fields() | 
| bsw@1495 | 64           :add_field("file.id") | 
| bsw@1495 | 65           :add_field("draft_attachment.title") | 
| bsw@1495 | 66           :add_field("draft_attachment.description") | 
| bsw@1495 | 67           :add_order_by("draft_attachment.id") | 
| bsw@1495 | 68           :exec() | 
| bsw@1495 | 69 | 
| bsw@1495 | 70         if #files > 0 then | 
| bsw@1495 | 71           ui.container { | 
| bsw@1495 | 72             attr = { class = "mdl-card__content mdl-card--border" }, | 
| bsw@1495 | 73             content = function() | 
| bsw@1495 | 74               for i, file in ipairs(files) do | 
| bsw@1495 | 75                 ui.link{ module = "file", view = "show.jpg", id = file.id, content = function() | 
| bsw@1495 | 76                   ui.image{ module = "file", view = "show.jpg", id = file.id, params = { preview = true } } | 
| bsw@1495 | 77                 end } | 
| bsw@1495 | 78                 ui.container{ content = file.title or "" } | 
| bsw@1495 | 79                 ui.container{ content = file.description or "" } | 
| bsw@1495 | 80                 slot.put("<br /><br />") | 
| bsw@1495 | 81               end | 
| bsw@1495 | 82             end | 
| bsw@1495 | 83           } | 
| bsw@1495 | 84         end | 
| bsw@1045 | 85       end | 
| bsw@1495 | 86 | 
| bsw@1495 | 87       ui.container{ attr = { class = "mdl-card__actions" }, content = function() | 
| bsw@1495 | 88         if source then | 
| bsw@1495 | 89           ui.link{ | 
| bsw@1495 | 90             attr = { class = "mdl-button mdl-js-button" }, | 
| bsw@1495 | 91             content = _"Rendered", | 
| bsw@1495 | 92             module = "draft", | 
| bsw@1495 | 93             view = "show", | 
| bsw@1495 | 94             id = param.get_id(), | 
| bsw@1495 | 95             params = { source = false } | 
| bsw@1495 | 96           } | 
| bsw@1495 | 97         else | 
| bsw@1495 | 98           ui.link{ | 
| bsw@1495 | 99             attr = { class = "mdl-button mdl-js-button" }, | 
| bsw@1495 | 100             content = _"Source", | 
| bsw@1495 | 101             module = "draft", | 
| bsw@1495 | 102             view = "show", | 
| bsw@1495 | 103             id = param.get_id(), | 
| bsw@1495 | 104             params = { source = true } | 
| bsw@1495 | 105           } | 
| bsw@1495 | 106         end | 
| bsw@1495 | 107 | 
| bsw@1495 | 108       end } | 
| bsw@1045 | 109     end } | 
| bsw@1495 | 110 | 
| bsw@1495 | 111   end } | 
| bsw@1495 | 112 | 
| bsw@1495 | 113   ui.cell_sidebar{ content = function() | 
| bsw@1495 | 114     if config.logo then | 
| bsw@1495 | 115       config.logo() | 
| bsw@1495 | 116     end | 
| bsw@1495 | 117     execute.view { | 
| bsw@1495 | 118       module = "issue", view = "_sidebar", | 
| bsw@1495 | 119       params = { | 
| bsw@1495 | 120         issue = draft.initiative.issue, | 
| bsw@1495 | 121         initiative = draft.initiative, | 
| bsw@1495 | 122         member = app.session.member | 
| bsw@1495 | 123       } | 
| bsw@1045 | 124     } | 
| bsw@1495 | 125   end } | 
| bsw@1495 | 126 | 
| bsw@1495 | 127 end } |