Make addSingleScaffold private to the loop that uses it.
[mkws-moved-to-github.git] / src / mkws-widget-termlists.js
index eb299f0..166c853 100644 (file)
@@ -5,7 +5,7 @@ mkws.registerWidgetType('Termlists', function() {
     var facetConfig = {
        xtargets: [ "Sources",  16, false ],
        subject:  [ "Subjects", 10, true ],
-       author:   [ "Author",   10, true ]
+       author:   [ "Authors",  10, true ]
     }
 
     this.team.queue("termlists").subscribe(function(data) {
@@ -30,7 +30,22 @@ mkws.registerWidgetType('Termlists', function() {
            if (!ref) {
                alert("bad facet configuration: '" + name + "'");
            } else {
-               output[name] = addSingleFacet(acc, ref[0], data[name], ref[1], ref[2] ? name : null);
+               addSingleScaffold(acc, ref[0]);
+               function addSingleScaffold(acc, caption) {
+                   var teamName = that.team.name();
+                   acc.push('<div class="mkwsFacet mkwsFacet' + caption + ' mkwsTeam_' + teamName + '">');
+                   acc.push('</div>');
+               }
+           }
+       }
+
+       for (var i = 0; i < facets.length; i++) {
+           var name = facets[i]
+           var ref = facetConfig[name];
+           if (!ref) {
+               alert("bad facet configuration: '" + name + "'");
+           } else {
+               output[name] = makeSingleFacet(ref[0], data[name], ref[1], ref[2] ? name : null);
            }
        }
 
@@ -45,9 +60,9 @@ mkws.registerWidgetType('Termlists', function() {
            that.team.findnode('.mkwsFacet' + caption).html(output[name]);
        }
 
-       function addSingleFacet(acc, caption, data, max, pzIndex) {
+
+       function makeSingleFacet(caption, data, max, pzIndex) {
            var teamName = that.team.name();
-           acc.push('<div class="mkwsFacet mkwsFacet' + caption + ' mkwsTeam_' + teamName + '">');
 
            var a2 = [];
            a2.push('<div class="termtitle">' + M(caption) + '</div>');
@@ -68,7 +83,6 @@ mkws.registerWidgetType('Termlists', function() {
                         + ' <span>' + data[i].freq + '</span>');
                a2.push('</div>');
            }
-           acc.push('</div>');
            return a2.join('');
        }
     });