rev |
line source |
bsw/jbe@0
|
1 local issue = param.get("issue", "table")
|
bsw@558
|
2 local initiatives_selector = param.get("initiatives_selector", "table")
|
bsw/jbe@0
|
3
|
bsw@558
|
4 local initiatives
|
bsw@558
|
5 if issue then
|
bsw@558
|
6 initiatives = issue.initiatives
|
bsw@558
|
7 else
|
bsw@558
|
8 initiatives = initiatives_selector:exec()
|
bsw@558
|
9 initiatives:load_everything_for_member_id(app.session.member_id)
|
bsw@558
|
10 end
|
bsw@51
|
11
|
bsw@274
|
12 local highlight_initiative = param.get("highlight_initiative", "table")
|
bsw@274
|
13
|
bsw@285
|
14 local for_member = param.get("for_member", "table") or app.session.member
|
bsw@285
|
15
|
bsw/jbe@19
|
16 local limit = param.get("limit", atom.number)
|
bsw@725
|
17 local hide_more_initiatives = param.get("hide_more_initiatives", atom.boolean)
|
bsw/jbe@19
|
18
|
bsw@345
|
19 local more_initiatives_count
|
bsw@345
|
20 if limit then
|
bsw@551
|
21 if #initiatives > limit then
|
bsw@551
|
22 more_initiatives_count = #initiatives - limit
|
bsw/jbe@19
|
23 end
|
bsw@551
|
24 initiatives = {}
|
bsw@551
|
25 for i, initiative in ipairs(issue.initiatives) do
|
bsw@551
|
26 if i <= limit then
|
bsw@551
|
27 initiatives[#initiatives+1] = initiative
|
bsw@551
|
28 end
|
bsw@551
|
29 end
|
bsw/jbe@19
|
30 end
|
bsw/jbe@19
|
31
|
bsw@345
|
32 local name = "initiative_list"
|
bsw@345
|
33 if issue then
|
bsw@345
|
34 name = "issue_" .. tostring(issue.id) .. "_initiative_list"
|
bsw@345
|
35 end
|
bsw@345
|
36
|
bsw@345
|
37 ui.add_partial_param_names{ name }
|
bsw/jbe@19
|
38
|
bsw@551
|
39 if highlight_initiative then
|
bsw@551
|
40 local highlight_initiative_found
|
bsw@551
|
41 for i, initiative in ipairs(initiatives) do
|
bsw@551
|
42 if initiative.id == highlight_initiative.id then
|
bsw@551
|
43 highhighlight_initiative_found = true
|
bsw@469
|
44 end
|
bsw/jbe@19
|
45 end
|
bsw@551
|
46 if not highhighlight_initiative_found then
|
bsw@551
|
47 initiatives[#initiatives+1] = highlight_initiative
|
bsw@551
|
48 if more_initiatives_count then
|
bsw@551
|
49 more_initiatives_count = more_initiatives_count - 1
|
bsw@551
|
50 end
|
bsw@551
|
51 end
|
bsw@551
|
52 end
|
bsw@551
|
53 for i, initiative in ipairs(initiatives) do
|
bsw@551
|
54 execute.view{
|
bsw@551
|
55 module = "initiative",
|
bsw@551
|
56 view = "_list_element",
|
bsw@551
|
57 params = {
|
bsw@551
|
58 initiative = initiative,
|
bsw@551
|
59 selected = highlight_initiative and highlight_initiative.id == initiative.id or nil,
|
bsw@551
|
60 }
|
bsw@551
|
61 }
|
bsw@551
|
62 end
|
bsw/jbe@19
|
63
|
bsw@725
|
64 if not hide_more_initiatives and more_initiatives_count and more_initiatives_count > 0 then
|
bsw@345
|
65 local text
|
bsw@345
|
66 if more_initiatives_count == 1 then
|
bsw@345
|
67 text = _("and one more initiative")
|
bsw@345
|
68 else
|
bsw@345
|
69 text = _("and #{count} more initiatives", { count = more_initiatives_count })
|
bsw@345
|
70 end
|
bsw@345
|
71 ui.link{
|
bsw@345
|
72 attr = { class = "more_initiatives_link" },
|
bsw@345
|
73 content = text,
|
bsw@345
|
74 module = "issue",
|
bsw@345
|
75 view = "show",
|
bsw@345
|
76 id = issue.id,
|
bsw@345
|
77 }
|
bsw/jbe@19
|
78 end
|