Include templates for rendering linked elements
[Sone.git] / src / main / kotlin / net / pterodactylus / sone / template / LinkedElementRenderFilter.kt
index 6255f9d..a356028 100644 (file)
@@ -1,7 +1,6 @@
 package net.pterodactylus.sone.template
 
 import net.pterodactylus.sone.core.LinkedElement
-import net.pterodactylus.sone.core.LinkedImage
 import net.pterodactylus.util.template.Filter
 import net.pterodactylus.util.template.TemplateContext
 import net.pterodactylus.util.template.TemplateContextFactory
@@ -15,8 +14,8 @@ import java.io.StringWriter
 class LinkedElementRenderFilter(private val templateContextFactory: TemplateContextFactory) : Filter {
 
        companion object {
-               private val loadedImageTemplate = """<a href="/<% link|html>"><span class="linked-element" title="<% link|html>" style="background-image: url('/<% link|html>')"></span></a>""".parse()
-               private val notLoadedImageTemplate = """<span class="linked-element" title="<% link|html>" style="background-image: url('images/loading-animation.gif')"></span>""".parse()
+               private val loadedImageTemplate = """<%include linked/image.html>""".parse()
+               private val notLoadedImageTemplate = """<%include linked/notLoaded.html>""".parse()
 
                private fun String.parse() = StringReader(this).use { TemplateParser.parse(it) }
        }
@@ -24,14 +23,14 @@ class LinkedElementRenderFilter(private val templateContextFactory: TemplateCont
        override fun format(templateContext: TemplateContext?, data: Any?, parameters: Map<String, Any?>?) =
                        when {
                                data is LinkedElement && data.loading -> renderNotLoadedLinkedElement(data)
-                               data is LinkedImage -> renderLinkedImage(data)
+                               data is LinkedElement -> renderLinkedImage(data)
                                else -> null
                        }
 
-       private fun renderLinkedImage(linkedImage: LinkedImage) =
+       private fun renderLinkedImage(linkedElement: LinkedElement) =
                        StringWriter().use {
                                val templateContext = templateContextFactory.createTemplateContext()
-                               templateContext["link"] = linkedImage.link
+                               templateContext["link"] = linkedElement.link
                                loadedImageTemplate.render(templateContext, it)
                                it
                        }.toString()