rev |
line source |
bsw/jbe@0
|
1 local issues_selector = param.get("issues_selector", "table")
|
bsw/jbe@0
|
2
|
bsw@51
|
3 if app.session.member_id then
|
bsw@51
|
4 issues_selector
|
bsw@51
|
5 :left_join("interest", "_interest", { "_interest.issue_id = issue.id AND _interest.member_id = ?", app.session.member.id} )
|
bsw@51
|
6 :add_field("(_interest.member_id NOTNULL)", "is_interested")
|
bsw@51
|
7 end
|
bsw@11
|
8
|
bsw/jbe@19
|
9 ui.add_partial_param_names{
|
bsw/jbe@19
|
10 "filter",
|
bsw/jbe@19
|
11 "filter_open",
|
bsw/jbe@19
|
12 "filter_voting",
|
bsw/jbe@19
|
13 "filter_interest",
|
bsw/jbe@19
|
14 "issue_list"
|
bsw/jbe@19
|
15 }
|
bsw/jbe@0
|
16
|
poelzi@127
|
17 local filters = execute.load_chunk{module="issue", chunk="_filters.lua"}
|
bsw/jbe@19
|
18
|
bsw/jbe@19
|
19 filters.content = function()
|
bsw/jbe@19
|
20 local ui_paginate = ui.paginate
|
bsw/jbe@19
|
21 if param.get("per_page") == "all" then
|
bsw/jbe@19
|
22 ui_paginate = function(args) args.content() end
|
bsw/jbe@19
|
23 end
|
bsw/jbe@19
|
24 ui_paginate{
|
bsw/jbe@19
|
25 per_page = tonumber(param.get("per_page")),
|
bsw/jbe@19
|
26 selector = issues_selector,
|
bsw/jbe@19
|
27 content = function()
|
bsw/jbe@19
|
28 local highlight_string = param.get("highlight_string", "string")
|
bsw/jbe@19
|
29 local issues = issues or issues_selector:exec()
|
bsw/jbe@19
|
30 -- issues:load(initiatives)
|
bsw/jbe@19
|
31 ui.list{
|
bsw/jbe@19
|
32 attr = { class = "issues" },
|
bsw/jbe@19
|
33 records = issues,
|
bsw/jbe@19
|
34 columns = {
|
bsw/jbe@19
|
35 {
|
bsw/jbe@19
|
36 label = _"Issue",
|
bsw/jbe@19
|
37 content = function(record)
|
bsw/jbe@19
|
38 if not param.get("for_area_list", atom.boolean) then
|
bsw/jbe@19
|
39 ui.field.text{
|
bsw/jbe@19
|
40 value = record.area.name
|
bsw/jbe@19
|
41 }
|
bsw/jbe@19
|
42 slot.put("<br />")
|
bsw@11
|
43 end
|
bsw/jbe@19
|
44 if record.is_interested then
|
bsw/jbe@19
|
45 local label = _"You are interested in this issue",
|
bsw/jbe@19
|
46 ui.image{
|
bsw/jbe@19
|
47 attr = { alt = label, title = label },
|
bsw/jbe@19
|
48 static = "icons/16/eye.png"
|
bsw/jbe@5
|
49 }
|
bsw/jbe@19
|
50 slot.put(" ")
|
bsw/jbe@19
|
51 end
|
bsw/jbe@19
|
52 ui.link{
|
bsw/jbe@19
|
53 text = _("Issue ##{id}", { id = tostring(record.id) }),
|
bsw/jbe@19
|
54 module = "issue",
|
bsw/jbe@19
|
55 view = "show",
|
bsw/jbe@19
|
56 id = record.id
|
bsw/jbe@19
|
57 }
|
bsw/jbe@19
|
58 if record.state == "new" then
|
bsw/jbe@19
|
59 ui.image{
|
bsw/jbe@19
|
60 static = "icons/16/new.png"
|
bsw/jbe@5
|
61 }
|
bsw/jbe@5
|
62 end
|
bsw/jbe@19
|
63 slot.put("<br />")
|
bsw/jbe@19
|
64 slot.put("<br />")
|
bsw/jbe@19
|
65 if record.old_state then
|
bsw/jbe@19
|
66 ui.field.text{ value = format.time(record.sort) }
|
bsw/jbe@19
|
67 ui.field.text{ value = Issue:get_state_name_for_state(record.old_state) .. " > " .. Issue:get_state_name_for_state(record.new_state) }
|
bsw/jbe@19
|
68 else
|
bsw/jbe@19
|
69 end
|
bsw/jbe@19
|
70 end
|
bsw/jbe@19
|
71 },
|
bsw/jbe@19
|
72 {
|
bsw/jbe@19
|
73 label = _"State",
|
bsw/jbe@19
|
74 content = function(record)
|
bsw/jbe@19
|
75 if record.state == "voting" then
|
bsw/jbe@19
|
76 ui.link{
|
bsw/jbe@19
|
77 content = _"Voting",
|
bsw/jbe@19
|
78 module = "vote",
|
bsw/jbe@19
|
79 view = "list",
|
bsw/jbe@19
|
80 params = { issue_id = record.id }
|
bsw/jbe@19
|
81 }
|
bsw/jbe@19
|
82 else
|
bsw/jbe@19
|
83 ui.field.issue_state{ value = record.state }
|
bsw/jbe@19
|
84 end
|
bsw/jbe@19
|
85 end
|
bsw/jbe@19
|
86 },
|
bsw/jbe@19
|
87 {
|
bsw/jbe@19
|
88 label = _"Initiatives",
|
bsw/jbe@19
|
89 content = function(record)
|
bsw/jbe@19
|
90 local initiatives_selector = record:get_reference_selector("initiatives")
|
bsw/jbe@19
|
91 local highlight_string = param.get("highlight_string")
|
bsw/jbe@19
|
92 if highlight_string then
|
bsw/jbe@19
|
93 initiatives_selector:add_field( {'"highlight"("initiative"."name", ?)', highlight_string }, "name_highlighted")
|
bsw/jbe@19
|
94 end
|
bsw/jbe@19
|
95 execute.view{
|
bsw/jbe@19
|
96 module = "initiative",
|
bsw/jbe@19
|
97 view = "_list",
|
bsw/jbe@19
|
98 params = {
|
bsw/jbe@19
|
99 issue = record,
|
bsw/jbe@19
|
100 initiatives_selector = initiatives_selector,
|
bsw/jbe@19
|
101 highlight_string = highlight_string,
|
bsw@51
|
102 per_page = app.session.member_id and tonumber(app.session.member:get_setting_value("initiatives_preview_limit") or 3) or 3,
|
bsw/jbe@19
|
103 no_sort = true,
|
bsw@51
|
104 limit = app.session.member_id and tonumber(app.session.member:get_setting_value("initiatives_preview_limit") or 3) or 3
|
bsw/jbe@19
|
105 }
|
bsw/jbe@19
|
106 }
|
bsw/jbe@19
|
107 end
|
bsw/jbe@19
|
108 },
|
bsw/jbe@0
|
109 }
|
bsw/jbe@19
|
110 }
|
bsw/jbe@19
|
111 end
|
bsw/jbe@19
|
112 }
|
bsw/jbe@19
|
113 end
|
bsw/jbe@19
|
114
|
bsw/jbe@19
|
115 filters.selector = issues_selector
|
bsw/jbe@19
|
116 filters.label = _"Change filters and order"
|
bsw/jbe@19
|
117
|
bsw/jbe@19
|
118 if param.get("no_filter", atom.boolean) then
|
bsw/jbe@19
|
119 filters.content()
|
bsw/jbe@19
|
120 else
|
bsw/jbe@19
|
121 ui.filters(filters)
|
bsw/jbe@19
|
122 end
|
bsw/jbe@19
|
123
|
bsw/jbe@19
|
124 if param.get("legend", atom.boolean) ~= false then
|
bsw/jbe@19
|
125 local filter = param.get_all_cgi().filter
|
bsw/jbe@19
|
126 if not filter or filter == "any" or filter ~= "finished" then
|
bsw/jbe@19
|
127 ui.bargraph_legend{
|
bsw/jbe@19
|
128 width = 25,
|
bsw/jbe@19
|
129 bars = {
|
bsw/jbe@19
|
130 { color = "#0a0", label = _"Supporter" },
|
bsw/jbe@19
|
131 { color = "#777", label = _"Potential supporter" },
|
bsw/jbe@19
|
132 { color = "#ddd", label = _"No support at all" },
|
bsw/jbe@19
|
133 }
|
bsw/jbe@0
|
134 }
|
bsw/jbe@0
|
135 end
|
bsw/jbe@19
|
136 if not filter or filter == "any" or filter == "finished" then
|
bsw/jbe@19
|
137 ui.bargraph_legend{
|
bsw/jbe@19
|
138 width = 25,
|
bsw/jbe@19
|
139 bars = {
|
bsw/jbe@19
|
140 { color = "#0a0", label = _"Yes" },
|
bsw/jbe@19
|
141 { color = "#aaa", label = _"Abstention" },
|
bsw/jbe@19
|
142 { color = "#a00", label = _"No" },
|
bsw/jbe@19
|
143 }
|
bsw/jbe@19
|
144 }
|
bsw/jbe@19
|
145 end
|
bsw/jbe@19
|
146 end
|
bsw/jbe@19
|
147
|