src/main/kotlin/de/uapcore/lightpit/servlet/FeedServlet.kt

changeset 324
61b16fc21f4d
parent 315
4fe3f61744cf
--- a/src/main/kotlin/de/uapcore/lightpit/servlet/FeedServlet.kt	Sat Aug 17 12:09:03 2024 +0200
+++ b/src/main/kotlin/de/uapcore/lightpit/servlet/FeedServlet.kt	Sun Oct 06 15:08:50 2024 +0200
@@ -77,14 +77,12 @@
             ).joinToString("\n", transform = DiffRow::getOldLine)
         )
 
-    private fun fullContent(issue: IssueHistoryEntry) = IssueDiff(
+    private fun fullContent(http: HttpRequest, issue: IssueHistoryEntry) = IssueDiff(
         issue.issueid,
-        issue.subject,
         issue.project,
         issue.component,
-        issue.status.name,
-        issue.category.name,
-        issue.category.name,
+        http.i18n("issue.status."+issue.status.name),
+        http.i18n("issue.category."+issue.category.name),
         issue.subject,
         issue.description.replace("\r", ""),
         issue.assignee,
@@ -93,9 +91,9 @@
         issue.resolved
     )
 
-    private fun diffContent(cur: IssueHistoryEntry, next: IssueHistoryEntry): IssueDiff {
-        val prev = fullContent(next)
-        val diff = fullContent(cur)
+    private fun diffContent(http: HttpRequest, cur: IssueHistoryEntry, next: IssueHistoryEntry): IssueDiff {
+        val prev = fullContent(http, next)
+        val diff = fullContent(http, cur)
         val result = diffGenerator.generateDiffRows(
             listOf(
                 prev.subject, prev.component, prev.status,
@@ -129,22 +127,23 @@
      * Assumes that [issueEntries] and [commentEntries] are already sorted by timestamp (descending).
      */
     private fun generateFeedEntries(
+        http: HttpRequest,
         issueEntries: List<IssueHistoryEntry>,
         commentEntries: List<IssueCommentHistoryEntry>
     ): List<IssueFeedEntry> =
-        (generateIssueFeedEntries(issueEntries) + generateCommentFeedEntries(commentEntries)).sortedByDescending { it.time }
+        (generateIssueFeedEntries(http, issueEntries) + generateCommentFeedEntries(commentEntries)).sortedByDescending { it.time }
 
-    private fun generateIssueFeedEntries(entries: List<IssueHistoryEntry>): List<IssueFeedEntry> =
+    private fun generateIssueFeedEntries(http: HttpRequest, entries: List<IssueHistoryEntry>): List<IssueFeedEntry> =
         if (entries.isEmpty()) {
             emptyList()
         } else {
             entries.groupBy { it.issueid }.mapValues { (_, history) ->
                 history.zipWithNext().map { (cur, next) ->
                     IssueFeedEntry(
-                        cur.time, cur.type, issue = diffContent(cur, next)
+                        cur.time, cur.type, issue = diffContent(http, cur, next)
                     )
                 }.plus(
-                    history.last().let { IssueFeedEntry(it.time, it.type, issue = fullContent(it)) }
+                    history.last().let { IssueFeedEntry(it.time, it.type, issue = fullContent(http, it)) }
                 )
             }.flatMap { it.value }
         }
@@ -192,7 +191,7 @@
             else -> emptyList()
         }
 
-        http.view = IssueFeed(project, generateFeedEntries(issueHistory, commentHistory))
+        http.view = IssueFeed(project, generateFeedEntries(http, issueHistory, commentHistory))
         http.renderFeed("issues-feed")
     }
 }
\ No newline at end of file

mercurial