From: Mike Taylor Date: Fri, 4 Apr 2014 13:07:26 +0000 (+0100) Subject: New file mkws-widget-termlists.js X-Git-Tag: 1.0.0~1039 X-Git-Url: http://jsfdemo.indexdata.com/cgi-bin?a=commitdiff_plain;h=dbd20b82821d1f50ff1d7389b1b1f551456a22c5;p=mkws-moved-to-github.git New file mkws-widget-termlists.js Contains the "Termlists" widget from mkws-widgets.js --- diff --git a/src/mkws-widget-termlists.js b/src/mkws-widget-termlists.js new file mode 100644 index 0000000..66b8a4d --- /dev/null +++ b/src/mkws-widget-termlists.js @@ -0,0 +1,65 @@ +mkws.registerWidgetType('Termlists', function() { + var that = this; + var M = mkws.M; + + this.team.queue("termlists").subscribe(function(data) { + if (!that.node) { + alert("termlists event when there are no termlists"); + return; + } + + // no facets: this should never happen + var facets = that.config.facets; + if (!facets || facets.length == 0) { + alert("onTerm called even though we have no facets: " + $.toJSON(data)); + $(that.node).hide(); + return; + } + + // display if we first got results + $(that.node).show(); + + var acc = []; + acc.push('
' + M('Termlists') + '
'); + + for (var i = 0; i < facets.length; i++) { + if (facets[i] == "xtargets") { + addSingleFacet(acc, "Sources", data.xtargets, 16, null); + } else if (facets[i] == "subject") { + addSingleFacet(acc, "Subjects", data.subject, 10, "subject"); + } else if (facets[i] == "author") { + addSingleFacet(acc, "Authors", data.author, 10, "author"); + } else { + alert("bad facet configuration: '" + facets[i] + "'"); + } + } + + $(that.node).html(acc.join('')); + + function addSingleFacet(acc, caption, data, max, pzIndex) { + var teamName = that.team.name(); + acc.push('
'); + acc.push('
' + M(caption) + '
'); + for (var i = 0; i < data.length && i < max; i++) { + acc.push('
'); + acc.push('' + data[i].name + '' + + ' ' + data[i].freq + ''); + acc.push('
'); + } + acc.push('
'); + } + }); + + widget.autosearch(that); +});