liquid_feedback_frontend
annotate app/main/suggestion/_list.lua @ 228:36b37c65fe85
Esperanto translation for new values
Correction of denumerator/numerator mixup in German translation
Correction of denumerator/numerator mixup in German translation
author | Thomas Wuerfel |
---|---|
date | Sun Jul 10 13:31:24 2011 +0200 (2011-07-10) |
parents | 44ba79952610 |
children | f460555c9896 |
rev | line source |
---|---|
bsw/jbe@4 | 1 |
bsw/jbe@4 | 2 local initiative = param.get("initiative", "table") |
bsw/jbe@0 | 3 local suggestions_selector = param.get("suggestions_selector", "table") |
bsw/jbe@19 | 4 local tab_id = param.get("tab_id") |
bsw/jbe@19 | 5 local show_name = param.get("show_name", atom.boolean) |
bsw/jbe@19 | 6 if show_name == nil then |
bsw/jbe@19 | 7 show_name = true |
bsw/jbe@19 | 8 end |
bsw/jbe@19 | 9 local show_filter = param.get("show_filter", atom.boolean) |
bsw/jbe@19 | 10 if show_filter == nil then |
bsw/jbe@19 | 11 show_filter = true |
bsw/jbe@19 | 12 end |
bsw/jbe@0 | 13 |
bsw/jbe@19 | 14 local partial = { |
bsw/jbe@19 | 15 routing = { |
bsw/jbe@19 | 16 default = { |
bsw/jbe@19 | 17 mode = "redirect", |
bsw/jbe@19 | 18 module = "initiative", |
bsw/jbe@19 | 19 view = "show_tab", |
bsw/jbe@19 | 20 params = { |
bsw/jbe@19 | 21 initiative_id = initiative.id, |
bsw/jbe@19 | 22 tab = "suggestions", |
bsw/jbe@19 | 23 tab_id = tab_id |
bsw/jbe@19 | 24 }, |
bsw/jbe@19 | 25 } |
bsw/jbe@19 | 26 } |
bsw/jbe@19 | 27 } |
bsw/jbe@19 | 28 |
bsw/jbe@19 | 29 local ui_filters = ui.filters |
bsw/jbe@19 | 30 if not show_filter then |
bsw/jbe@19 | 31 ui_filters = function(args) args.content() end |
bsw/jbe@19 | 32 end |
bsw/jbe@19 | 33 |
bsw/jbe@19 | 34 ui_filters{ |
bsw/jbe@19 | 35 label = _"Show filter", |
bsw/jbe@0 | 36 selector = suggestions_selector, |
bsw/jbe@19 | 37 { |
bsw/jbe@19 | 38 label = _"Order by", |
bsw/jbe@4 | 39 { |
bsw/jbe@19 | 40 name = "plus_unfulfilled", |
bsw/jbe@19 | 41 label = _"requested", |
bsw/jbe@19 | 42 selector_modifier = function(selector) selector:add_order_by("plus2_unfulfilled_count + plus1_unfulfilled_count DESC, id") end |
bsw/jbe@4 | 43 }, |
bsw/jbe@4 | 44 { |
bsw/jbe@4 | 45 name = "plus2", |
bsw/jbe@4 | 46 label = _"must", |
bsw/jbe@19 | 47 selector_modifier = function(selector) selector:add_order_by("plus2_unfulfilled_count + plus2_fulfilled_count DESC, id") end |
bsw/jbe@4 | 48 }, |
bsw/jbe@4 | 49 { |
bsw/jbe@4 | 50 name = "plus", |
bsw/jbe@4 | 51 label = _"must/should", |
bsw/jbe@19 | 52 selector_modifier = function(selector) selector:add_order_by("plus2_unfulfilled_count + plus1_unfulfilled_count + plus2_fulfilled_count + plus1_fulfilled_count DESC, id") end |
bsw/jbe@4 | 53 }, |
bsw/jbe@4 | 54 { |
bsw/jbe@4 | 55 name = "minus", |
bsw/jbe@4 | 56 label = _"must/should not", |
bsw/jbe@19 | 57 selector_modifier = function(selector) selector:add_order_by("minus2_unfulfilled_count + minus1_unfulfilled_count + minus2_fulfilled_count + minus1_fulfilled_count DESC, id") end |
bsw/jbe@4 | 58 }, |
bsw/jbe@4 | 59 { |
bsw/jbe@4 | 60 name = "minus2", |
bsw/jbe@4 | 61 label = _"must not", |
bsw/jbe@19 | 62 selector_modifier = function(selector) selector:add_order_by("minus2_unfulfilled_count + minus2_fulfilled_count DESC, id") end |
bsw/jbe@19 | 63 } |
bsw/jbe@4 | 64 }, |
bsw/jbe@0 | 65 content = function() |
bsw/jbe@4 | 66 ui.paginate{ |
bsw/jbe@4 | 67 selector = suggestions_selector, |
bsw/jbe@4 | 68 content = function() |
bsw/jbe@4 | 69 ui.list{ |
bsw/jbe@4 | 70 attr = { style = "table-layout: fixed;" }, |
bsw/jbe@4 | 71 records = suggestions_selector:exec(), |
bsw/jbe@4 | 72 columns = { |
bsw/jbe@4 | 73 { |
bsw/jbe@19 | 74 label = show_name and _"Suggestion" or nil, |
bsw/jbe@4 | 75 content = function(record) |
bsw/jbe@19 | 76 if show_name then |
bsw/jbe@19 | 77 ui.link{ |
bsw/jbe@19 | 78 text = record.name, |
bsw/jbe@19 | 79 module = "suggestion", |
bsw/jbe@19 | 80 view = "show", |
bsw/jbe@19 | 81 id = record.id |
bsw/jbe@19 | 82 } |
bsw/jbe@19 | 83 end |
bsw/jbe@4 | 84 end |
bsw/jbe@4 | 85 }, |
bsw/jbe@4 | 86 { |
bsw@95 | 87 label = _"Collective opinion of supporters", |
bsw/jbe@4 | 88 label_attr = { style = "width: 101px;" }, |
bsw/jbe@4 | 89 content = function(record) |
bsw/jbe@4 | 90 if record.minus2_unfulfilled_count then |
bsw@95 | 91 local max_value = record.initiative.supporter_count |
bsw/jbe@4 | 92 ui.bargraph{ |
bsw/jbe@4 | 93 max_value = max_value, |
bsw@95 | 94 width = 100, |
bsw/jbe@4 | 95 bars = { |
bsw@95 | 96 { color = "#0a0", value = record.plus2_unfulfilled_count + record.plus2_fulfilled_count }, |
bsw@95 | 97 { color = "#8f8", value = record.plus1_unfulfilled_count + record.plus1_fulfilled_count }, |
bsw@95 | 98 { color = "#eee", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.minus2_fulfilled_count - record.minus1_fulfilled_count - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count}, |
bsw/jbe@4 | 99 { color = "#f88", value = record.minus1_unfulfilled_count + record.minus1_fulfilled_count }, |
bsw/jbe@4 | 100 { color = "#a00", value = record.minus2_unfulfilled_count + record.minus2_fulfilled_count }, |
bsw/jbe@4 | 101 } |
bsw/jbe@4 | 102 } |
bsw/jbe@4 | 103 end |
bsw/jbe@4 | 104 end |
bsw/jbe@4 | 105 }, |
bsw/jbe@4 | 106 { |
bsw/jbe@4 | 107 label = _"My opinion", |
bsw@95 | 108 label_attr = { style = "width: 130px; font-style: italic;" }, |
bsw/jbe@4 | 109 content = function(record) |
bsw/jbe@4 | 110 local degree |
bsw@51 | 111 local opinion |
bsw@51 | 112 if app.session.member_id then |
bsw@51 | 113 opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw@51 | 114 end |
bsw/jbe@4 | 115 if opinion then |
bsw/jbe@4 | 116 degree = opinion.degree |
bsw@3 | 117 end |
bsw/jbe@5 | 118 ui.container{ |
bsw/jbe@5 | 119 attr = { class = "suggestion_my_opinion" }, |
bsw/jbe@5 | 120 content = function() |
bsw@51 | 121 if app.session.member_id then |
bsw@51 | 122 if initiative.issue.state == "voting" or initiative.issue.state == "closed" then |
bsw@95 | 123 if degree == -2 then |
bsw@95 | 124 ui.tag{ |
bsw@95 | 125 tag = "span", |
bsw@95 | 126 attr = { |
bsw@95 | 127 class = "action" .. (degree == -2 and " active_red2" or "") |
bsw@95 | 128 }, |
bsw@95 | 129 content = _"must not" |
bsw@95 | 130 } |
bsw@95 | 131 end |
bsw@95 | 132 if degree == -1 then |
bsw@95 | 133 ui.tag{ |
bsw@95 | 134 tag = "span", |
bsw@95 | 135 attr = { class = "action" .. (degree == -1 and " active_red1" or "") }, |
bsw@95 | 136 content = _"should not" |
bsw@95 | 137 } |
bsw@95 | 138 end |
bsw@95 | 139 if degree == nil then |
bsw@95 | 140 ui.tag{ |
bsw@95 | 141 tag = "span", |
bsw@95 | 142 attr = { class = "action" .. (degree == nil and " active" or "") }, |
bsw@95 | 143 content = _"neutral" |
bsw@95 | 144 } |
bsw@95 | 145 end |
bsw@95 | 146 if degree == 1 then |
bsw@95 | 147 ui.tag{ |
bsw@95 | 148 tag = "span", |
bsw@95 | 149 attr = { class = "action" .. (degree == 1 and " active_green1" or "") }, |
bsw@95 | 150 content = _"should" |
bsw@95 | 151 } |
bsw@95 | 152 end |
bsw@95 | 153 if degree == 2 then |
bsw@95 | 154 ui.tag{ |
bsw@95 | 155 tag = "span", |
bsw@95 | 156 attr = { class = "action" .. (degree == 2 and " active_green2" or "") }, |
bsw@95 | 157 content = _"must" |
bsw@95 | 158 } |
bsw@95 | 159 end |
bsw@51 | 160 else |
poelzi@142 | 161 -- we need to put initiative_id into the parameters to have a redirect target in case the suggestion is gone after the action |
poelzi@142 | 162 params = param.get_all_cgi() |
poelzi@142 | 163 params['initiative_id'] = initiative.id |
poelzi@142 | 164 |
bsw@51 | 165 ui.link{ |
bsw@95 | 166 attr = { class = "action" .. (degree == 2 and " active_green2" or "") }, |
bsw@95 | 167 text = _"must", |
bsw@51 | 168 module = "opinion", |
bsw@51 | 169 action = "update", |
poelzi@142 | 170 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = params } }, |
bsw@51 | 171 params = { |
bsw@51 | 172 suggestion_id = record.id, |
bsw@95 | 173 degree = 2 |
bsw@51 | 174 }, |
bsw@51 | 175 partial = partial |
bsw@51 | 176 } |
bsw@51 | 177 slot.put(" ") |
bsw@51 | 178 ui.link{ |
bsw@51 | 179 attr = { class = "action" .. (degree == 1 and " active_green1" or "") }, |
bsw@51 | 180 text = _"should", |
bsw@51 | 181 module = "opinion", |
bsw@51 | 182 action = "update", |
poelzi@142 | 183 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = params} }, |
bsw@51 | 184 params = { |
bsw@51 | 185 suggestion_id = record.id, |
bsw@51 | 186 degree = 1 |
bsw@51 | 187 }, |
bsw@51 | 188 partial = partial |
bsw@51 | 189 } |
bsw@51 | 190 slot.put(" ") |
bsw@51 | 191 ui.link{ |
bsw@95 | 192 attr = { class = "action" .. (degree == nil and " active" or "") }, |
bsw@95 | 193 text = _"neutral", |
bsw@51 | 194 module = "opinion", |
bsw@51 | 195 action = "update", |
poelzi@142 | 196 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = params } }, |
bsw@51 | 197 params = { |
bsw@51 | 198 suggestion_id = record.id, |
bsw@95 | 199 delete = true |
bsw@95 | 200 }, |
bsw@95 | 201 partial = partial |
bsw@95 | 202 } |
bsw@95 | 203 slot.put(" ") |
bsw@95 | 204 ui.link{ |
bsw@95 | 205 attr = { class = "action" .. (degree == -1 and " active_red1" or "") }, |
bsw@95 | 206 text = _"should not", |
bsw@95 | 207 module = "opinion", |
bsw@95 | 208 action = "update", |
poelzi@142 | 209 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = params } }, |
bsw@95 | 210 params = { |
bsw@95 | 211 suggestion_id = record.id, |
bsw@95 | 212 degree = -1 |
bsw@95 | 213 }, |
bsw@95 | 214 partial = partial |
bsw@95 | 215 } |
bsw@95 | 216 slot.put(" ") |
bsw@95 | 217 ui.link{ |
bsw@95 | 218 attr = { class = "action" .. (degree == -2 and " active_red2" or "") }, |
bsw@95 | 219 text = _"must not", |
bsw@95 | 220 module = "opinion", |
bsw@95 | 221 action = "update", |
poelzi@142 | 222 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = params } }, |
bsw@95 | 223 params = { |
bsw@95 | 224 suggestion_id = record.id, |
bsw@95 | 225 degree = -2 |
bsw@51 | 226 }, |
bsw@51 | 227 partial = partial |
bsw@51 | 228 } |
bsw@51 | 229 end |
bsw/jbe@19 | 230 else |
bsw@51 | 231 ui.field.text{ value = _"[Registered members only]" } |
bsw/jbe@19 | 232 end |
bsw/jbe@5 | 233 end |
bsw/jbe@0 | 234 } |
bsw/jbe@0 | 235 end |
bsw/jbe@4 | 236 }, |
bsw/jbe@4 | 237 { |
bsw/jbe@4 | 238 label = _"Suggestion currently not implemented", |
bsw/jbe@4 | 239 label_attr = { style = "width: 101px;" }, |
bsw/jbe@4 | 240 content = function(record) |
bsw/jbe@4 | 241 if record.minus2_unfulfilled_count then |
bsw@95 | 242 local max_value = record.initiative.supporter_count |
bsw/jbe@4 | 243 ui.bargraph{ |
bsw/jbe@4 | 244 max_value = max_value, |
bsw@95 | 245 width = 100, |
bsw/jbe@4 | 246 bars = { |
bsw/jbe@4 | 247 { color = "#0a0", value = record.plus2_unfulfilled_count }, |
bsw/jbe@4 | 248 { color = "#8f8", value = record.plus1_unfulfilled_count }, |
bsw@95 | 249 { color = "#eee", value = max_value - record.minus2_unfulfilled_count - record.minus1_unfulfilled_count - record.plus1_unfulfilled_count - record.plus2_unfulfilled_count }, |
bsw@95 | 250 { color = "#f88", value = record.minus1_unfulfilled_count }, |
bsw@95 | 251 { color = "#a00", value = record.minus2_unfulfilled_count }, |
bsw/jbe@4 | 252 } |
bsw/jbe@4 | 253 } |
bsw/jbe@4 | 254 end |
bsw/jbe@4 | 255 end |
bsw/jbe@4 | 256 }, |
bsw/jbe@4 | 257 { |
bsw/jbe@4 | 258 label = _"Suggestion currently implemented", |
bsw/jbe@4 | 259 label_attr = { style = "width: 101px;" }, |
bsw/jbe@4 | 260 content = function(record) |
bsw/jbe@4 | 261 if record.minus2_fulfilled_count then |
bsw@95 | 262 local max_value = record.initiative.supporter_count |
bsw/jbe@4 | 263 ui.bargraph{ |
bsw/jbe@4 | 264 max_value = max_value, |
bsw@95 | 265 width = 100, |
bsw/jbe@4 | 266 bars = { |
bsw@95 | 267 { color = "#0a0", value = record.plus2_fulfilled_count }, |
bsw@95 | 268 { color = "#8f8", value = record.plus1_fulfilled_count }, |
bsw@95 | 269 { color = "#eee", value = max_value - record.minus2_fulfilled_count - record.minus1_fulfilled_count - record.plus1_fulfilled_count - record.plus2_fulfilled_count}, |
bsw/jbe@4 | 270 { color = "#f88", value = record.minus1_fulfilled_count }, |
bsw/jbe@4 | 271 { color = "#a00", value = record.minus2_fulfilled_count }, |
bsw/jbe@4 | 272 } |
bsw/jbe@4 | 273 } |
bsw/jbe@4 | 274 end |
bsw@3 | 275 end |
bsw/jbe@4 | 276 }, |
bsw/jbe@4 | 277 { |
bsw@95 | 278 label = app.session.member_id and _"I consider suggestion as" or nil, |
bsw@95 | 279 label_attr = { style = "width: 100px; font-style: italic;" }, |
bsw/jbe@4 | 280 content = function(record) |
bsw/jbe@4 | 281 local degree |
bsw@51 | 282 local opinion |
bsw@51 | 283 if app.session.member_id then |
bsw@51 | 284 opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw@51 | 285 end |
bsw/jbe@4 | 286 if opinion then |
bsw/jbe@4 | 287 degree = opinion.degree |
bsw/jbe@4 | 288 end |
bsw/jbe@4 | 289 if opinion then |
bsw@95 | 290 |
bsw@95 | 291 ui.link{ |
bsw@95 | 292 attr = { class = opinion.fulfilled and "action active" or "action" }, |
bsw@95 | 293 text = _"implemented", |
bsw@95 | 294 module = "opinion", |
bsw@95 | 295 action = "update", |
bsw@95 | 296 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw@95 | 297 params = { |
bsw@95 | 298 suggestion_id = record.id, |
bsw@95 | 299 fulfilled = true |
bsw@95 | 300 }, |
bsw@95 | 301 partial = partial |
bsw@95 | 302 } |
bsw@95 | 303 slot.put("<br />") |
bsw@95 | 304 ui.link{ |
bsw@95 | 305 attr = { class = not opinion.fulfilled and "action active" or "action" }, |
bsw@95 | 306 text = _"not implemented", |
bsw@95 | 307 module = "opinion", |
bsw@95 | 308 action = "update", |
bsw@95 | 309 routing = { default = { mode = "redirect", module = request.get_module(), view = request.get_view(), id = param.get_id_cgi(), params = param.get_all_cgi() } }, |
bsw@95 | 310 params = { |
bsw@95 | 311 suggestion_id = record.id, |
bsw@95 | 312 fulfilled = false |
bsw@95 | 313 }, |
bsw@95 | 314 partial = partial |
bsw@95 | 315 } |
bsw@95 | 316 |
bsw/jbe@4 | 317 end |
bsw/jbe@4 | 318 end |
bsw/jbe@4 | 319 }, |
bsw/jbe@4 | 320 { |
bsw@95 | 321 label = app.session.member_id and _"So I'm" or nil, |
bsw/jbe@4 | 322 content = function(record) |
bsw@51 | 323 local opinion |
bsw@51 | 324 if app.session.member_id then |
bsw@51 | 325 opinion = Opinion:by_pk(app.session.member.id, record.id) |
bsw@51 | 326 end |
bsw/jbe@4 | 327 if opinion then |
bsw/jbe@4 | 328 if (opinion.fulfilled and opinion.degree > 0) or (not opinion.fulfilled and opinion.degree < 0) then |
bsw@95 | 329 local title = _"satisfied" |
bsw@95 | 330 ui.image{ attr = { alt = title, title = title }, static = "icons/emoticon_happy.png" } |
bsw@95 | 331 elseif opinion.degree == 1 or opinion.degree == -1 then |
bsw@95 | 332 local title = _"a bit unsatisfied" |
bsw@95 | 333 ui.image{ attr = { alt = title, title = title }, static = "icons/emoticon_unhappy.png" } |
bsw/jbe@4 | 334 else |
bsw@95 | 335 local title = _"more unsatisfied" |
bsw@95 | 336 ui.image{ attr = { alt = title, title = title }, static = "icons/emoticon_unhappy_red.png" } |
bsw/jbe@4 | 337 end |
bsw/jbe@4 | 338 end |
bsw/jbe@4 | 339 end |
bsw/jbe@4 | 340 }, |
bsw/jbe@4 | 341 } |
bsw/jbe@4 | 342 } |
bsw/jbe@4 | 343 end |
bsw/jbe@0 | 344 } |
bsw/jbe@0 | 345 end |
bsw/jbe@0 | 346 } |