From: Mike Taylor Date: Tue, 26 Nov 2013 13:50:06 +0000 (+0000) Subject: Full-record display uses Handlebars template #mkwsTemplateRecor if X-Git-Tag: 0.9.1~148^2~48 X-Git-Url: http://jsfdemo.indexdata.com/?a=commitdiff_plain;h=7e9da39ce2d1e1bc72138b59d539b9072dcadb06;p=mkws-moved-to-github.git 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"). --- 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 "";
'+ marker + '