projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
🔥 Remove path from FreenetTemplatePage
[Sone.git]
/
src
/
main
/
kotlin
/
net
/
pterodactylus
/
sone
/
web
/
page
/
FreenetTemplatePage.kt
diff --git
a/src/main/kotlin/net/pterodactylus/sone/web/page/FreenetTemplatePage.kt
b/src/main/kotlin/net/pterodactylus/sone/web/page/FreenetTemplatePage.kt
index
d93e7d1
..
8cf5f61
100644
(file)
--- a/
src/main/kotlin/net/pterodactylus/sone/web/page/FreenetTemplatePage.kt
+++ b/
src/main/kotlin/net/pterodactylus/sone/web/page/FreenetTemplatePage.kt
@@
-21,7
+21,6
@@
import freenet.clients.http.*
import net.pterodactylus.sone.main.*
import net.pterodactylus.util.template.*
import net.pterodactylus.util.web.*
import net.pterodactylus.sone.main.*
import net.pterodactylus.util.template.*
import net.pterodactylus.util.web.*
-import java.io.*
import java.lang.String.*
import java.net.*
import java.util.logging.*
import java.lang.String.*
import java.net.*
import java.util.logging.*
@@
-32,10
+31,8
@@
import java.util.logging.Logger.*
* fit into Freenet’s web interface.
*/
open class FreenetTemplatePage(
* fit into Freenet’s web interface.
*/
open class FreenetTemplatePage(
- private val path: String,
- private val templateContextFactory: TemplateContextFactory,
- private val loaders: Loaders,
- private val template: Template,
+ private val templateRenderer: TemplateRenderer,
+ loaders: Loaders,
private val invalidFormPasswordRedirectTarget: String
) : FreenetPage, LinkEnabledCallback {
private val invalidFormPasswordRedirectTarget: String
) : FreenetPage, LinkEnabledCallback {
@@
-43,7
+40,7
@@
open class FreenetTemplatePage(
open val shortcutIcon: String? get() = null
open val isFullAccessOnly get() = false
open val shortcutIcon: String? get() = null
open val isFullAccessOnly get() = false
- override fun getPath() =
p
ath
+ override fun getPath() =
toadletP
ath
open fun getPageTitle(request: FreenetRequest) = ""
open fun getPageTitle(request: FreenetRequest) = ""
@@
-57,6
+54,8
@@
open class FreenetTemplatePage(
override fun isEnabled(toadletContext: ToadletContext) = !isFullAccessOnly
override fun isEnabled(toadletContext: ToadletContext) = !isFullAccessOnly
+ private val template = templatePath?.let(loaders::loadTemplate) ?: Template()
+
override fun handleRequest(request: FreenetRequest, response: Response): Response {
getRedirectTarget(request)?.let { redirectTarget -> return RedirectResponse(redirectTarget) }
override fun handleRequest(request: FreenetRequest, response: Response): Response {
getRedirectTarget(request)?.let { redirectTarget -> return RedirectResponse(redirectTarget) }
@@
-82,20
+81,19
@@
open class FreenetTemplatePage(
}
shortcutIcon?.let { pageNode.addForwardLink("icon", it) }
}
shortcutIcon?.let { pageNode.addForwardLink("icon", it) }
- val templateContext = templateContextFactory.createTemplateContext()
- templateContext.mergeContext(template.initialContext)
- try {
+ val output = try {
val start = System.nanoTime()
val start = System.nanoTime()
- processTemplate(request, templateContext)
- val finish = System.nanoTime()
- logger.log(Level.FINEST, format("Template was rendered in %.2fms.", (finish - start) / 1000000.0))
+ templateRenderer.render(template) { templateContext ->
+ processTemplate(request, templateContext)
+ }.also {
+ val finish = System.nanoTime()
+ logger.log(Level.FINEST, format("Template was rendered in %.2fms.", (finish - start) / 1000000.0))
+ }
} catch (re1: RedirectException) {
return RedirectResponse(re1.target ?: "")
}
} catch (re1: RedirectException) {
return RedirectResponse(re1.target ?: "")
}
- val stringWriter = StringWriter()
- template.render(templateContext, stringWriter)
- pageNode.content.addChild("%", stringWriter.toString())
+ pageNode.content.addChild("%", output)
return response.setStatusCode(200).setStatusText("OK").setContentType("text/html").write(pageNode.outer.generate())
}
return response.setStatusCode(200).setStatusText("OK").setContentType("text/html").write(pageNode.outer.generate())
}