rev |
line source |
bsw/jbe@4
|
1 local issue = param.get("issue", "table")
|
bsw/jbe@4
|
2
|
bsw/jbe@19
|
3 local direct_voter = DirectVoter:by_pk(issue.id, app.session.member.id)
|
bsw/jbe@19
|
4
|
bsw/jbe@4
|
5 slot.put_into("html_head", '<link rel="alternate" type="application/rss+xml" title="RSS" href="../show/' .. tostring(issue.id) .. '.rss" />')
|
bsw/jbe@4
|
6
|
bsw/jbe@4
|
7 slot.select("path", function()
|
bsw/jbe@19
|
8 end)
|
bsw/jbe@19
|
9
|
bsw/jbe@19
|
10 slot.select("title", function()
|
bsw/jbe@4
|
11 ui.link{
|
bsw/jbe@19
|
12 content = issue.area.name,
|
bsw/jbe@4
|
13 module = "area",
|
bsw/jbe@4
|
14 view = "show",
|
bsw/jbe@4
|
15 id = issue.area.id
|
bsw/jbe@4
|
16 }
|
bsw/jbe@19
|
17 slot.put(" · ")
|
bsw/jbe@5
|
18 ui.link{
|
bsw/jbe@19
|
19 content = _("Issue ##{id}", { id = issue.id }),
|
bsw/jbe@5
|
20 module = "issue",
|
bsw/jbe@5
|
21 view = "show",
|
bsw/jbe@5
|
22 id = issue.id
|
bsw/jbe@5
|
23 }
|
bsw/jbe@19
|
24 slot.put(" · ")
|
bsw/jbe@19
|
25 ui.tag{
|
bsw/jbe@19
|
26 tag = "span",
|
bsw/jbe@19
|
27 content = issue.state_name,
|
bsw/jbe@19
|
28 }
|
bsw/jbe@5
|
29 end)
|
bsw/jbe@5
|
30
|
bsw/jbe@4
|
31
|
bsw/jbe@4
|
32 slot.select("actions", function()
|
bsw/jbe@5
|
33
|
bsw/jbe@5
|
34 if issue.state == 'voting' then
|
bsw/jbe@19
|
35 local text
|
bsw/jbe@19
|
36 if not direct_voter then
|
bsw/jbe@19
|
37 text = _"Vote now"
|
bsw/jbe@19
|
38 else
|
bsw/jbe@19
|
39 text = _"Change vote"
|
bsw/jbe@19
|
40 end
|
bsw/jbe@5
|
41 ui.link{
|
bsw/jbe@5
|
42 content = function()
|
bsw/jbe@5
|
43 ui.image{ static = "icons/16/email_open.png" }
|
bsw/jbe@19
|
44 slot.put(text)
|
bsw/jbe@5
|
45 end,
|
bsw/jbe@5
|
46 module = "vote",
|
bsw/jbe@5
|
47 view = "list",
|
bsw/jbe@5
|
48 params = { issue_id = issue.id }
|
bsw/jbe@5
|
49 }
|
bsw/jbe@5
|
50 end
|
bsw/jbe@5
|
51
|
bsw/jbe@4
|
52 execute.view{
|
bsw/jbe@4
|
53 module = "interest",
|
bsw/jbe@4
|
54 view = "_show_box",
|
bsw/jbe@4
|
55 params = { issue = issue }
|
bsw/jbe@4
|
56 }
|
bsw/jbe@4
|
57
|
bsw/jbe@5
|
58 if not issue.closed then
|
bsw/jbe@5
|
59 execute.view{
|
bsw/jbe@5
|
60 module = "delegation",
|
bsw/jbe@5
|
61 view = "_show_box",
|
bsw/jbe@5
|
62 params = { issue_id = issue.id }
|
bsw/jbe@5
|
63 }
|
bsw/jbe@5
|
64 end
|
bsw@7
|
65
|
bsw@16
|
66 execute.view{
|
bsw@16
|
67 module = "issue",
|
bsw@16
|
68 view = "_show_vote_later_box",
|
bsw@16
|
69 params = { issue = issue }
|
bsw@16
|
70 }
|
bsw/jbe@4
|
71
|
bsw@10
|
72 if config.issue_discussion_url_func then
|
bsw@10
|
73 local url = config.issue_discussion_url_func(issue)
|
bsw@10
|
74 ui.link{
|
bsw@10
|
75 attr = { target = "_blank" },
|
bsw@10
|
76 external = url,
|
bsw@10
|
77 content = function()
|
bsw@10
|
78 ui.image{ static = "icons/16/comments.png" }
|
bsw@10
|
79 slot.put(_"Discussion on issue")
|
bsw@10
|
80 end,
|
bsw@10
|
81 }
|
bsw@10
|
82 end
|
bsw/jbe@4
|
83 end)
|
bsw/jbe@4
|
84
|
bsw/jbe@4
|
85
|
bsw/jbe@4
|
86 execute.view{
|
bsw/jbe@4
|
87 module = "issue",
|
bsw/jbe@4
|
88 view = "_show_box",
|
bsw/jbe@4
|
89 params = { issue = issue }
|
bsw/jbe@4
|
90 }
|
bsw/jbe@4
|
91
|
bsw/jbe@4
|
92 -- ui.twitter("http://example.com/t" .. tostring(issue.id))
|
bsw/jbe@6
|
93
|
bsw/jbe@6
|
94
|
bsw/jbe@19
|
95 if issue.state == 'voting' and not direct_voter then
|
bsw/jbe@6
|
96 ui.container{
|
bsw/jbe@6
|
97 attr = { class = "voting_active_info" },
|
bsw/jbe@6
|
98 content = function()
|
bsw/jbe@6
|
99 slot.put(_"Voting for this issue is currently running!")
|
bsw/jbe@6
|
100 slot.put(" ")
|
bsw/jbe@6
|
101 ui.link{
|
bsw/jbe@6
|
102 content = function()
|
bsw/jbe@6
|
103 slot.put(_"Vote now")
|
bsw/jbe@6
|
104 end,
|
bsw/jbe@6
|
105 module = "vote",
|
bsw/jbe@6
|
106 view = "list",
|
bsw/jbe@6
|
107 params = { issue_id = issue.id }
|
bsw/jbe@6
|
108 }
|
bsw/jbe@6
|
109 end
|
bsw/jbe@6
|
110 }
|
bsw/jbe@6
|
111 slot.put("<br />")
|
bsw/jbe@6
|
112 end
|
bsw/jbe@6
|
113
|