liquid_feedback_frontend
annotate app/main/initiative/_list_element.lua @ 136:166fd10c7e81
fixes bug #234
test if the constructed selector first before adding a paginator
test if the constructed selector first before adding a paginator
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Tue Oct 05 21:51:59 2010 +0200 (2010-10-05) |
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 |