liquid_feedback_frontend
view app/main/initiative/revoke.lua @ 1567:c87cc80b7904
Show incoming and outgoing delegations in member view
| author | bsw | 
|---|---|
| date | Tue Nov 10 21:22:01 2020 +0100 (2020-11-10) | 
| parents | 0cdd70825c45 | 
| children | 
 line source
     1 local initiative = Initiative:by_id(param.get_id())
     2 local initiatives = app.session.member
     3   :get_reference_selector("supported_initiatives")
     4   :join("issue", nil, "issue.id = initiative.issue_id")
     5   :add_where("issue.closed ISNULL")
     6   :add_where{ "initiative.id <> ?", initiative.id }
     7   :add_order_by("issue.id")
     8   :exec()
    11 local member = app.session.member
    12 if member then
    13   initiative:load_everything_for_member_id(member.id)
    14   initiative.issue:load_everything_for_member_id(member.id)
    15 end
    18 local tmp = { { id = -1, myname = _"Suggest no initiative" }}
    19 for i, initiative in ipairs(initiatives) do
    20   initiative.myname = _("Issue ##{issue_id}: #{initiative_name}", {
    21     issue_id = initiative.issue.id,
    22     initiative_name = initiative.name
    23   })
    24   tmp[#tmp+1] = initiative
    25 end
    27 execute.view {
    28   module = "issue", view = "_head", params = {
    29     issue = initiative.issue,
    30     member = member
    31   }
    32 }
    34 ui.grid{ content = function()
    35   ui.cell_main{ content = function()
    37     ui.container{ attr = { class = "mdl-card mdl-card__fullwidth mdl-shadow--2dp" }, content = function()
    39       ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function()
    40         ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Revoke initiative" }
    41       end }
    43       ui.container{ attr = { class = "mdl-card__content" }, content = function()
    45         ui.form{
    46           attr = { class = "wide section" },
    47           module = "initiative",
    48           action = "revoke",
    49           id = initiative.id,
    50           routing = {
    51             ok = {
    52               mode = "redirect",
    53               module = "initiative",
    54               view = "show",
    55               id = initiative.id
    56             }
    57           },
    58           content = function()
    60             ui.container{ content = _"Do you want to suggest to support another initiative?" }
    61             ui.container{ content = _"You may choose one of the ongoing initiatives you are currently supporting" }
    63             slot.put("<br />")          
    65             ui.field.select{
    66               name = "suggested_initiative_id",
    67               foreign_records = tmp,
    68               foreign_id = "id",
    69               foreign_name = "myname",
    70               value = param.get("suggested_initiative_id", atom.integer)
    71             }
    72             slot.put("<br />")
    73             ui.container { content = _"Are you aware that revoking an initiative is irrevocable?" }
    74             slot.put("<br />")          
    75             ui.container{ content = function()
    76               ui.tag{ tag = "input", attr = {
    77                 type = "checkbox",
    78                 name = "are_you_sure",
    79                 value = "1"
    80               } }
    81               ui.tag { content = _"I understand, that this is not revocable" }
    82             end }
    85             slot.put("<br />")
    86             ui.tag{
    87               tag = "input",
    88               attr = {
    89                 type = "submit",
    90                 class = "mdl-button mdl-js-button mdl-button--raised mdl-button--colored",
    91                 value = _"Revoke now"
    92               },
    93               content = ""
    94             }
    95             slot.put("   ")
    97             ui.link{
    98               attr = { class = "mdl-button mdl-js-button mdl-button--raised" },
    99               content = _"Cancel",
   100               module = "initiative",
   101               view = "show",
   102               id = initiative.id,
   103               params = {
   104                 tab = "initiators"
   105               }
   106             }
   108           end
   109         }
   111       end }
   112     end }
   113   end }
   114 end }
