liquid_feedback_frontend
annotate app/main/initiative/_list_element.lua @ 118:93f4e465b50d
add initiator support in delegation
if a delegation is issued from the initiative view, the initiators
from that one are added to the delegation target list. this makes it easier to delegate to the author without the need to add him to the contact list.
if a delegation is issued from the initiative view, the initiators
from that one are added to the delegation target list. this makes it easier to delegate to the author without the need to add him to the contact list.
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Mon Sep 20 20:32:04 2010 +0200 (2010-09-20) |
parents | df5392f114e2 |
children | 5d797c6706d5 |
rev | line source |
---|---|
bsw/jbe@19 | 1 local initiative = param.get("initiative", "table") |
bsw/jbe@19 | 2 local expanded = param.get("expanded", atom.boolean) |
bsw/jbe@19 | 3 local expandable = param.get("expandable", atom.boolean) |
bsw/jbe@19 | 4 |
bsw/jbe@19 | 5 local head_name = "initiative_head_" .. tostring(initiative.id) |
bsw/jbe@19 | 6 local link_name = "initiative_link_" .. tostring(initiative.id) |
bsw/jbe@19 | 7 local name = "initiative_content_" .. tostring(initiative.id) |
bsw/jbe@19 | 8 local icon_name = "initiative_icon_" .. tostring(initiative.id) |
bsw/jbe@19 | 9 |
bsw/jbe@19 | 10 ui.container{ |
bsw/jbe@19 | 11 attr = { class = "ui_tabs" .. (initiative.id == for_initiative_id and " active" or "") }, |
bsw/jbe@19 | 12 content = function() |
bsw/jbe@19 | 13 local web20 = config.user_tab_mode == "accordeon" |
bsw/jbe@19 | 14 or config.user_tab_mode == "accordeon_first_expanded" |
bsw/jbe@19 | 15 or config.user_tab_mode == "accordeon_all_expanded" |
bsw/jbe@19 | 16 local onclick |
bsw/jbe@19 | 17 if web20 then |
bsw/jbe@19 | 18 if expandable then |
bsw/jbe@19 | 19 onclick = |
bsw/jbe@19 | 20 'if (lf_initiative_expanded["' .. name .. '"]) {' .. |
bsw/jbe@19 | 21 'lf_initiative_expanded["' .. name .. '"]=false;' .. |
bsw/jbe@19 | 22 'document.getElementById("' .. name .. '_content").innerHTML=" ";' .. |
bsw/jbe@19 | 23 'document.getElementById("' .. name .. '").style.display="none";' .. |
bsw/jbe@19 | 24 '} else {' .. |
bsw/jbe@19 | 25 'lf_initiative_expanded["' .. name .. '"] = true;' .. |
bsw/jbe@19 | 26 'document.getElementById("' .. name .. '").style.display="block"; ' .. |
bsw/jbe@19 | 27 'var hourglass_el = document.getElementById("' .. icon_name .. '");' .. |
bsw/jbe@19 | 28 'var hourglass_src = hourglass_el.src;' .. |
bsw/jbe@19 | 29 'hourglass_el.src = "' .. encode.url{ static = "icons/16/connect.png" } .. '";' .. |
bsw/jbe@19 | 30 'partialMultiLoad(' .. |
bsw/jbe@19 | 31 '{ trace: "trace", system_error: "system_error", ' .. name .. '_content: "default" },' .. |
bsw/jbe@19 | 32 '{},' .. |
bsw/jbe@19 | 33 '"error",' .. |
bsw/jbe@19 | 34 '"' .. request.get_relative_baseurl() .. 'initiative/show_partial/' .. tostring(initiative.id) .. '.html?&_webmcp_json_slots[]=default&_webmcp_json_slots[]=support&_webmcp_json_slots[]=trace&_webmcp_json_slots[]=system_error",' .. |
bsw/jbe@19 | 35 '{},' .. |
bsw/jbe@19 | 36 '{},' .. |
bsw/jbe@19 | 37 'function() {' .. |
bsw/jbe@19 | 38 'hourglass_el.src = hourglass_src;' .. |
bsw/jbe@19 | 39 '},' .. |
bsw/jbe@19 | 40 'function() {' .. |
bsw/jbe@19 | 41 'hourglass_el.src = hourglass_src;' .. |
bsw/jbe@19 | 42 '}' .. |
bsw/jbe@19 | 43 '); ' .. |
bsw/jbe@19 | 44 '}' .. |
bsw/jbe@19 | 45 'return(false);' |
bsw/jbe@19 | 46 else |
bsw/jbe@19 | 47 onclick = "document.location.href = document.getElementById('" .. link_name .. "').href;" |
bsw/jbe@19 | 48 end |
bsw/jbe@19 | 49 end |
bsw/jbe@19 | 50 local module = "initiative" |
bsw/jbe@19 | 51 local view = "show" |
bsw/jbe@19 | 52 local id = initiative.id |
bsw/jbe@19 | 53 local params = {} |
bsw/jbe@19 | 54 ui.container{ |
bsw/jbe@19 | 55 attr = { |
bsw/jbe@19 | 56 name = name, |
bsw/jbe@19 | 57 class = "ui_tabs_accordeon_head", |
bsw/jbe@19 | 58 id = head_name, |
bsw/jbe@19 | 59 onclick = onclick, |
bsw/jbe@19 | 60 }, |
bsw/jbe@19 | 61 content = function() |
bsw/jbe@19 | 62 |
bsw@29 | 63 ui.list{ |
bsw@29 | 64 attr = { class = "nohover" }, |
bsw@29 | 65 records = { { a = 1} }, |
bsw@29 | 66 columns = { |
bsw@29 | 67 { |
bsw@29 | 68 field_attr = { style = "width: 4em; padding: 0;"}, |
bsw@29 | 69 content = function() |
bsw@29 | 70 if initiative.issue.accepted and initiative.issue.closed and initiative.issue.ranks_available or initiative.admitted == false then |
bsw@29 | 71 ui.field.rank{ image_attr = { id = icon_name }, attr = { class = "rank" }, value = initiative.rank } |
bsw@29 | 72 elseif web20 then |
bsw@29 | 73 ui.image{ |
bsw@29 | 74 attr = { |
bsw@29 | 75 width = 16, |
bsw@29 | 76 height = 16, |
bsw@29 | 77 id = icon_name, |
bsw@29 | 78 style = "float: left;" |
bsw@29 | 79 }, |
bsw@29 | 80 static = "icons/16/script.png" |
bsw@29 | 81 } |
bsw@29 | 82 else |
bsw@29 | 83 slot.put(" ") |
bsw@29 | 84 end |
bsw@29 | 85 end |
bsw@29 | 86 }, |
bsw/jbe@19 | 87 |
bsw@29 | 88 { |
bsw@29 | 89 field_attr = { style = "width: 110px; padding: 0;"}, |
bsw@29 | 90 content = function() |
bsw/jbe@48 | 91 if initiative.issue.fully_frozen and initiative.issue.closed then |
bsw@29 | 92 if initiative.issue.ranks_available then |
bsw@29 | 93 if initiative.negative_votes and initiative.positive_votes then |
bsw@29 | 94 local max_value = initiative.issue.voter_count |
bsw@29 | 95 ui.bargraph{ |
bsw@29 | 96 max_value = max_value, |
bsw@29 | 97 width = 100, |
bsw@29 | 98 bars = { |
bsw@29 | 99 { color = "#0a0", value = initiative.positive_votes }, |
bsw@29 | 100 { color = "#aaa", value = max_value - initiative.negative_votes - initiative.positive_votes }, |
bsw@29 | 101 { color = "#a00", value = initiative.negative_votes }, |
bsw@29 | 102 } |
bsw@29 | 103 } |
bsw@29 | 104 else |
bsw@29 | 105 slot.put(" ") |
bsw@29 | 106 end |
bsw@29 | 107 else |
bsw@29 | 108 slot.put(_"Counting of votes") |
bsw@29 | 109 end |
bsw@29 | 110 elseif initiative.issue.population then |
bsw@29 | 111 local max_value = initiative.issue.population |
bsw/jbe@19 | 112 ui.bargraph{ |
bsw/jbe@19 | 113 max_value = max_value, |
bsw/jbe@19 | 114 width = 100, |
bsw/jbe@19 | 115 bars = { |
bsw@29 | 116 { color = "#0a0", value = (initiative.satisfied_supporter_count or 0) }, |
bsw@29 | 117 { color = "#bbb", value = (initiative.supporter_count or 0) - (initiative.satisfied_supporter_count or 0) }, |
bsw@29 | 118 { color = "#eee", value = max_value - (initiative.supporter_count or 0) }, |
bsw/jbe@19 | 119 } |
bsw/jbe@19 | 120 } |
bsw/jbe@19 | 121 else |
bsw/jbe@19 | 122 slot.put(" ") |
bsw/jbe@19 | 123 end |
bsw/jbe@19 | 124 end |
bsw@29 | 125 }, |
bsw@29 | 126 |
bsw@29 | 127 { |
bsw@29 | 128 field_attr = { style = "padding: 0;"}, |
bsw/jbe@19 | 129 content = function() |
bsw@29 | 130 local link_class |
bsw@29 | 131 if initiative.revoked then |
bsw@29 | 132 link_class = "revoked" |
bsw/jbe@19 | 133 end |
bsw@29 | 134 ui.link{ |
bsw@29 | 135 attr = { id = link_name, class = link_class }, |
bsw@29 | 136 content = function() |
bsw@29 | 137 local name |
bsw@29 | 138 if initiative.name_highlighted then |
bsw@29 | 139 name = encode.highlight(initiative.name_highlighted) |
bsw@29 | 140 else |
bsw@29 | 141 name = encode.html(initiative.shortened_name) |
bsw@29 | 142 end |
bsw@29 | 143 slot.put(name) |
bsw@29 | 144 end, |
bsw@29 | 145 module = module, |
bsw@29 | 146 view = view, |
bsw@29 | 147 id = id, |
bsw@29 | 148 params = params, |
bsw@29 | 149 } |
bsw@29 | 150 |
bsw@29 | 151 if initiative.issue.state == "new" then |
bsw@29 | 152 ui.image{ |
bsw@29 | 153 static = "icons/16/new.png" |
bsw@29 | 154 } |
bsw@29 | 155 end |
bsw@29 | 156 if initiative.is_supporter then |
bsw@29 | 157 slot.put(" ") |
bsw@29 | 158 local label = _"You are supporting this initiative" |
bsw@29 | 159 ui.image{ |
bsw@29 | 160 attr = { alt = label, title = label }, |
bsw@29 | 161 static = "icons/16/thumb_up_green.png" |
bsw@29 | 162 } |
bsw@29 | 163 end |
bsw@29 | 164 if initiative.is_potential_supporter then |
bsw@29 | 165 slot.put(" ") |
bsw@29 | 166 local label = _"You are potential supporter of this initiative" |
bsw@29 | 167 ui.image{ |
bsw@29 | 168 attr = { alt = label, title = label }, |
bsw@29 | 169 static = "icons/16/thumb_up.png" |
bsw@29 | 170 } |
bsw@29 | 171 end |
bsw@29 | 172 if initiative.is_initiator then |
bsw@29 | 173 slot.put(" ") |
bsw@29 | 174 local label = _"You are iniator of this initiative" |
bsw@29 | 175 ui.image{ |
bsw@29 | 176 attr = { alt = label, title = label }, |
bsw@29 | 177 static = "icons/16/user_edit.png" |
bsw@29 | 178 } |
bsw@29 | 179 end |
bsw@29 | 180 |
bsw@29 | 181 end |
bsw/jbe@19 | 182 } |
bsw/jbe@19 | 183 } |
bsw@29 | 184 } |
bsw/jbe@19 | 185 end |
bsw/jbe@19 | 186 } |
bsw/jbe@19 | 187 end |
bsw/jbe@19 | 188 } |
bsw/jbe@19 | 189 |
bsw/jbe@19 | 190 if ui.is_partial_loading_enabled() then |
bsw/jbe@19 | 191 ui.container{ |
bsw/jbe@19 | 192 attr = { |
bsw/jbe@19 | 193 id = name, |
bsw/jbe@19 | 194 class = "ui_tabs_accordeon_content", |
bsw/jbe@19 | 195 style = not expanded and "display: none;" or nil |
bsw/jbe@19 | 196 }, |
bsw/jbe@19 | 197 content = function() |
bsw/jbe@19 | 198 ui.container{ |
bsw/jbe@19 | 199 attr = { id = name .. "_content", style = "clear: left;" }, |
bsw/jbe@19 | 200 content = function() |
bsw/jbe@19 | 201 execute.view{ |
bsw/jbe@19 | 202 module = "initiative", |
bsw/jbe@19 | 203 view = "show_partial", |
bsw/jbe@19 | 204 params = { |
bsw/jbe@19 | 205 initiative = initiative, |
bsw/jbe@19 | 206 expanded = expanded |
bsw/jbe@19 | 207 } |
bsw/jbe@19 | 208 } |
bsw/jbe@19 | 209 end |
bsw/jbe@19 | 210 } |
bsw/jbe@19 | 211 end |
bsw/jbe@19 | 212 } |
bsw/jbe@19 | 213 end |