liquid_feedback_frontend
diff app/main/issue/show.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 | 8288027edb54 |
children | 7ab60da388fe |
line diff
1.1 --- a/app/main/issue/show.lua Thu Jun 23 03:30:57 2016 +0200 1.2 +++ b/app/main/issue/show.lua Sun Jul 15 14:07:29 2018 +0200 1.3 @@ -1,11 +1,15 @@ 1.4 local issue = Issue:by_id ( param.get_id () ) 1.5 1.6 if not issue then 1.7 - execute.view { module = "index", view = "404" } 1.8 - request.set_status("404 Not Found") 1.9 - return 1.10 + return execute.view { module = "index", view = "404" } 1.11 end 1.12 1.13 +app.current_issue = issue 1.14 + 1.15 +issue.area:load_delegation_info_once_for_member_id(app.session.member_id) 1.16 + 1.17 +execute.view{ module = "issue", view = "_head", params = { issue = issue } } 1.18 + 1.19 local initiatives = issue.initiatives 1.20 1.21 if app.session.member_id then 1.22 @@ -17,111 +21,109 @@ 1.23 app.html_title.title = _("Issue ##{id}", { id = issue.id }) 1.24 end 1.25 1.26 -execute.view { 1.27 - module = "issue", view = "_head", 1.28 - params = { issue = issue, member = app.session.member } 1.29 -} 1.30 - 1.31 -execute.view{ module = "issue", view = "_sidebar_state", params = { 1.32 - issue = issue 1.33 -} } 1.34 +ui.grid{ content = function() 1.35 + 1.36 + ui.cell_main{ content = function() 1.37 1.38 -execute.view { 1.39 - module = "issue", view = "_sidebar_whatcanido", params = { 1.40 - issue = issue 1.41 - } 1.42 -} 1.43 + ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function() 1.44 + ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() 1.45 + ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Competing initiatives" } 1.46 + end } 1.47 + execute.view { 1.48 + module = "initiative", view = "_list", 1.49 + params = { 1.50 + issue = issue, 1.51 + initiatives = initiatives 1.52 + } 1.53 + } 1.54 + end } 1.55 1.56 -execute.view { 1.57 - module = "issue", view = "_sidebar_members", params = { 1.58 - issue = issue 1.59 - } 1.60 -} 1.61 + ui.container { attr = { class = "mdl-card mdl-shadow--2dp mdl-card__fullwidth" }, content = function() 1.62 + 1.63 + ui.container{ attr = { class = "mdl-card__title mdl-card--border" }, content = function() 1.64 + ui.heading { attr = { class = "mdl-card__title-text" }, level = 2, content = _"Details" } 1.65 + end } 1.66 1.67 -ui.section( function () 1.68 - 1.69 - execute.view{ 1.70 - module = "issue", view = "_head2", params = { 1.71 - issue = issue 1.72 - } 1.73 - } 1.74 + ui.container{ attr = { class = "mdl-card__content" }, content = function() 1.75 + local policy = issue.policy 1.76 + ui.form{ 1.77 + record = issue, 1.78 + readonly = true, 1.79 + attr = { class = "sectionRow form" }, 1.80 + content = function() 1.81 + if issue.snapshot then 1.82 + ui.field.timestamp{ label = _"Last counting:", value = issue.snapshot } 1.83 + end 1.84 + ui.field.text{ label = _"Population", name = "population" } 1.85 + ui.field.timestamp{ label = _"Created at", name = "created" } 1.86 + if policy.polling then 1.87 + ui.field.text{ label = _"Admission time", value = _"Implicitly admitted" } 1.88 + else 1.89 + ui.field.text{ label = _"Minimum admission time", value = format.interval_text(issue.min_admission_time_text) } 1.90 + ui.field.text{ label = _"Maximum admission time", value = format.interval_text(issue.max_admission_time_text) } 1.91 + ui.field.text{ label = _"Issue quorum", value = issue.issue_quorum } 1.92 + end 1.93 + if issue.accepted then 1.94 + ui.field.timestamp{ label = _"Accepted at", name = "accepted" } 1.95 + end 1.96 + ui.field.text{ label = _"Discussion time", value = format.interval_text(issue.discussion_time_text) } 1.97 + if issue.half_frozen then 1.98 + ui.field.timestamp{ label = _"Half frozen at", name = "half_frozen" } 1.99 + end 1.100 + ui.field.text{ label = _"Verification time", value = format.interval_text(issue.verification_time_text) } 1.101 + ui.field.text{ 1.102 + label = _"Initiative quorum", 1.103 + value = format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den) 1.104 + } 1.105 + if issue.fully_frozen then 1.106 + ui.field.timestamp{ label = _"Fully frozen at", name = "fully_frozen" } 1.107 + end 1.108 + ui.field.text{ label = _"Voting time", value = format.interval_text(issue.voting_time_text) } 1.109 + if issue.closed then 1.110 + ui.field.timestamp{ label = _"Closed", name = "closed" } 1.111 + end 1.112 + end 1.113 + } 1.114 1.115 - if issue.initiatives[1].rank == 1 then 1.116 - execute.view{ module = "initiative", view = "_sidebar_state", params = { 1.117 - initiative = issue.initiatives[1] 1.118 - } } 1.119 - end 1.120 - 1.121 - ui.sectionRow( function () 1.122 + if issue.initiatives[1].rank == 1 then 1.123 + execute.view{ module = "initiative", view = "_sidebar_state", params = { 1.124 + initiative = issue.initiatives[1] 1.125 + } } 1.126 + end 1.127 + 1.128 + end } 1.129 + 1.130 + end } 1.131 + 1.132 + end } 1.133 + 1.134 + ui.cell_sidebar{ content = function() 1.135 + if config.logo then 1.136 + config.logo() 1.137 + end 1.138 execute.view { 1.139 - module = "initiative", view = "_list", 1.140 - params = { 1.141 + module = "issue", view = "_sidebar", 1.142 + params = { 1.143 issue = issue, 1.144 - initiatives = initiatives 1.145 + member = app.session.member 1.146 } 1.147 } 1.148 - end ) 1.149 - 1.150 -end ) 1.151 1.152 -ui.section(function() 1.153 - ui.sectionHead( function() 1.154 - ui.heading { level = 1, content = _"Details" } 1.155 - end ) 1.156 - local policy = issue.policy 1.157 - ui.form{ 1.158 - record = issue, 1.159 - readonly = true, 1.160 - attr = { class = "sectionRow form" }, 1.161 - content = function() 1.162 - if issue.snapshot then 1.163 - ui.field.timestamp{ label = _"Last counting:", value = issue.snapshot } 1.164 - end 1.165 - ui.field.text{ label = _"Population", name = "population" } 1.166 - ui.field.timestamp{ label = _"Created at", name = "created" } 1.167 - if policy.polling then 1.168 - ui.field.text{ label = _"Admission time", value = _"Implicitly admitted" } 1.169 - else 1.170 - ui.field.text{ label = _"Minimum admission time", value = format.interval_text(issue.min_admission_time_text) } 1.171 - ui.field.text{ label = _"Maximum admission time", value = format.interval_text(issue.max_admission_time_text) } 1.172 - ui.field.text{ 1.173 - label = _"Issue quorum", 1.174 - value = format.percentage(policy.issue_quorum_num / policy.issue_quorum_den) 1.175 + execute.view { 1.176 + module = "issue", view = "_sidebar_whatcanido", 1.177 + params = { 1.178 + issue = issue, 1.179 + member = app.session.member 1.180 + } 1.181 + } 1.182 + 1.183 + if not config.voting_only or issue.state ~= "voting" then 1.184 + execute.view { 1.185 + module = "issue", view = "_sidebar_members", params = { 1.186 + issue = issue 1.187 } 1.188 - if issue.population then 1.189 - ui.field.text{ 1.190 - label = _"Currently required", 1.191 - value = math.ceil(issue.population * policy.issue_quorum_num / policy.issue_quorum_den) 1.192 - } 1.193 - end 1.194 - end 1.195 - if issue.accepted then 1.196 - ui.field.timestamp{ label = _"Accepted at", name = "accepted" } 1.197 - end 1.198 - ui.field.text{ label = _"Discussion time", value = format.interval_text(issue.discussion_time_text) } 1.199 - if issue.half_frozen then 1.200 - ui.field.timestamp{ label = _"Half frozen at", name = "half_frozen" } 1.201 - end 1.202 - ui.field.text{ label = _"Verification time", value = format.interval_text(issue.verification_time_text) } 1.203 - ui.field.text{ 1.204 - label = _"Initiative quorum", 1.205 - value = format.percentage(policy.initiative_quorum_num / policy.initiative_quorum_den) 1.206 } 1.207 - if issue.population then 1.208 - ui.field.text{ 1.209 - label = _"Currently required", 1.210 - value = math.ceil(issue.population * (issue.policy.initiative_quorum_num / issue.policy.initiative_quorum_den)), 1.211 - } 1.212 - end 1.213 - if issue.fully_frozen then 1.214 - ui.field.timestamp{ label = _"Fully frozen at", name = "fully_frozen" } 1.215 - end 1.216 - ui.field.text{ label = _"Voting time", value = format.interval_text(issue.voting_time_text) } 1.217 - if issue.closed then 1.218 - ui.field.timestamp{ label = _"Closed", name = "closed" } 1.219 - end 1.220 end 1.221 - } 1.222 + end } 1.223 1.224 -end ) 1.225 - 1.226 +end }