Paginate things a bit differently
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / NewPage.kt
index d1841d4..5218ce8 100644 (file)
@@ -1,7 +1,7 @@
 package net.pterodactylus.sone.web.pages
 
-import net.pterodactylus.sone.utils.Pagination
 import net.pterodactylus.sone.utils.mapPresent
+import net.pterodactylus.sone.utils.paginate
 import net.pterodactylus.sone.utils.parameters
 import net.pterodactylus.sone.web.WebInterface
 import net.pterodactylus.sone.web.page.FreenetRequest
@@ -13,20 +13,20 @@ import net.pterodactylus.util.template.TemplateContext
  * [PostVisibilityFilter.isPostVisible(Sone, Post)] and sorted by time.
  */
 class NewPage(template: Template, webInterface: WebInterface):
-               SoneTemplatePage("new.html", template, "Page.New.Title", webInterface, false) {
+               SoneTemplatePage("new.html", webInterface, template, "Page.New.Title") {
 
-       override fun handleRequest(request: FreenetRequest, templateContext: TemplateContext) =
-                       getCurrentSone(request.toadletContext).let { currentSone ->
+       override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) =
+                       getCurrentSone(freenetRequest.toadletContext).let { currentSone ->
                                (webInterface.getNewPosts(currentSone) + webInterface.getNewReplies(currentSone).mapPresent { it.post })
                                                .distinct()
                                                .sortedByDescending { it.time }
                                                .let { posts ->
-                                                       Pagination(posts, webInterface.core.preferences.postsPerPage).apply {
-                                                               page = request.parameters["page"]?.toIntOrNull() ?: 0
-                                                       }.let { pagination ->
-                                                               templateContext["pagination"] = pagination
-                                                               templateContext["posts"] = pagination.items
-                                                       }
+                                                       posts.paginate(webInterface.core.preferences.postsPerPage)
+                                                                       .turnTo(freenetRequest.parameters["page"]?.toIntOrNull() ?: 0)
+                                                                       .let { pagination ->
+                                                                               templateContext["pagination"] = pagination
+                                                                               templateContext["posts"] = pagination.items
+                                                                       }
                                                }
                        }