Add theme function to draw facet container
authorJakub Skoczen <jakub@indexdata.dk>
Wed, 2 Mar 2011 15:14:47 +0000 (16:14 +0100)
committerJakub Skoczen <jakub@indexdata.dk>
Mon, 7 Mar 2011 09:40:31 +0000 (10:40 +0100)
Also add elements to control facet dislayName and order.

mkdru.client.js
mkdru.theme.js

index c73e875..fdb54e6 100644 (file)
@@ -8,21 +8,28 @@ var mkdru = {
   totalRec: 0,
   pagerRange: 6,
   pazpar2Path: Drupal.settings.mkdru.pz2_path,
+  facetContainerSelector: Drupal.settings.mkdru.facetContainerSelector,
   // Facets
   facets: {
     source: {
+      displayName: Drupal.settings.mkdru.source_dname || "Source",
+      orderWeight: Drupal.settings.mkdru.source_weight || 1,
       pz2Name: 'xtargets',
-      max: Drupal.settings.mkdru.source_max
+      max: Drupal.settings.mkdru.source_max || 10
     },
     subject: {
+      displayName: Drupal.settings.mkdru.subject_dname || "Subject",
+      orderWeight: Drupal.settings.mkdru.source_weight || 2,
       pz2Name: 'subject',
-      max: Drupal.settings.mkdru.subject_max,
+      max: Drupal.settings.mkdru.subject_max || 10,
       multiLimit: true,
       limiter: 'su'
     },
     author: {
+      displayName: Drupal.settings.mkdru.author_dname || "Author",
+      orderWeight: Drupal.settings.mkdru.source_weight || 3,
       pz2Name: 'author',
-      max: Drupal.settings.mkdru.author_max,
+      max: Drupal.settings.mkdru.author_max || 10,
       multiLimit: false,
       limiter: 'au'
     }
@@ -116,6 +123,11 @@ mkdru.pz2Status = function (data) {
 };
 
 mkdru.pz2Term = function (data) {
+  // if signaled, prepare container client-side
+  if (mkdru.facetContainerSelector) {
+    $(mkdru.facetContainerSelector).html(Drupal.theme('mkdruFacetContainer',
+      data, mkdru.facets));
+  }
   for (var facet in mkdru.facets) {
     // facet is limited
     if (mkdru.state['limit_' + facet]) {
@@ -409,4 +421,4 @@ $(document).ready(function () {
     );
   }
 });
-})(jQuery);
\ No newline at end of file
+})(jQuery);
index 745106e..8051e40 100644 (file)
@@ -111,6 +111,7 @@ Drupal.theme.prototype.mkdruStatus = function(activeClients, clients) {
 };
 
 Drupal.theme.prototype.mkdruFacet = function (terms, facet, max) {
+  debugger;
   var html = "";
   for (var i = 0; i < terms.length && i < max; i++ ) {
     html += '<a href="';
@@ -128,4 +129,8 @@ Drupal.theme.prototype.mkdruFacetLimit = function (term, link) {
     return '<p>' + Drupal.t('Only displaying ') + term.name + '</p>'
       + '<p><a href="' + link + '">' + Drupal.t('Show all...') + '</a></p>';
   }
-};
\ No newline at end of file
+};
+
+Drupal.theme.prototype.mkdruFacetContainer = function (facets, facetCfg) {
+  return "";
+};