| rev | 
   line source | 
| 
bsw@10
 | 
     1 local initiative = Initiative:by_id(param.get_id())
 | 
| 
bsw@1045
 | 
     2 local initiatives = app.session.member
 | 
| 
bsw@1045
 | 
     3   :get_reference_selector("supported_initiatives")
 | 
| 
bsw@1045
 | 
     4   :join("issue", nil, "issue.id = initiative.issue_id")
 | 
| 
bsw@1045
 | 
     5   :add_where("issue.closed ISNULL")
 | 
| 
bsw@1045
 | 
     6   :add_order_by("issue.id")
 | 
| 
bsw@1045
 | 
     7   :exec()
 | 
| 
bsw@10
 | 
     8 
 | 
| 
bsw@1045
 | 
     9   
 | 
| 
bsw@1045
 | 
    10 local member = app.session.member
 | 
| 
bsw@1045
 | 
    11 if member then
 | 
| 
bsw@1045
 | 
    12   initiative:load_everything_for_member_id(member.id)
 | 
| 
bsw@1045
 | 
    13   initiative.issue:load_everything_for_member_id(member.id)
 | 
| 
bsw@1045
 | 
    14 end
 | 
| 
bsw@1045
 | 
    15 
 | 
| 
bsw@1045
 | 
    16 
 | 
| 
bsw@1045
 | 
    17 local tmp = { { id = -1, myname = _"Suggest no initiative" }}
 | 
| 
bsw@1045
 | 
    18 for i, initiative in ipairs(initiatives) do
 | 
| 
bsw@1045
 | 
    19   initiative.myname = _("Issue ##{issue_id}: #{initiative_name}", {
 | 
| 
bsw@1045
 | 
    20     issue_id = initiative.issue.id,
 | 
| 
bsw@1045
 | 
    21     initiative_name = initiative.name
 | 
| 
bsw@1045
 | 
    22   })
 | 
| 
bsw@1045
 | 
    23   tmp[#tmp+1] = initiative
 | 
| 
bsw@1045
 | 
    24 end
 | 
| 
bsw@10
 | 
    25 
 | 
| 
bsw@1045
 | 
    26 execute.view {
 | 
| 
bsw@1045
 | 
    27   module = "issue", view = "_head", params = {
 | 
| 
bsw@1045
 | 
    28     issue = initiative.issue,
 | 
| 
bsw@1045
 | 
    29     member = member
 | 
| 
bsw@10
 | 
    30   }
 | 
| 
bsw@1045
 | 
    31 }
 | 
| 
bsw@1045
 | 
    32 execute.view{ module = "issue", view = "_sidebar_state", params = {
 | 
| 
bsw@1045
 | 
    33   initiative = initiative
 | 
| 
bsw@1045
 | 
    34 } }
 | 
| 
bsw@10
 | 
    35 
 | 
| 
bsw@1045
 | 
    36 execute.view { 
 | 
| 
bsw@1045
 | 
    37   module = "issue", view = "_sidebar_issue", 
 | 
| 
bsw@1045
 | 
    38   params = {
 | 
| 
bsw@1045
 | 
    39     issue = initiative.issue,
 | 
| 
bsw@1045
 | 
    40     highlight_initiative_id = initiative.id
 | 
| 
bsw@1045
 | 
    41   }
 | 
| 
bsw@1045
 | 
    42 }
 | 
| 
bsw@1045
 | 
    43 
 | 
| 
bsw@1045
 | 
    44 execute.view {
 | 
| 
bsw@1045
 | 
    45   module = "issue", view = "_sidebar_whatcanido",
 | 
| 
bsw@1045
 | 
    46   params = { initiative = initiative }
 | 
| 
bsw@1045
 | 
    47 }
 | 
| 
bsw@1045
 | 
    48 
 | 
| 
bsw@1045
 | 
    49 execute.view { 
 | 
| 
bsw@1045
 | 
    50   module = "issue", view = "_sidebar_members", params = {
 | 
| 
bsw@1045
 | 
    51     issue = initiative.issue, initiative = initiative
 | 
| 
bsw@1045
 | 
    52   }
 | 
| 
bsw@1045
 | 
    53 }
 | 
| 
bsw@1045
 | 
    54 
 | 
| 
bsw@10
 | 
    55 
 | 
| 
bsw@10
 | 
    56 ui.form{
 | 
| 
bsw@1045
 | 
    57   attr = { class = "wide section" },
 | 
| 
bsw@10
 | 
    58   module = "initiative",
 | 
| 
bsw@10
 | 
    59   action = "revoke",
 | 
| 
bsw@10
 | 
    60   id = initiative.id,
 | 
| 
bsw@10
 | 
    61   routing = {
 | 
| 
bsw@10
 | 
    62     ok = {
 | 
| 
bsw@10
 | 
    63       mode = "redirect",
 | 
| 
bsw@10
 | 
    64       module = "initiative",
 | 
| 
bsw@10
 | 
    65       view = "show",
 | 
| 
bsw@10
 | 
    66       id = initiative.id
 | 
| 
bsw@10
 | 
    67     }
 | 
| 
bsw@10
 | 
    68   },
 | 
| 
bsw@10
 | 
    69   content = function()
 | 
| 
bsw@1045
 | 
    70 
 | 
| 
bsw@1045
 | 
    71     ui.sectionHead( function()
 | 
| 
bsw@1045
 | 
    72       ui.link{
 | 
| 
bsw@1045
 | 
    73         module = "initiative", view = "show", id = initiative.id,
 | 
| 
bsw@1045
 | 
    74         content = function ()
 | 
| 
bsw@1045
 | 
    75           ui.heading { 
 | 
| 
bsw@1045
 | 
    76             level = 1,
 | 
| 
bsw@1045
 | 
    77             content = initiative.display_name
 | 
| 
bsw@1045
 | 
    78           }
 | 
| 
bsw@1045
 | 
    79         end
 | 
| 
bsw@1045
 | 
    80       }
 | 
| 
bsw@1045
 | 
    81       ui.heading { level = 2, content = _"Revoke initiative" }
 | 
| 
bsw@1045
 | 
    82     end )
 | 
| 
bsw@1045
 | 
    83 
 | 
| 
bsw@1045
 | 
    84     ui.sectionRow( function()
 | 
| 
bsw@10
 | 
    85 
 | 
| 
bsw@1045
 | 
    86       ui.heading{ level = 2, content = _"Do you want to suggest to support another initiative?" }
 | 
| 
bsw@1045
 | 
    87     
 | 
| 
bsw@1045
 | 
    88       ui.field.select{
 | 
| 
bsw@1045
 | 
    89         name = "suggested_initiative_id",
 | 
| 
bsw@1045
 | 
    90         foreign_records = tmp,
 | 
| 
bsw@1045
 | 
    91         foreign_id = "id",
 | 
| 
bsw@1045
 | 
    92         foreign_name = "myname",
 | 
| 
bsw@1045
 | 
    93         value = param.get("suggested_initiative_id", atom.integer)
 | 
| 
bsw@1045
 | 
    94       }
 | 
| 
bsw@1045
 | 
    95       ui.container{ content = _"You may choose one of the ongoing initiatives you are currently supporting" }
 | 
| 
bsw@1045
 | 
    96       slot.put("<br />")
 | 
| 
bsw@1045
 | 
    97       ui.heading { level = 2, content = _"Are you aware that revoking an initiative is irrevocable?" }
 | 
| 
bsw@1045
 | 
    98       ui.container{ content = function()
 | 
| 
bsw@1045
 | 
    99         ui.tag{ tag = "input", attr = {
 | 
| 
bsw@1045
 | 
   100           type = "checkbox",
 | 
| 
bsw@1045
 | 
   101           name = "are_you_sure",
 | 
| 
bsw@1045
 | 
   102           value = "1"
 | 
| 
bsw@1045
 | 
   103         } }
 | 
| 
bsw@1045
 | 
   104         ui.tag { content = _"I understand, that this is not revocable" }
 | 
| 
bsw@1045
 | 
   105       end }
 | 
| 
bsw@1045
 | 
   106       
 | 
| 
bsw@1045
 | 
   107       
 | 
| 
bsw@1045
 | 
   108       slot.put("<br />")
 | 
| 
bsw@1045
 | 
   109       ui.tag{
 | 
| 
bsw@1045
 | 
   110         tag = "input",
 | 
| 
bsw@1045
 | 
   111         attr = {
 | 
| 
bsw@1045
 | 
   112           type = "submit",
 | 
| 
bsw@1045
 | 
   113           class = "btn btn-dangerous",
 | 
| 
bsw@1045
 | 
   114           value = _"Revoke now"
 | 
| 
bsw@1045
 | 
   115         },
 | 
| 
bsw@1045
 | 
   116         content = ""
 | 
| 
bsw@1045
 | 
   117       }
 | 
| 
bsw@1045
 | 
   118       slot.put("<br />")
 | 
| 
bsw@1045
 | 
   119       slot.put("<br />")
 | 
| 
bsw@10
 | 
   120 
 | 
| 
bsw@1045
 | 
   121       ui.link{
 | 
| 
bsw@1045
 | 
   122         content = _"Cancel",
 | 
| 
bsw@1045
 | 
   123         module = "initiative",
 | 
| 
bsw@1045
 | 
   124         view = "show",
 | 
| 
bsw@1045
 | 
   125         id = initiative.id,
 | 
| 
bsw@1045
 | 
   126         params = {
 | 
| 
bsw@1045
 | 
   127           tab = "initiators"
 | 
| 
bsw@1045
 | 
   128         }
 | 
| 
bsw@1045
 | 
   129       }
 | 
| 
bsw@1045
 | 
   130     end )
 | 
| 
bsw@1045
 | 
   131 
 | 
| 
bsw@10
 | 
   132   end
 | 
| 
bsw@10
 | 
   133 } |