Remove debugging output from #first Handlebars helper.
[mkws-moved-to-github.git] / tools / htdocs / mkws.js
index 1a58f58..124b311 100644 (file)
@@ -101,13 +101,38 @@ mkws.debug_function = function (string) {
 var debug = mkws.debug_function; // local alias
 
 
-Handlebars.registerHelper('link', function(text, url) {
-  text = Handlebars.Utils.escapeExpression(text);
-  url  = Handlebars.Utils.escapeExpression(url);
+Handlebars.registerHelper('link', function(a) {
+    var result = "";
+    for (var i in a) {
+       if (i > 0) result += "<br/>";
+       var text = Handlebars.Utils.escapeExpression(a[i]);
+       result += '<a href="' + text + '">' + text + '</a>';
+    }
+
+    return new Handlebars.SafeString(result);
+});
+
+
+Handlebars.registerHelper('json', function(obj) {
+    return JSON.stringify(obj);
+});
 
-  var result = '<a href="' + url + '">' + text + '</a>';
 
-  return new Handlebars.SafeString(result);
+// We need {{attr name}} because Handlebars can't parse {{@@name}}
+Handlebars.registerHelper('attr', function(attrName) {
+    return this['@' + attrName];
+});
+
+
+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 "";
 });