From 7e9da39ce2d1e1bc72138b59d539b9072dcadb06 Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Tue, 26 Nov 2013 13:50:06 +0000 Subject: [PATCH] Full-record display uses Handlebars template #mkwsTemplateRecor if provided. Otherwise falls back to old hardwired behaviour. Fixes part of MKWS-68 ("Use a well-established and simple third-party templating library"). --- tools/htdocs/mkws.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index e560ad1..d6026c7 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -640,6 +640,15 @@ function replaceHtml(el, html) { function renderDetails(data, marker) { + if (mkws.templateRecord === undefined) { + maybeLoadTemplate("Record"); + } + + if (mkws.templateRecord) { + var template = mkws.templateRecord; + return template(data); + } + var details = '
'; if (marker) details += ''; @@ -663,6 +672,24 @@ function renderDetails(data, marker) return details; } + +function maybeLoadTemplate(name) +{ + debug("trying to load template 'name'"); + var source = $("#mkwsTemplate" + name).html(); + debug("source = " + source); + if (!source) { + // No template: mark as not provided, fall back to hardwired behaviour + mkws['template' + name] = 0; + return; + } + + var template = Handlebars.compile(source); + debug("template = " + template); + mkws['template' + name] = template; +} + + function renderField(caption, data, data2, data3) { if (data === undefined) { return ""; -- 1.7.10.4
'+ marker + '