*/
@MenuName("ImageBrowser")
@TemplatePath("/templates/imageBrowser.html")
-class ImageBrowserPage @Inject constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer):
- LoggedInPage("imageBrowser.html", "Page.ImageBrowser.Title", webInterface, loaders, templateRenderer) {
+@ToadletPath("imageBrowser.html")
+class ImageBrowserPage @Inject constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) :
+ LoggedInPage("Page.ImageBrowser.Title", webInterface, loaders, templateRenderer) {
override fun handleRequest(soneRequest: SoneRequest, currentSone: Sone, templateContext: TemplateContext) {
if ("album" in soneRequest.parameters) {
} else if (soneRequest.parameters["mode"] == "gallery") {
templateContext["galleryRequested"] = true
soneRequest.core.sones
- .map(Sone::getRootAlbum)
- .flatMap(Album::getAlbums)
- .flatMap { Album.FLATTENER.apply(it)!! }
+ .flatMap(Sone::allAlbums)
.filterNot(Album::isEmpty)
.sortedBy(Album::getTitle)
.also { albums ->
albums.paginate(soneRequest.core.preferences.imagesPerPage)
.turnTo(soneRequest.parameters["page"]?.toIntOrNull() ?: 0)
.also { pagination ->
- templateContext["albumPagination"] = pagination
- templateContext["albums"] = pagination.items
- }
+ templateContext["albumPagination"] = pagination
+ templateContext["albums"] = pagination.items
+ }
}
} else {
templateContext["soneRequested"] = true