liquid_feedback_frontend

annotate app/main/initiative/_head.lua @ 1309:32cc544d5a5b

Cumulative patch for upcoming frontend version 4
author bsw/jbe
date Sun Jul 15 14:07:29 2018 +0200 (2018-07-15)
parents c02aea493bc1
children c08690678b2d
rev   line source
bsw@1045 1 local initiative = param.get("initiative", "table")
bsw@1045 2 local member = param.get("member", "table") or app.session.member
bsw@1045 3
bsw@1045 4 -- TODO performance
bsw@1045 5 local initiator
bsw@1045 6 if member then
bsw@1045 7 initiator = Initiator:by_pk(initiative.id, member.id)
bsw@1045 8 end
bsw@1045 9
bsw@1045 10 local initiators_members_selector = initiative:get_reference_selector("initiating_members")
bsw@1045 11 :add_field("initiator.accepted", "accepted")
bsw@1045 12 :add_order_by("member.name")
bsw@1045 13 if initiator and initiator.accepted then
bsw@1045 14 initiators_members_selector:add_where("initiator.accepted ISNULL OR initiator.accepted")
bsw@1045 15 else
bsw@1045 16 initiators_members_selector:add_where("initiator.accepted")
bsw@1045 17 end
bsw@1045 18
bsw@1045 19 local initiators = initiators_members_selector:exec()
bsw@1045 20
bsw@1045 21
bsw/jbe@1309 22 ui.container{ attr = { class = "mdl-card__title mdl-card--has-fab mdl-card--border" }, content = function ()
bsw/jbe@1309 23
bsw/jbe@1309 24 ui.heading {
bsw/jbe@1309 25 attr = { class = "mdl-card__title-text" },
bsw/jbe@1309 26 level = 2,
bsw/jbe@1309 27 content = function()
bsw/jbe@1309 28 ui.tag{ content = initiative.display_name }
bsw/jbe@1309 29 end
bsw/jbe@1309 30 }
bsw@1045 31
bsw/jbe@1309 32 if app.session.member and app.session.member:has_voting_right_for_unit_id(initiative.issue.area.unit_id) then
bsw/jbe@1309 33 if not initiative.issue.closed and not initiative.member_info.supported then
bsw/jbe@1309 34 if not initiative.issue.fully_frozen then
bsw/jbe@1309 35 ui.link {
bsw/jbe@1309 36 attr = { class = "mdl-button mdl-js-button mdl-button--fab mdl-button--colored" ,
bsw/jbe@1309 37 style = "position: absolute; right: 20px; bottom: -27px;"
bsw/jbe@1309 38 },
bsw/jbe@1309 39 module = "initiative", action = "add_support",
bsw/jbe@1309 40 routing = { default = {
bsw/jbe@1309 41 mode = "redirect", module = "initiative", view = "show", id = initiative.id
bsw/jbe@1309 42 } },
bsw/jbe@1309 43 id = initiative.id,
bsw/jbe@1309 44 content = function()
bsw/jbe@1309 45 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "thumb_up" }
bsw/jbe@1309 46 end
bsw@1045 47 }
bsw/jbe@1309 48 end
bsw/jbe@1309 49 end
bsw/jbe@1309 50 if initiative.issue.fully_frozen and not initiative.issue.closed and not initiative.issue.member_info.direct_voted then
bsw/jbe@1309 51 ui.link {
bsw/jbe@1309 52 attr = { class = "mdl-button mdl-js-button mdl-button--fab mdl-button--colored" ,
bsw/jbe@1309 53 style = "position: absolute; right: 20px; bottom: -27px;"
bsw/jbe@1309 54 },
bsw/jbe@1309 55 module = "vote", view = "list",
bsw/jbe@1309 56 params = { issue_id = initiative.issue_id },
bsw/jbe@1309 57 content = function()
bsw/jbe@1309 58 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = config.voting_icon or "mail_outline" }
bsw/jbe@1309 59 end
bsw/jbe@1309 60 }
bsw/jbe@1309 61 end
bsw/jbe@1309 62 end
bsw/jbe@1309 63 end }
bsw/jbe@1309 64
bsw/jbe@1309 65 ui.container{ attr = { class = "mdl-card__content mdl-card--border" }, content = function ()
bsw/jbe@1309 66
bsw/jbe@1309 67 if not config.voting_only and app.session:has_access("authors_pseudonymous") then
bsw/jbe@1309 68 for i, member in ipairs(initiators) do
bsw/jbe@1309 69 if i > 1 then
bsw/jbe@1309 70 slot.put(" ")
bsw/jbe@1309 71 end
bsw/jbe@1309 72 util.micro_avatar( member )
bsw/jbe@1309 73 end -- for i, member
bsw/jbe@1309 74 end
bsw/jbe@1309 75
bsw/jbe@1309 76 if member then
bsw/jbe@1309 77 ui.container { attr = { class = "mySupport float-right right" }, content = function ()
bsw/jbe@1309 78 if initiative.issue.fully_frozen then
bsw/jbe@1309 79 slot.put("<br />")
bsw/jbe@1309 80 if initiative.issue.member_info.direct_voted then
bsw/jbe@1309 81 ui.tag { content = _"You have voted" }
bsw/jbe@1309 82 slot.put("<br />")
bsw/jbe@1309 83 if not initiative.issue.closed then
bsw/jbe@1309 84 ui.link {
bsw/jbe@1309 85 module = "vote", view = "list",
bsw/jbe@1309 86 params = { issue_id = initiative.issue.id },
bsw/jbe@1309 87 text = _"change vote"
bsw/jbe@1309 88 }
bsw/jbe@1309 89 else
bsw/jbe@1309 90 ui.link {
bsw/jbe@1309 91 module = "vote", view = "list",
bsw/jbe@1309 92 params = { issue_id = initiative.issue.id },
bsw/jbe@1309 93 text = _"show vote"
bsw/jbe@1309 94 }
bsw/jbe@1309 95 end
bsw/jbe@1309 96 slot.put(" ")
bsw/jbe@1309 97 elseif active_trustee_id then
bsw/jbe@1309 98 ui.tag { content = _"You have voted via delegation" }
bsw/jbe@1309 99 ui.link {
bsw/jbe@1309 100 content = _"Show voting ballot",
bsw/jbe@1309 101 module = "vote", view = "list", params = {
bsw/jbe@1309 102 issue_id = initiative.issue.id, member_id = active_trustee_id
bsw/jbe@1309 103 }
bsw/jbe@1309 104 }
bsw/jbe@1309 105 elseif not initiative.issue.closed then
bsw/jbe@1309 106 ui.link {
bsw/jbe@1309 107 attr = { class = "btn btn-default" },
bsw/jbe@1309 108 module = "vote", view = "list",
bsw/jbe@1309 109 params = { issue_id = initiative.issue.id },
bsw/jbe@1309 110 text = _"vote now"
bsw@1045 111 }
bsw@1045 112 end
bsw/jbe@1309 113 elseif initiative.member_info.supported then
bsw/jbe@1309 114 ui.container{ content = function()
bsw/jbe@1309 115 ui.tag{ content = _"You are supporter" }
bsw/jbe@1309 116 slot.put(" ")
bsw/jbe@1309 117 if initiative.member_info.satisfied then
bsw/jbe@1309 118 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "thumb_up" }
bsw/jbe@1309 119 else
bsw/jbe@1309 120 ui.tag{ tag = "i", attr = { class = "material-icons" }, content = "thumb_up" }
bsw/jbe@1309 121 end
bsw/jbe@1309 122 end }
bsw/jbe@1309 123 if initiative.issue.member_info.own_participation then
bsw/jbe@1309 124 ui.link {
bsw/jbe@1309 125 attr = { class = "btn-link" },
bsw/jbe@1309 126 module = "initiative", action = "remove_support",
bsw/jbe@1309 127 routing = { default = {
bsw/jbe@1309 128 mode = "redirect", module = "initiative", view = "show", id = initiative.id
bsw/jbe@1309 129 } },
bsw/jbe@1309 130 id = initiative.id,
bsw/jbe@1309 131 text = _"remove my support"
bsw/jbe@1309 132 }
bsw/jbe@1309 133
bsw/jbe@1309 134 else
bsw/jbe@1309 135
bsw/jbe@1309 136 ui.link {
bsw/jbe@1309 137 module = "delegation", view = "show", params = {
bsw/jbe@1309 138 issue_id = initiative.issue_id,
bsw/jbe@1309 139 initiative_id = initiative.id
bsw/jbe@1309 140 },
bsw/jbe@1309 141 content = _"via delegation"
bsw/jbe@1309 142 }
bsw/jbe@1309 143
bsw/jbe@1309 144 end
bsw/jbe@1309 145
bsw/jbe@1309 146 slot.put(" ")
bsw/jbe@1309 147
bsw/jbe@1309 148 end
bsw/jbe@1309 149 end }
bsw/jbe@1309 150
bsw/jbe@1309 151 end
bsw/jbe@1309 152
bsw/jbe@1309 153 if config.initiative_abstract then
bsw/jbe@1309 154 local abstract = string.match(initiative.current_draft.content, "(.+)<!%--END_OF_ABSTRACT%-->")
bsw/jbe@1309 155 if abstract then
bsw/jbe@1309 156 ui.container{
bsw/jbe@1309 157 attr = { class = "abstract", style = "padding-right: 140px;" },
bsw/jbe@1309 158 content = function() slot.put(abstract) end
bsw/jbe@1309 159 }
bsw/jbe@1309 160 end
bsw/jbe@1309 161 end
bsw/jbe@1309 162
bsw/jbe@1309 163 ui.container { attr = { class = "support" }, content = function ()
bsw/jbe@1309 164
bsw/jbe@1309 165 if not config.voting_only then
bsw@1045 166 execute.view {
bsw@1045 167 module = "initiative", view = "_bargraph", params = {
bsw@1045 168 initiative = initiative
bsw@1045 169 }
bsw@1045 170 }
bsw/jbe@1309 171 slot.put(" ")
bsw@1045 172
bsw/jbe@1309 173 ui.supporter_count(initiative)
bsw@1045 174 end
bsw@1045 175
bsw/jbe@1309 176 end }
bsw/jbe@1309 177
bsw/jbe@1309 178 end }
bsw@1045 179
bsw/jbe@1309 180 execute.view {
bsw/jbe@1309 181 module = "initiative", view = "_sidebar_state",
bsw/jbe@1309 182 params = { initiative = initiative }
bsw/jbe@1309 183 }
bsw@1045 184

Impressum / About Us