🔀 Merge “release/v81” into “master”
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / pages / OptionsPage.kt
index 4bf6b12..412258d 100644 (file)
@@ -1,25 +1,22 @@
 package net.pterodactylus.sone.web.pages
 
-import net.pterodactylus.sone.core.Preferences
-import net.pterodactylus.sone.data.SoneOptions.LoadExternalContent
-import net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired
+import net.pterodactylus.sone.data.SoneOptions.*
+import net.pterodactylus.sone.fcp.FcpInterface.*
 import net.pterodactylus.sone.main.*
-import net.pterodactylus.sone.utils.emptyToNull
-import net.pterodactylus.sone.utils.isPOST
-import net.pterodactylus.sone.utils.parameters
-import net.pterodactylus.sone.web.WebInterface
+import net.pterodactylus.sone.utils.*
+import net.pterodactylus.sone.web.*
 import net.pterodactylus.sone.web.page.*
-import net.pterodactylus.util.template.Template
-import net.pterodactylus.util.template.TemplateContext
-import javax.inject.Inject
+import net.pterodactylus.util.template.*
+import javax.inject.*
 
 /**
  * This page lets the user edit the options of the Sone plugin.
  */
 @MenuName("Options")
 @TemplatePath("/templates/options.html")
-class OptionsPage @Inject constructor(template: Template, webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer):
-               SoneTemplatePage("options.html", webInterface, loaders, template, templateRenderer, pageTitleKey = "Page.Options.Title") {
+@ToadletPath("options.html")
+class OptionsPage @Inject constructor(webInterface: WebInterface, loaders: Loaders, templateRenderer: TemplateRenderer) :
+               SoneTemplatePage(webInterface, loaders, templateRenderer, pageTitleKey = "Page.Options.Title") {
 
        override fun handleRequest(soneRequest: SoneRequest, templateContext: TemplateContext) {
                if (soneRequest.isPOST) {
@@ -53,9 +50,6 @@ class OptionsPage @Inject constructor(template: Template, webInterface: WebInter
                        val imagesPerPage = soneRequest.parameters["images-per-page"]?.toIntOrNull()
                        val insertionDelay = soneRequest.parameters["insertion-delay"]?.toIntOrNull()
                        val fcpFullAccessRequired = soneRequest.parameters["fcp-full-access-required"]?.toIntOrNull()
-                       val negativeTrust = soneRequest.parameters["negative-trust"]?.toIntOrNull()
-                       val positiveTrust = soneRequest.parameters["positive-trust"]?.toIntOrNull()
-                       val trustComment = soneRequest.parameters["trust-comment"]?.emptyToNull
 
                        if (cantSetOption { soneRequest.core.preferences.newPostsPerPage = postsPerPage }) fieldsWithErrors += "posts-per-page"
                        if (cantSetOption { soneRequest.core.preferences.newCharactersPerPost = charactersPerPost }) fieldsWithErrors += "characters-per-post"
@@ -63,13 +57,10 @@ class OptionsPage @Inject constructor(template: Template, webInterface: WebInter
                        if (cantSetOption { soneRequest.core.preferences.newImagesPerPage = imagesPerPage }) fieldsWithErrors += "images-per-page"
                        if (cantSetOption { soneRequest.core.preferences.newInsertionDelay = insertionDelay }) fieldsWithErrors += "insertion-delay"
                        fcpFullAccessRequired?.also { if (cantSetOption { soneRequest.core.preferences.newFcpFullAccessRequired = FullAccessRequired.values()[fcpFullAccessRequired] }) fieldsWithErrors += "fcp-full-access-required" }
-                       if (cantSetOption { soneRequest.core.preferences.newNegativeTrust = negativeTrust }) fieldsWithErrors += "negative-trust"
-                       if (cantSetOption { soneRequest.core.preferences.newPositiveTrust = positiveTrust }) fieldsWithErrors += "positive-trust"
-                       if (cantSetOption { soneRequest.core.preferences.newTrustComment = trustComment }) fieldsWithErrors += "trust-comment"
 
                        if (fieldsWithErrors.isEmpty()) {
                                soneRequest.core.touchConfiguration()
-                               throw RedirectException("options.html")
+                               redirectTo("options.html")
                        }
                        templateContext["fieldErrors"] = fieldsWithErrors
                }
@@ -89,11 +80,8 @@ class OptionsPage @Inject constructor(template: Template, webInterface: WebInter
                        templateContext["images-per-page"] = preferences.imagesPerPage
                        templateContext["fcp-interface-active"] = preferences.fcpInterfaceActive
                        templateContext["require-full-access"] = preferences.requireFullAccess
-                       templateContext["negative-trust"] = preferences.negativeTrust
-                       templateContext["positive-trust"] = preferences.positiveTrust
                        templateContext["post-cut-off-length"] = preferences.postCutOffLength
                        templateContext["posts-per-page"] = preferences.postsPerPage
-                       templateContext["trust-comment"] = preferences.trustComment
                }
        }