liquid_feedback_frontend

view app/main/lf2/_sidebar_issue.lua @ 218:7ea52c710503

Some little changes for next generation frontend
author bsw
date Sun Mar 13 16:53:33 2011 +0100 (2011-03-13)
parents 73dbc9e2bfd4
children
line source
1 local issue = param.get("issue", "table")
2 local initiative_id = param.get("initiative_id", atom.integer)
4 local alternative_initiatives = param.get("alternative_initiatives", "table")
6 local initiatives = issue.initiatives
8 local interested_members_selector = Member:new_selector()
9 :join("direct_interest_snapshot", "dis", { "dis.issue_id = ? AND dis.member_id = member.id and dis.event = (select latest_snapshot_event from issue where id = ?)", issue.id, issue.id })
10 :add_field("dis.weight", "weight")
11 :add_order_by("dis.weight DESC")
12 local interested_members = interested_members_selector:exec()
14 local interest = issue.interest
16 local trustees = Member:new_selector()
17 :add_field("delegation_chain.*")
18 :join("delegation_chain(" .. tostring(app.session.member.id) .. ", NULL, NULL, " .. tostring(issue.id or "NULL") .. ")", "delegation_chain", "member.id = delegation_chain.member_id")
19 :add_order_by("index")
20 :exec()
22 local delegating_interest = issue.delegating_interest
24 ui.box{ class = "issue", content = function()
26 ui.box_row{ class = "issue_id head", content = function() ui.box_col{ class = "head", content = function()
27 ui.link{
28 module = "lf2", view = "issue", id = issue.id,
29 content = _("Issue ##{id}", { id = issue.id })
30 }
31 end } end }
33 if not issue.closed then
34 ui.box_row{ class = "interest", content = function() ui.box_col{ content = function()
35 if interest then
36 local text
37 if issue.close then
38 text = _"You were interested"
39 else
40 text = _"You are interested"
41 end
42 ui.image{ static = "lf2/icon_star.png" }
43 slot.put(" ")
44 ui.tag{ content = text }
45 slot.put(" · ")
46 ui.link{
47 module = "interest", action = "update", params = { issue_id = issue.id, delete = true },
48 routing = { default = {
49 mode = "redirect", module = "lf2", view = initiative_id and "initiative" or "issue", id = initiative_id or issue.id,
50 } },
51 content = _"remove"
52 }
53 elseif delegating_interest then
54 local text
55 if issue.closed then
56 text = _"Someone in your delegation chain was interested"
57 else
58 text = _"Someone in your delegation chain is interested"
59 end
60 ui.image{ attr = { title = text, alt = text}, static = "lf2/icon_delegated_star.png" }
61 else
62 ui.link{
63 module = "interest", action = "update", params = { issue_id = issue.id },
64 routing = { default = {
65 mode = "redirect", module = "lf2", view = initiative_id and "initiative" or "issue", id = initiative_id or issue.id,
66 } },
67 content = _"Add my interest"
68 }
69 end
70 end } end }
71 end
73 if #trustees > 1 then
74 ui.box_row{ class = "delegation", content = function() ui.box_col{ content = function()
75 execute.view{ module = "lf2", view = "_avatars", params = { members = trustees, arrows = true, size = "small", issue_id = issue.id } }
76 end } end }
77 end
79 if not issue.closed then
80 ui.box_row{ class = "interest", content = function() ui.box_col{ content = function()
81 if #trustees > 1 and trustees[1].scope_out == "issue" then
82 ui.link{
83 module = "lf2", view = "delegation", params = { issue_id = issue.id, initiative_id = initiative_id },
84 content = _"Change or remove delegation"
85 }
86 else
87 ui.link{
88 module = "lf2", view = "delegation", params = { issue_id = issue.id, initiative_id = initiative_id },
89 content = _"Set issue delegation"
90 }
91 end
93 end } end }
94 end
96 ui.box_row{ class = "unit_name", content = function() ui.box_col{ content = function()
97 ui.link{
98 module = "lf2", view = "index", id = 1,
99 content = "DE / Berlin / Friedrichshain-Kreuzberg"
100 }
101 end } end }
103 ui.box_row{ class = "area_name", content = function() ui.box_col{ content = function()
104 ui.link{
105 module = "lf2", view = "area", id = issue.area_id,
106 content = issue.area.name
107 }
108 end } end }
110 ui.box_row{ class = "policy_name", content = function() ui.box_col{ content = function()
111 ui.link{
112 module = "lf2", view = "policy", id = issue.policy_id,
113 content = issue.policy.name
114 }
115 end } end }
117 ui.box_row{ class = "time_left", content = function()
118 ui.box_col{ class = "left", content = function()
119 ui.tag{ content = issue.state_name }
120 slot.put(" · ")
121 ui.tag{ content = issue.closed and _("since #{date}", { date = format.date(issue.closed.date) }) or _("#{time_left} left", { time_left = issue.state_time_left }) }
122 end }
123 end }
125 ui.box_row{ class = "subhead", content = function() ui.box_col{ class = "head", content = _"Initiatives" } end }
126 ui.box_row{ class = "initiatives last", content = function()
127 ui.box_col{ id = "resizable", class = "scrolled", content = function()
128 execute.view{ module = "lf2", view = "_issue_initiatives", params = { initiatives = alternative_initiatives, current_initiative_id = initiative_id } }
129 end }
130 end }
132 ui.script{ script = "$(function() { $( '#resizable' ).resizable(); });" }
134 end }

Impressum / About Us