import net.pterodactylus.sone.data.Post
import net.pterodactylus.sone.data.PostReply
import net.pterodactylus.sone.template.SoneAccessor
-import net.pterodactylus.sone.utils.let
import net.pterodactylus.sone.utils.mapPresent
import net.pterodactylus.sone.utils.paginate
import net.pterodactylus.sone.utils.parameters
import net.pterodactylus.util.template.Template
import net.pterodactylus.util.template.TemplateContext
import java.net.URI
+import javax.inject.Inject
/**
* Lets the user browser another Sone.
*/
-class ViewSonePage(template: Template, webInterface: WebInterface):
- SoneTemplatePage("viewSone.html", template, webInterface, false) {
+class ViewSonePage @Inject constructor(template: Template, webInterface: WebInterface):
+ SoneTemplatePage("viewSone.html", webInterface, template) {
override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) {
templateContext["soneId"] = freenetRequest.parameters["sone"]
- freenetRequest.parameters["sone"].let(webInterface.core::getSone).let { sone ->
+ freenetRequest.parameters["sone"]!!.let(webInterface.core::getSone)?.let { sone ->
templateContext["sone"] = sone
val sonePosts = sone.posts
val directedPosts = webInterface.core.getDirectedPosts(sone.id)
override fun isLinkExcepted(link: URI?) = true
- public override fun getPageTitle(freenetRequest: FreenetRequest): String =
- freenetRequest.parameters["sone"].let(webInterface.core::getSone).let { sone ->
+ override fun getPageTitle(freenetRequest: FreenetRequest): String =
+ freenetRequest.parameters["sone"]!!.let(webInterface.core::getSone)?.let { sone ->
"${SoneAccessor.getNiceName(sone)} - ${webInterface.l10n.getString("Page.ViewSone.Title")}"
} ?: webInterface.l10n.getString("Page.ViewSone.Page.TitleWithoutSone")