Pager rewrite for bookmark/history support.
[mkdru-moved-to-drupal.org.git] / mkdru.theme.js
index a45ad75..7e660f6 100644 (file)
@@ -1,8 +1,8 @@
-Drupal.theme.prototype.mkdruResult = function(hit, num) {
+Drupal.theme.prototype.mkdruResult = function(hit, num, detailLink) {
   var html = "";
   html += '<li class="mkdru-result" id="rec_' + hit.recid + '" >'
           + '<span>' + num + '. </span>'
-          + '<a href="#" class="mkdru-result-title">'
+          + '<a href="' + detailLink + '" class="mkdru-result-title">'
           + hit["md-title"] + '</a> ';
   if (hit["md-title-remainder"] !== undefined) {
     html += '<span class="mkdru-result-title-remainder">' 
@@ -18,7 +18,7 @@ Drupal.theme.prototype.mkdruResult = function(hit, num) {
 };
 
 Drupal.theme.prototype.mkdruDetail = function(data) {
-  var html = '<div class="html" id="det_'+data.recid+'"><table>';
+  var html = '<table id=det_"' + data.recid +'>';
   if (data["md-title"] != undefined) {
     html += '<tr><td><b>Title</b></td><td><b>:</b> '+data["md-title"];
   if (data["md-title-remainder"] !== undefined) {
@@ -40,50 +40,56 @@ Drupal.theme.prototype.mkdruDetail = function(data) {
   if (data["location"][0]["@name"] != undefined)
     html += '<tr><td><b>Location</b></td><td><b>:</b> ' + data["location"][0]["@name"] + " (" +data["location"][0]["@id"] + ")" + '</td></tr>';
   html += '</table></div>';
-  html += '<a class="mkdru-result-back">Return to result list...</a>';
+  html += '<a class="mkdru-detail-back">Return to result list...</a>';
   return html;
 };
 
-Drupal.theme.prototype.mkdruPager = function (data, curPage, pages) {
-    var onsides = 6;
-
-    var firstClkbl = ( curPage - onsides > 0 ) 
-        ? curPage - onsides
-        : 1;
-
-    var lastClkbl = firstClkbl + 2*onsides < pages
-        ? firstClkbl + 2*onsides
-        : pages;
-
-    var prev = '<span id="prev">&#60;&#60; Prev</span> | ';
-    if (curPage > 1)
-        var prev = '<a href="#" class="mkdru-prev">'
-        +'&#60;&#60; Prev</a> | ';
-
-    var middle = '';
-    for(var i = firstClkbl; i <= lastClkbl; i++) {
-        var numLabel = i;
-        if(i == curPage)
-            numLabel = '<b>' + i + '</b>';
+/**
+ * Pager theme
+ *
+ * @param pages
+ *   Array of hrefs for page links.
+ * @param start
+ *   Number of first page.
+ * @param current
+ *   Number of current page.
+ * @param total
+ *   Total number of pages.
+ * @param prev
+ *   Href for previous page.
+ * @param next
+ *   Href for next page.
+ */
+Drupal.theme.prototype.mkdruPager = function (pages, start, current, total, prev, next) {
+  var html = "";
+  if (prev) 
+    html += '<a href="' + prev + '" class="mkdru-pager-prev">&#60;&#60; '
+            + Drupal.t("Prev") + '</a> | ';
+  else
+    html += '<span class="mkdru-pager-prev">&#60;&#60; ' + Drupal.t("Prev")
+            + '</span> | ';
 
-        middle += '<a href="#" onclick="mkdru.showPage(' + i + ')"> '
-            + numLabel + ' </a>';
-    }
+  if (start > 1)
+    html += '...';
 
-    var next = ' | <span id="next">Next &#62;&#62;</span>';
-    if (pages - curPage > 0)
-    var next = ' | <a href="#" class="mkdru-next">'
-        +'Next &#62;&#62;</a>';
+  for (var i = 0; i < pages.length; i++) {
+    if (i + start == current)
+      html += ' <span class="mkdru-pager-current">' + (i + start) + '</span>';
+    else
+      html += ' <a href="' + pages[i] + '">' + (i + start) + '</a>';
+  }
 
-    predots = '';
-    if (firstClkbl > 1)
-        predots = '...';
+  if (total > i)
+    html += ' ...';
 
-    postdots = '';
-    if (lastClkbl < pages)
-        postdots = '...';
+  if (next)
+    html += ' | <a href="' + next + '" class="mkdru-pager-next">'
+      + Drupal.t("Next") + ' &#62;&#62;</a>';
+  else
+    html += ' | <span class="mkdru-pager-next">' + Drupal.t("Next")
+            + ' &#62;&#62;</span>';
 
-    return (prev + predots + middle + postdots + next);
+  return html;
 };
 
 Drupal.theme.prototype.mkdruTerm = function (term, freq, linkClass, id) {