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 +}

Impressum / About Us