liquid_feedback_frontend
diff app/main/suggestion/_list.lua @ 0:3bfb2fcf7ab9
Version alpha1
| author | bsw/jbe |
|---|---|
| date | Wed Nov 18 12:00:00 2009 +0100 (2009-11-18) |
| parents | |
| children | dd0109e81922 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/app/main/suggestion/_list.lua Wed Nov 18 12:00:00 2009 +0100 1.3 @@ -0,0 +1,185 @@ 1.4 +local suggestions_selector = param.get("suggestions_selector", "table") 1.5 + 1.6 +ui.paginate{ 1.7 + selector = suggestions_selector, 1.8 + content = function() 1.9 + ui.list{ 1.10 + records = suggestions_selector:exec(), 1.11 + columns = { 1.12 + { 1.13 + label = _"Name", 1.14 + content = function(record) 1.15 + ui.link{ 1.16 + text = record.name, 1.17 + module = "suggestion", 1.18 + view = "show", 1.19 + id = record.id 1.20 + } 1.21 + end 1.22 + }, 1.23 + { 1.24 + label = _"Support", 1.25 + content = function(record) 1.26 + if record.minus2_unfulfilled_count then 1.27 + local max_value = record.initiative.supporter_count 1.28 + ui.bargraph{ 1.29 + max_value = max_value, 1.30 + width = 50, 1.31 + bars = { 1.32 + { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.minus2_fulfilled_count - record.minus1_fulfilled_count }, 1.33 + { color = "#f88", value = record.minus1_unfulfilled_count + record.minus1_fulfilled_count }, 1.34 + { color = "#a00", value = record.minus2_unfulfilled_count + record.minus2_fulfilled_count }, 1.35 + { color = "#0a0", value = record.plus2_unfulfilled_count + record.plus2_fulfilled_count }, 1.36 + { color = "#8f8", value = record.plus1_unfulfilled_count + record.plus1_fulfilled_count }, 1.37 + { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count }, 1.38 + } 1.39 + } 1.40 + end 1.41 + end 1.42 + }, 1.43 + { 1.44 + content = function(record) 1.45 + local degree 1.46 + local opinion = Opinion:by_pk(app.session.member.id, record.id) 1.47 + if opinion then 1.48 + degree = opinion.degree 1.49 + end 1.50 + ui.link{ 1.51 + attr = { class = "action" .. (degree == -2 and " active_red2" or "") }, 1.52 + text = _"must not", 1.53 + module = "opinion", 1.54 + action = "update", 1.55 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.56 + params = { 1.57 + suggestion_id = record.id, 1.58 + degree = -2 1.59 + } 1.60 + } 1.61 + ui.link{ 1.62 + attr = { class = "action" .. (degree == -1 and " active_red1" or "") }, 1.63 + text = _"should not", 1.64 + module = "opinion", 1.65 + action = "update", 1.66 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.67 + params = { 1.68 + suggestion_id = record.id, 1.69 + degree = -1 1.70 + } 1.71 + } 1.72 + ui.link{ 1.73 + attr = { class = "action" .. (degree == nil and " active" or "") }, 1.74 + text = _"neutral", 1.75 + module = "opinion", 1.76 + action = "update", 1.77 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.78 + params = { 1.79 + suggestion_id = record.id, 1.80 + delete = true 1.81 + } 1.82 + } 1.83 + ui.link{ 1.84 + attr = { class = "action" .. (degree == 1 and " active_green1" or "") }, 1.85 + text = _"should", 1.86 + module = "opinion", 1.87 + action = "update", 1.88 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.89 + params = { 1.90 + suggestion_id = record.id, 1.91 + degree = 1 1.92 + } 1.93 + } 1.94 + ui.link{ 1.95 + attr = { class = "action" .. (degree == 2 and " active_green2" or "") }, 1.96 + text = _"must", 1.97 + module = "opinion", 1.98 + action = "update", 1.99 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.100 + params = { 1.101 + suggestion_id = record.id, 1.102 + degree = 2 1.103 + } 1.104 + } 1.105 + end 1.106 + }, 1.107 + { 1.108 + label = _"Not fullfilled", 1.109 + content = function(record) 1.110 + if record.minus2_unfulfilled_count then 1.111 + local max_value = record.initiative.supporter_count 1.112 + ui.bargraph{ 1.113 + max_value = max_value, 1.114 + width = 50, 1.115 + bars = { 1.116 + { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count }, 1.117 + { color = "#f88", value = record.minus1_unfulfilled_count }, 1.118 + { color = "#a00", value = record.minus2_unfulfilled_count }, 1.119 + { color = "#0a0", value = record.plus2_unfulfilled_count }, 1.120 + { color = "#8f8", value = record.plus1_unfulfilled_count }, 1.121 + { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count }, 1.122 + } 1.123 + } 1.124 + end 1.125 + end 1.126 + }, 1.127 + { 1.128 + label = _"Fullfilled", 1.129 + content = function(record) 1.130 + if record.minus2_fulfilled_count then 1.131 + local max_value = record.initiative.supporter_count 1.132 + ui.bargraph{ 1.133 + max_value = max_value, 1.134 + width = 50, 1.135 + bars = { 1.136 + { color = "#ddd", value = max_value - record.minus2_fulfilled_count - record.minus1_fulfilled_count }, 1.137 + { color = "#f88", value = record.minus1_fulfilled_count }, 1.138 + { color = "#a00", value = record.minus2_fulfilled_count }, 1.139 + { color = "#0a0", value = record.plus2_fulfilled_count }, 1.140 + { color = "#8f8", value = record.plus1_fulfilled_count }, 1.141 + { color = "#ddd", value = max_value - record.plus1_fulfilled_count - record.plus2_fulfilled_count }, 1.142 + } 1.143 + } 1.144 + end 1.145 + end 1.146 + }, 1.147 + { 1.148 + content = function(record) 1.149 + local degree 1.150 + local opinion = Opinion:by_pk(app.session.member.id, record.id) 1.151 + if opinion then 1.152 + degree = opinion.degree 1.153 + end 1.154 + if opinion then 1.155 + if not opinion.fulfilled then 1.156 + ui.image{ static = "icons/16/cross.png" } 1.157 + ui.link{ 1.158 + attr = { class = "action" }, 1.159 + text = _"set fulfilled", 1.160 + module = "opinion", 1.161 + action = "update", 1.162 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.163 + params = { 1.164 + suggestion_id = record.id, 1.165 + fulfilled = true 1.166 + } 1.167 + } 1.168 + else 1.169 + ui.image{ static = "icons/16/tick.png" } 1.170 + ui.link{ 1.171 + attr = { class = "action" }, 1.172 + text = _"remove fulfilled", 1.173 + module = "opinion", 1.174 + action = "update", 1.175 + routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, 1.176 + params = { 1.177 + suggestion_id = record.id, 1.178 + fulfilled = false 1.179 + } 1.180 + } 1.181 + end 1.182 + end 1.183 + end 1.184 + }, 1.185 + } 1.186 + } 1.187 + end 1.188 +}