Diff

mod_http_muc_log/mod_http_muc_log.lua @ 1582:8e282eb0c70c

mod_http_muc_log: Split out template into a configurable file.
author Kim Alvefur <zash@zash.se>
date Wed, 03 Dec 2014 15:35:38 +0100
parent 1581:9f6cd252d233
child 1605:c8a51d1bc96d
line wrap: on
line diff
--- a/mod_http_muc_log/mod_http_muc_log.lua	Tue Dec 02 15:12:01 2014 +0100
+++ b/mod_http_muc_log/mod_http_muc_log.lua	Wed Dec 03 15:35:38 2014 +0100
@@ -63,102 +63,13 @@
 	end));
 end
 
--- TODO Move template into a file
-local template = [=[
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<title>{title}</title>
-<style>
-:link,:visited{text-decoration:none;color:#2e3436;text-decoration:none;}
-:link:hover,:visited:hover{color:#3465a4;}
-body{background-color:#eeeeec;margin:1ex 0;padding-bottom:3em;font-family:Arial,Helvetica,sans-serif;}
-ul,ol{padding:0;}
-li{list-style:none;}
-hr{visibility:hidden;clear:both;}
-br{clear:both;}
-header,footer{margin:1ex 1em;}
-footer{font-size:smaller;color:#babdb6;}
-nav{font-size:large;margin:1ex 1ex;clear:both;line-height:1.5em;}
-footer nav .up{display:none;}
-@media screen and (min-width: 460px) {
-nav {font-size:x-large;margin:1ex 1em;}
-}
-nav a{padding: 1ex;}
-nav .up{font-size:smaller;display:block;clear:both;}
-nav .prev{float:left;}
-nav .next{float:right;}
-nav .next::after{content:" →";}
-nav .prev::before{content:"← ";}
-nav :empty::after,nav :empty::before{content:""}
-.content{background-color:white;padding:1em;list-style-position:inside;}
-.time{float:right;font-size:small;opacity:0.2;}
-li:hover .time{opacity:1;}
-.description{font-size:smaller;}
-.body{white-space:pre-line;}
-.body::before,.body::after{content:"";}
-.presence .verb{font-style:normal;color:#30c030;}
-.unavailable .verb{color:#c03030;}
-</style>
-</head>
-<body>
-<header>
-<h1 title="xmpp:{jid?}">{title}</h1>
-<nav>{links#
-<a class="{rel?}" href="{href}" rel="{rel?}">{text}</a>}
-</nav>
-</header>
-<hr>
-<div class="content">
-<nav>
-<dl class="room-list">
-{rooms#
-<dt class="name"><a href="{href}">{name}</a></dt>
-<dd class="description">{description?}</dd>}
-</dl>
-<ul class="dates">{dates#
-<li><a href="{date}">{date}</a></li>}
-</ul>
-</nav>
-<ol class="chat-logs">{lines#
-<li class="{st_name} {st_type?}" id="{key}">
-<a class="time" href="#{key}"><time datetime="{datetime}">{time}</time></a>
-<b class="nick">{nick}</b>
-<em class="verb">{verb?}</em>
-<q class="body">{body?}</q>
-</li>}
-</ol>
-</div>
-<hr>
-<footer>
-<nav>{links#
-<a class="{rel?}" href="{href}" rel="{rel?}">{text}</a>}
-</nav>
-<br>
-<div class="powered-by">Prosody</div>
-</footer>
-<script>
-/*
- * Local timestamps
- */
-(function () {
-	var timeTags = document.getElementsByTagName("time");
-	var i = 0, tag, date;
-	while(timeTags[i]) {
-		tag = timeTags[i++];
-		if(date = tag.getAttribute("datetime")) {
-			date = new Date(date);
-			tag.textContent = date.toLocaleTimeString();
-			tag.setAttribute("title", date.toString());
-		}
-	}
-})();
-</script>
-</body>
-</html>
-]=];
+local template = "Could not load template"
+do
+	local template_file = module:get_option_string(module.name .. "_template", module.name .. ".html");
+	template_file = assert(module:load_resource(template_file));
+	template = template_file:read("*a");
+	template_file:close();
+end
 
 local base_url = module:http_url() .. '/';
 local get_link do