Paginate things a bit differently
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / ImageBrowserPage.kt
index 60a2bd5..bf1ed2a 100644 (file)
@@ -2,7 +2,7 @@ package net.pterodactylus.sone.web.pages
 
 import net.pterodactylus.sone.data.Album
 import net.pterodactylus.sone.data.Sone
-import net.pterodactylus.sone.utils.Pagination
+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
@@ -14,9 +14,9 @@ import java.net.URI
  * The image browser page is the entry page for the image management.
  */
 class ImageBrowserPage(template: Template, webInterface: WebInterface):
-               SoneTemplatePage("imageBrowser.html", template, "Page.ImageBrowser.Title", webInterface, true) {
+               LoggedInPage("imageBrowser.html", template, "Page.ImageBrowser.Title", webInterface) {
 
-       override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) {
+       override fun handleRequest(freenetRequest: FreenetRequest, currentSone: Sone, templateContext: TemplateContext) {
                if ("album" in freenetRequest.parameters) {
                        templateContext["albumRequested"] = true
                        templateContext["album"] = webInterface.core.getAlbum(freenetRequest.parameters["album"]!!)
@@ -33,14 +33,16 @@ class ImageBrowserPage(template: Template, webInterface: WebInterface):
                                        .filterNot(Album::isEmpty)
                                        .sortedBy(Album::getTitle)
                                        .also { albums ->
-                                               Pagination(albums, webInterface.core.preferences.imagesPerPage).apply { page = freenetRequest.parameters["page"]?.toIntOrNull() ?: 0 }.also { pagination ->
+                                               albums.paginate(webInterface.core.preferences.imagesPerPage)
+                                                               .turnTo(freenetRequest.parameters["page"]?.toIntOrNull() ?: 0)
+                                                               .also { pagination ->
                                                        templateContext["albumPagination"] = pagination
                                                        templateContext["albums"] = pagination.items
                                                }
                                        }
                } else {
                        templateContext["soneRequested"] = true
-                       templateContext["sone"] = webInterface.core.getSone(freenetRequest.httpRequest.getParam("sone")) ?: getCurrentSone(freenetRequest.toadletContext)
+                       templateContext["sone"] = webInterface.core.getSone(freenetRequest.httpRequest.getParam("sone")) ?: currentSone
                }
        }