Tue, 30 Jul 2024 18:53:39 +0200
add filter for assignee - fixes #403
195 | 1 | /* |
2 | * Copyright 2021 Mike Becker. All rights reserved. | |
3 | * | |
4 | * Redistribution and use in source and binary forms, with or without | |
5 | * modification, are permitted provided that the following conditions are met: | |
6 | * | |
7 | * 1. Redistributions of source code must retain the above copyright | |
8 | * notice, this list of conditions and the following disclaimer. | |
9 | * | |
10 | * 2. Redistributions in binary form must reproduce the above copyright | |
11 | * notice, this list of conditions and the following disclaimer in the | |
12 | * documentation and/or other materials provided with the distribution. | |
13 | * | |
14 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
15 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
17 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | |
18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
20 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | |
21 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |
22 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
23 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
24 | */ | |
25 | ||
26 | package de.uapcore.lightpit.servlet | |
27 | ||
236 | 28 | import com.github.difflib.text.DiffRow |
29 | import com.github.difflib.text.DiffRowGenerator | |
195 | 30 | import de.uapcore.lightpit.AbstractServlet |
31 | import de.uapcore.lightpit.HttpRequest | |
32 | import de.uapcore.lightpit.dao.DataAccessObject | |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
33 | import de.uapcore.lightpit.entities.IssueCommentHistoryEntry |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
34 | import de.uapcore.lightpit.entities.IssueHistoryEntry |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
35 | import de.uapcore.lightpit.types.IssueHistoryType |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
36 | import de.uapcore.lightpit.viewmodel.CommentDiff |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
37 | import de.uapcore.lightpit.viewmodel.IssueDiff |
195 | 38 | import de.uapcore.lightpit.viewmodel.IssueFeed |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
39 | import de.uapcore.lightpit.viewmodel.IssueFeedEntry |
254
55ca6cafc3dd
#233 migrate to Jakarta EE and update dependencies
Mike Becker <universe@uap-core.de>
parents:
242
diff
changeset
|
40 | import jakarta.servlet.annotation.WebServlet |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
41 | import java.text.SimpleDateFormat |
195 | 42 | |
236 | 43 | |
195 | 44 | @WebServlet(urlPatterns = ["/feed/*"]) |
45 | class FeedServlet : AbstractServlet() { | |
46 | ||
47 | init { | |
198
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
48 | get("/%project/issues.rss", this::issues) |
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
49 | } |
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
50 | |
260 | 51 | private val diffGenerator: DiffRowGenerator by lazyOf(DiffRowGenerator.create() |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
52 | .showInlineDiffs(true) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
53 | .mergeOriginalRevised(true) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
54 | .inlineDiffByWord(true) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
55 | .oldTag { start -> if (start) "<strike style=\"color:red\">" else "</strike>" } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
56 | .newTag { start -> if (start) "<i style=\"color: green\">" else "</i>" } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
57 | .build() |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
58 | ) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
59 | |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
60 | private fun fullContent(data: IssueCommentHistoryEntry) = |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
61 | CommentDiff( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
62 | data.issueid, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
63 | data.commentid, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
64 | data.subject, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
65 | data.comment.replace("\r", "") |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
66 | ) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
67 | |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
68 | private fun diffContent(cur: IssueCommentHistoryEntry, next: IssueCommentHistoryEntry) = |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
69 | CommentDiff( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
70 | cur.issueid, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
71 | cur.commentid, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
72 | cur.subject, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
73 | diffGenerator.generateDiffRows( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
74 | next.comment.replace("\r", "").split('\n'), |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
75 | cur.comment.replace("\r", "").split('\n') |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
76 | ).joinToString("\n", transform = DiffRow::getOldLine) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
77 | ) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
78 | |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
79 | private fun fullContent(issue: IssueHistoryEntry) = IssueDiff( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
80 | issue.issueid, |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
81 | issue.subject, |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
82 | issue.component, |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
83 | issue.status.name, |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
84 | issue.category.name, |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
85 | issue.subject, |
236 | 86 | issue.description.replace("\r", ""), |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
87 | issue.assignee, |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
88 | issue.eta?.let { SimpleDateFormat("dd.MM.yyyy").format(it) } ?: "", |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
89 | issue.affected, |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
90 | issue.resolved |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
91 | ) |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
92 | |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
93 | private fun diffContent(cur: IssueHistoryEntry, next: IssueHistoryEntry): IssueDiff { |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
94 | val prev = fullContent(next) |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
95 | val diff = fullContent(cur) |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
96 | val result = diffGenerator.generateDiffRows( |
238
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
97 | listOf( |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
98 | prev.subject, prev.component, prev.status, |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
99 | prev.category, prev.assignee, prev.eta, prev.affected, prev.resolved |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
100 | ), |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
101 | listOf( |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
102 | diff.subject, diff.component, diff.status, |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
103 | diff.category, diff.assignee, diff.eta, diff.affected, diff.resolved |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
104 | ) |
236 | 105 | ) |
106 | ||
107 | diff.subject = result[0].oldLine | |
108 | diff.component = result[1].oldLine | |
109 | diff.status = result[2].oldLine | |
110 | diff.category = result[3].oldLine | |
111 | diff.assignee = result[4].oldLine | |
112 | diff.eta = result[5].oldLine | |
113 | diff.affected = result[6].oldLine | |
114 | diff.resolved = result[7].oldLine | |
115 | ||
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
116 | diff.description = diffGenerator.generateDiffRows( |
236 | 117 | prev.description.split('\n'), |
118 | diff.description.split('\n') | |
240
7303812a4424
use pre-warp instead of <br> for RSS feed
Mike Becker <universe@uap-core.de>
parents:
239
diff
changeset
|
119 | ).joinToString("\n", transform = DiffRow::getOldLine) |
236 | 120 | |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
121 | return diff |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
122 | } |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
123 | |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
124 | /** |
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
125 | * Generates the feed entries. |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
126 | * Assumes that [issueEntries] and [commentEntries] are already sorted by timestamp (descending). |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
127 | */ |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
128 | private fun generateFeedEntries( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
129 | issueEntries: List<IssueHistoryEntry>, |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
130 | commentEntries: List<IssueCommentHistoryEntry> |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
131 | ): List<IssueFeedEntry> = |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
132 | (generateIssueFeedEntries(issueEntries) + generateCommentFeedEntries(commentEntries)).sortedByDescending { it.time } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
133 | |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
134 | private fun generateIssueFeedEntries(entries: List<IssueHistoryEntry>): List<IssueFeedEntry> = |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
135 | if (entries.isEmpty()) { |
238
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
136 | emptyList() |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
137 | } else { |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
138 | entries.groupBy { it.issueid }.mapValues { (_, history) -> |
238
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
139 | history.zipWithNext().map { (cur, next) -> |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
140 | IssueFeedEntry( |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
141 | cur.time, cur.type, issue = diffContent(cur, next) |
238
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
142 | ) |
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
143 | }.plus( |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
144 | history.last().let { IssueFeedEntry(it.time, it.type, issue = fullContent(it)) } |
238
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
145 | ) |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
146 | }.flatMap { it.value } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
147 | } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
148 | |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
149 | private fun generateCommentFeedEntries(entries: List<IssueCommentHistoryEntry>): List<IssueFeedEntry> = |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
150 | if (entries.isEmpty()) { |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
151 | emptyList() |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
152 | } else { |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
153 | entries.groupBy { it.commentid }.mapValues { (_, history) -> |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
154 | history.zipWithNext().map { (cur, next) -> |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
155 | IssueFeedEntry( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
156 | cur.time, cur.type, comment = diffContent(cur, next) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
157 | ) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
158 | }.plus( |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
159 | history.last().let { IssueFeedEntry(it.time, it.type, comment = fullContent(it)) } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
160 | ) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
161 | }.flatMap { it.value } |
238
1d48b38ca349
fix diff generated between feed entries with different issue IDs
Mike Becker <universe@uap-core.de>
parents:
236
diff
changeset
|
162 | } |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
163 | |
195 | 164 | private fun issues(http: HttpRequest, dao: DataAccessObject) { |
198
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
165 | val project = http.pathParams["project"]?.let { dao.findProjectByNode(it) } |
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
166 | if (project == null) { |
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
167 | http.response.sendError(404) |
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
168 | return |
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
169 | } |
239
9365c7fb0240
#109 add assignee filter to rss feed
Mike Becker <universe@uap-core.de>
parents:
238
diff
changeset
|
170 | val assignees = http.param("assignee")?.split(',') |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
171 | val comments = http.param("comments") ?: "all" |
195 | 172 | |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
173 | val days = http.param("days")?.toIntOrNull() ?: 30 |
198
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
174 | |
239
9365c7fb0240
#109 add assignee filter to rss feed
Mike Becker <universe@uap-core.de>
parents:
238
diff
changeset
|
175 | val issuesFromDb = dao.listIssueHistory(project.id, days) |
9365c7fb0240
#109 add assignee filter to rss feed
Mike Becker <universe@uap-core.de>
parents:
238
diff
changeset
|
176 | val issueHistory = if (assignees == null) issuesFromDb else |
241
1ca4f27cefe8
#109 changes assignee filter
Mike Becker <universe@uap-core.de>
parents:
240
diff
changeset
|
177 | issuesFromDb.filter { assignees.contains(it.currentAssignee) } |
239
9365c7fb0240
#109 add assignee filter to rss feed
Mike Becker <universe@uap-core.de>
parents:
238
diff
changeset
|
178 | |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
179 | val commentsFromDb = dao.listIssueCommentHistory(project.id, days) |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
180 | val commentHistory = when (comments) { |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
181 | "all" -> commentsFromDb |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
182 | "new" -> commentsFromDb.filter { it.type == IssueHistoryType.NewComment } |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
183 | else -> emptyList() |
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
184 | } |
235
4258b9e010ae
change rss feed to display the issue history
Mike Becker <universe@uap-core.de>
parents:
199
diff
changeset
|
185 | |
242
b7f3e972b13c
#109 add comment history
Mike Becker <universe@uap-core.de>
parents:
241
diff
changeset
|
186 | http.view = IssueFeed(project, generateFeedEntries(issueHistory, commentHistory)) |
198
94f174d591ab
fixes wrong handling of feeds - only one channel per feed is allowed
Mike Becker <universe@uap-core.de>
parents:
195
diff
changeset
|
187 | http.renderFeed("issues-feed") |
195 | 188 | } |
189 | } |