Fix target names when no results
[mkdruding2.git] / mkdruding2.js
index e601817..d74b6bb 100644 (file)
@@ -33,3 +33,53 @@ Drupal.theme.mkdruResult = function(hit, num, detailLink) {
   html += '</li>';
   return html;
 };
+
+Drupal.theme.mkdruFacetContainer = function (facetsCfg) {
+  var fs = [];
+  for (var fname in facetsCfg) {
+    facetsCfg[fname].originalKey = fname;
+    fs.push(facetsCfg[fname]);
+  }
+  fs.sort(function (a,b) { return a.orderWeight - b.orderWeight });
+  var html = '<h2>Facet browser</h2><div class="content">';
+  for (var i=0; i<fs.length; i++) {
+    var f = fs[i];
+    html += '<fieldset class="form-wrapper">'
+    html += '<legend><span class="fieldset-legend">'+f.displayName
+      +'</span></legend>';
+    html += '<div class="fieldset-wrapper">';
+    html += '<div class="mkdru-facet-'+f.originalKey+'"/>';
+    html += '</div>';
+    html += '</fieldset>'
+  }
+  html += '</div>';
+  return html;
+};
+
+Drupal.theme.mkdruFacet = function (terms, facet, max, selections) {
+  var html = "";
+  for (var i = 0; i < terms.length && i < max; i++ ) {
+    var term = terms[i];
+    html += '<a href="'+term.toggleLink+'"';
+    if (term.selected) html += ' class="cross"><strong';
+    html += '>'+terms[i].name; 
+    if (term.selected) html += "</strong>";
+    html += '</a><span> (' + terms[i].freq 
+      + ')</span><br/>';
+  }
+  if (terms.length == 0 && selections && selections.length) {
+    for (var i=0; i<selections.length; i++) {
+      if (selections[i]) {
+        // since we have no target name (only id) go for the basename
+        // FIXME get the proper target name
+        var name = facet == "source" ? selections[i].replace(/.*[\/\\]/, "")
+          .replace(/\?.*/, '')
+          : selections[i];
+        html += '<a class="cross" href="'
+          + mkdru.removeLimit(facet, selections[i])
+          + '"><strong>'+name+'</strong></a><span> (0)</span><br/>';
+      }
+    }
+  }
+  return html;
+};