changeset 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
parents 9f6cd252d233
children c1bb2a64aabb
files mod_http_muc_log/http_muc_log.html mod_http_muc_log/mod_http_muc_log.lua
diffstat 2 files changed, 100 insertions(+), 96 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_http_muc_log/http_muc_log.html	Wed Dec 03 15:35:38 2014 +0100
@@ -0,0 +1,93 @@
+<!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>
--- 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