X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=tools%2Fhtdocs%2Fmkws.js;h=446fc7cac2ae8050218ef41256e4b791feb28c4a;hb=b49693f0b2ab2724444e64f6167ee65cfbbd951a;hp=9530afe49ffe66ca6701a1c710f0fd76dda8d30f;hpb=5c7b651bae92f6863a79666ef94678b940f9cf72;p=mkws-moved-to-github.git diff --git a/tools/htdocs/mkws.js b/tools/htdocs/mkws.js index 9530afe..446fc7c 100644 --- a/tools/htdocs/mkws.js +++ b/tools/htdocs/mkws.js @@ -6,7 +6,6 @@ // Set up namespace and some state. var mkws = { filters: [], - pp2filter: null, }; /* @@ -101,6 +100,60 @@ mkws.debug_function = function (string) { } var debug = mkws.debug_function; // local alias + +Handlebars.registerHelper('json', function(obj) { + return JSON.stringify(obj); +}); + + +// We need {{attr '@name'}} because Handlebars can't parse {{@name}} +Handlebars.registerHelper('attr', function(attrName) { + return this[attrName]; +}); + + +/* + * Use as follows: {{#if-any NAME1 having="NAME2"}} + * Applicable when NAME1 is the name of an array + * The guarded code runs only if at least one element of the NAME1 + * array has a subelement called NAME2. + */ +Handlebars.registerHelper('if-any', function(items, options) { + var having = options.hash.having; + for (var i in items) { + var item = items[i] + if (!having || item[having]) { + return options.fn(this); + } + } + return ""; +}); + + +Handlebars.registerHelper('first', function(items, options) { + var having = options.hash.having; + for (var i in items) { + var item = items[i] + if (!having || item[having]) { + return options.fn(item); + } + } + return ""; +}); + + +Handlebars.registerHelper('commaList', function(items, options) { + var out = ""; + + for (var i in items) { + if (i > 0) out += ", "; + out += options.fn(items[i]) + } + + return out; +}); + + { /* default mkws config */ var config_default = { @@ -211,24 +264,33 @@ function my_onshow(data) { var html = []; for (var i = 0; i < data.hits.length; i++) { var hit = data.hits[i]; - html.push('
'+ marker + ' | |
No locations for record! |
Title | \ +\ + {{md-title}}\ + {{#if md-title-remainder}}\ + ({{md-title-remainder}})\ + {{/if}}\ + {{#if md-title-responsibility}}\ + {{md-title-responsibility}}\ + {{/if}}\ + | \ +
---|---|
Date | \ +{{md-date}} | \ +
Author | \ +{{md-author}} | \ +
URL | \ +\
+ {{#each md-electronic-url}}\
+ {{this}} \ + {{/each}}\ + | \
+
Subject | \ +\ + {{#first location having="md-subject"}}\ + {{#if md-subject}}\ + {{md-subject}}\ + {{/if}}\ + {{/first}}\ + | \ +
Locations | \ +\ + {{#commaList location}}\ + {{attr "@name"}}{{/commaList}}\ + | \ +