liquid_feedback_frontend

view 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 source
1 local suggestions_selector = param.get("suggestions_selector", "table")
3 ui.paginate{
4 selector = suggestions_selector,
5 content = function()
6 ui.list{
7 records = suggestions_selector:exec(),
8 columns = {
9 {
10 label = _"Name",
11 content = function(record)
12 ui.link{
13 text = record.name,
14 module = "suggestion",
15 view = "show",
16 id = record.id
17 }
18 end
19 },
20 {
21 label = _"Support",
22 content = function(record)
23 if record.minus2_unfulfilled_count then
24 local max_value = record.initiative.supporter_count
25 ui.bargraph{
26 max_value = max_value,
27 width = 50,
28 bars = {
29 { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.minus2_fulfilled_count - record.minus1_fulfilled_count },
30 { color = "#f88", value = record.minus1_unfulfilled_count + record.minus1_fulfilled_count },
31 { color = "#a00", value = record.minus2_unfulfilled_count + record.minus2_fulfilled_count },
32 { color = "#0a0", value = record.plus2_unfulfilled_count + record.plus2_fulfilled_count },
33 { color = "#8f8", value = record.plus1_unfulfilled_count + record.plus1_fulfilled_count },
34 { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count },
35 }
36 }
37 end
38 end
39 },
40 {
41 content = function(record)
42 local degree
43 local opinion = Opinion:by_pk(app.session.member.id, record.id)
44 if opinion then
45 degree = opinion.degree
46 end
47 ui.link{
48 attr = { class = "action" .. (degree == -2 and " active_red2" or "") },
49 text = _"must not",
50 module = "opinion",
51 action = "update",
52 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
53 params = {
54 suggestion_id = record.id,
55 degree = -2
56 }
57 }
58 ui.link{
59 attr = { class = "action" .. (degree == -1 and " active_red1" or "") },
60 text = _"should not",
61 module = "opinion",
62 action = "update",
63 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
64 params = {
65 suggestion_id = record.id,
66 degree = -1
67 }
68 }
69 ui.link{
70 attr = { class = "action" .. (degree == nil and " active" or "") },
71 text = _"neutral",
72 module = "opinion",
73 action = "update",
74 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
75 params = {
76 suggestion_id = record.id,
77 delete = true
78 }
79 }
80 ui.link{
81 attr = { class = "action" .. (degree == 1 and " active_green1" or "") },
82 text = _"should",
83 module = "opinion",
84 action = "update",
85 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
86 params = {
87 suggestion_id = record.id,
88 degree = 1
89 }
90 }
91 ui.link{
92 attr = { class = "action" .. (degree == 2 and " active_green2" or "") },
93 text = _"must",
94 module = "opinion",
95 action = "update",
96 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
97 params = {
98 suggestion_id = record.id,
99 degree = 2
100 }
101 }
102 end
103 },
104 {
105 label = _"Not fullfilled",
106 content = function(record)
107 if record.minus2_unfulfilled_count then
108 local max_value = record.initiative.supporter_count
109 ui.bargraph{
110 max_value = max_value,
111 width = 50,
112 bars = {
113 { color = "#ddd", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count },
114 { color = "#f88", value = record.minus1_unfulfilled_count },
115 { color = "#a00", value = record.minus2_unfulfilled_count },
116 { color = "#0a0", value = record.plus2_unfulfilled_count },
117 { color = "#8f8", value = record.plus1_unfulfilled_count },
118 { color = "#ddd", value = max_value - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count },
119 }
120 }
121 end
122 end
123 },
124 {
125 label = _"Fullfilled",
126 content = function(record)
127 if record.minus2_fulfilled_count then
128 local max_value = record.initiative.supporter_count
129 ui.bargraph{
130 max_value = max_value,
131 width = 50,
132 bars = {
133 { color = "#ddd", value = max_value - record.minus2_fulfilled_count - record.minus1_fulfilled_count },
134 { color = "#f88", value = record.minus1_fulfilled_count },
135 { color = "#a00", value = record.minus2_fulfilled_count },
136 { color = "#0a0", value = record.plus2_fulfilled_count },
137 { color = "#8f8", value = record.plus1_fulfilled_count },
138 { color = "#ddd", value = max_value - record.plus1_fulfilled_count - record.plus2_fulfilled_count },
139 }
140 }
141 end
142 end
143 },
144 {
145 content = function(record)
146 local degree
147 local opinion = Opinion:by_pk(app.session.member.id, record.id)
148 if opinion then
149 degree = opinion.degree
150 end
151 if opinion then
152 if not opinion.fulfilled then
153 ui.image{ static = "icons/16/cross.png" }
154 ui.link{
155 attr = { class = "action" },
156 text = _"set fulfilled",
157 module = "opinion",
158 action = "update",
159 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
160 params = {
161 suggestion_id = record.id,
162 fulfilled = true
163 }
164 }
165 else
166 ui.image{ static = "icons/16/tick.png" }
167 ui.link{
168 attr = { class = "action" },
169 text = _"remove fulfilled",
170 module = "opinion",
171 action = "update",
172 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } },
173 params = {
174 suggestion_id = record.id,
175 fulfilled = false
176 }
177 }
178 end
179 end
180 end
181 },
182 }
183 }
184 end
185 }

Impressum / About Us