Show/hide facet container when some/no facets
[mkdruding2.git] / mkdruding2.js
index b29f49d..82af142 100644 (file)
@@ -1,10 +1,13 @@
 Drupal.theme.mkdruResult = function(hit, num, detailLink) {
+  var link = choose_url(hit);
+  if (!link) link = choose_url(hit['location'][0]);
   var html = "";
   html += '<li class="search-result" id="rec_' + hit.recid + '" >'
-    + '<h3 class="title">'
-    + '<a href="' + hit['location'][0]['md-electronic-url'] 
-    + '" target="_blank" >'
-    + hit["md-title"] + '</a></h3>';
+    + '<h3 class="title">';
+  if (link) html += '<a href="'+link+'" target="_blank" >';
+  html += hit["md-title"];
+  if (link) html += '</a>';
+  html += '</h3>';
   html += '<div class="search-snippet-info">'
      + '<p class="search-snippet"></p>'
      + '<div class="ting-object clearfix">'
@@ -34,7 +37,7 @@ Drupal.theme.mkdruResult = function(hit, num, detailLink) {
   return html;
 };
 
-Drupal.theme.mkdruFacetContainer = function (facetsData, facetsCfg) {
+Drupal.theme.mkdruFacetContainer = function (facetsCfg) {
   var fs = [];
   for (var fname in facetsCfg) {
     facetsCfg[fname].originalKey = fname;
@@ -44,29 +47,54 @@ Drupal.theme.mkdruFacetContainer = function (facetsData, facetsCfg) {
   var html = '<h2>Facet browser</h2><div class="content">';
   for (var i=0; i<fs.length; i++) {
     var f = fs[i];
+    //not display
+    html += '<div id="mkdru-container-'+f.originalKey
+      +'" style="display: none;">';
     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 class="mkdru-facet-'+f.originalKey+' form-checkboxes"/>';
+    html += '</div>';
+    html += '</fieldset>';
     html += '</div>';
-    html += '</fieldset>'
   }
   html += '</div>';
   return html;
 };
 
-Drupal.theme.mkdruFacet = function (terms, facet, max) {
+Drupal.theme.mkdruFacet = function (terms, facet, max, selections) {
+  jQuery('#mkdru-container-'+facet).hide();
   var html = "";
+  var show = false;
   for (var i = 0; i < terms.length && i < max; i++ ) {
+    show = true;
     var term = terms[i];
-    html += '<a href="'+term.hashQuery+'"';
-    if (term.selected) html += ' class="cross"><strong';
-    html += '>'+terms[i].name; 
-    if (term.selected) html += "</strong>";
-    html += '</a><span> (' + terms[i].freq 
-      + ')</span><br/>';
-
+    var id = term.name.split(/w+/).join("-").toLowerCase();
+    html += '<div class="form-item form-type-checkbox">';
+    html += '<input type="checkbox" id="'+id+'" onclick="window.location=\''
+      +term.toggleLink+'\'; return true;" class="form-checkbox"';
+    if (term.selected) html += ' checked="checked"';
+    html += '/><label class="option" for="'+id+'">'+term.name; 
+    html += '<span> ('+term.freq+')</span></label></div>';
+  }
+  if (terms.length == 0 && selections && selections.length) {
+    for (var i=0; i<selections.length; i++) {
+      show = true;
+      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 += '<div class="form-item form-type-checkbox">';
+        html += '<input type="checkbox" checked="checked" id="'+name+'" '
+          +'onclick="window.location=\''+mkdru.removeLimit(facet, selections[i])
+          +'\';return true;" class="form-checkbox"/><label class="option" for="'
+          +name+'">'+name+'</a><span> (0)</span></label></div>';
+      }
+    }
   }
+  if (show) jQuery('#mkdru-container-'+facet).show();
   return html;
 };