✨ Use @ToadletPath for JSON pages, too
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / web / ajax / GetNotificationsAjaxPage.kt
index d218a3d..db6e5c5 100644 (file)
@@ -6,18 +6,20 @@ import net.pterodactylus.sone.main.SonePlugin
 import net.pterodactylus.sone.utils.jsonArray
 import net.pterodactylus.sone.utils.jsonObject
 import net.pterodactylus.sone.web.WebInterface
-import net.pterodactylus.sone.web.page.FreenetRequest
+import net.pterodactylus.sone.web.page.*
 import net.pterodactylus.util.notify.Notification
 import net.pterodactylus.util.notify.TemplateNotification
 import java.io.StringWriter
+import javax.inject.Inject
 
 /**
  * AJAX handler to return all current notifications.
  */
-class GetNotificationsAjaxPage(webInterface: WebInterface) : JsonPage("getNotifications.ajax", webInterface) {
+@ToadletPath("getNotifications.ajax")
+class GetNotificationsAjaxPage @Inject constructor(webInterface: WebInterface) : JsonPage(webInterface) {
 
-       override fun needsFormPassword() = false
-       override fun requiresLogin() = false
+       override val needsFormPassword = false
+       override val requiresLogin = false
 
        override fun createJsonObject(request: FreenetRequest) =
                        getCurrentSone(request.toadletContext, false).let { currentSone ->
@@ -48,15 +50,15 @@ class GetNotificationsAjaxPage(webInterface: WebInterface) : JsonPage("getNotifi
                val mergedTemplateContext = webInterface.templateContextFactory.createTemplateContext()
                                .mergeContext(templateContext)
                                .apply {
-                                       this["core"] = webInterface.core
+                                       this["core"] = core
                                        this["currentSone"] = currentSone
-                                       this["localSones"] = webInterface.core.localSones
+                                       this["localSones"] = core.localSones
                                        this["request"] = freenetRequest
                                        this["currentVersion"] = SonePlugin.getPluginVersion()
-                                       this["hasLatestVersion"] = webInterface.core.updateChecker.hasLatestVersion()
-                                       this["latestEdition"] = webInterface.core.updateChecker.latestEdition
-                                       this["latestVersion"] = webInterface.core.updateChecker.latestVersion
-                                       this["latestVersionTime"] = webInterface.core.updateChecker.latestVersionDate
+                                       this["hasLatestVersion"] = core.updateChecker.hasLatestVersion()
+                                       this["latestEdition"] = core.updateChecker.latestEdition
+                                       this["latestVersion"] = core.updateChecker.latestVersion
+                                       this["latestVersionTime"] = core.updateChecker.latestVersionDate
                                        this["notification"] = this@render
                                }
                it.also { render(mergedTemplateContext, it) }