Extend #first Handlebars helper with optional 'having' attribute.
authorMike Taylor <mike@indexdata.com>
Thu, 28 Nov 2013 13:34:46 +0000 (13:34 +0000)
committerMike Taylor <mike@indexdata.com>
Thu, 28 Nov 2013 13:34:46 +0000 (13:34 +0000)
tools/htdocs/mkws.js

index 8e282a8..674bfff 100644 (file)
@@ -119,7 +119,16 @@ Handlebars.registerHelper('json', function(obj) {
 
 
 Handlebars.registerHelper('first', function(items, options) {
-    return options.fn(items[0]);
+    var having = options.hash.having;
+    debug("#first checking for first item having '" + having + "'");
+    for (var i in items) {
+       var item = items[i]
+       debug("considering item " + (+i+1) + " of " + items.length + " = '" + item[having] + "'");
+       if (!having || item[having]) {
+           return options.fn(item);
+       }
+    }
+    return "";
 });