Remove redundant 'show' when query is submitted.
[mkdru-moved-to-drupal.org.git] / mkdru.client.js
index a672f21..fff8247 100644 (file)
@@ -18,7 +18,8 @@ var mkdru = {
     perpage: 20,
     sort: 'relevance',
     filter: null,
-    query:null
+    query:null,
+    recid:null
   },
   state: {}
 };
@@ -34,7 +35,9 @@ if (!$.isArray) $.isArray = function(obj) {
 
 // pz2.js event handlers:
 mkdru.pz2Init = function () {
-  if (mkdru.state.query) mkdru.triggerSearch();
+  if (mkdru.state.query) {
+    mkdru.triggerSearch();
+  }
   //mkdru.pz2.stat();
   //mkdru.pz2.bytarget();
 };
@@ -56,7 +59,12 @@ mkdru.pz2Show = function (data) {
     );
   }
   $('.mkdru-result-list').html(html);
-  $('.mkdru-results').show();
+  if (mkdru.state.recid) {
+    mkdru.pz2.record(mkdru.state.recid);
+  }
+  else {
+    $('.mkdru-results').show();
+  }
 };
 
 mkdru.pz2Status = function (data) {
@@ -164,14 +172,13 @@ mkdru.uiFromState = function () {
 };
 
 mkdru.hashChange = function () {
-  var hash = $.deparam.fragment();
+  mkdru.stateFromHash();
   // Request for details
-  if (typeof(hash.recid) !== "undefined") {
-    mkdru.pz2.record(hash.recid);
+  if (mkdru.state.recid) {
+    mkdru.pz2.record(mkdru.state.recid);
   }
   // Other internal link
   else {
-    mkdru.stateFromObject($.deparam.fragment());
     mkdru.pz2.showPage(mkdru.state.page-1);
     $('.mkdru-detail').hide();
     $('.mkdru-results').show();
@@ -207,7 +214,6 @@ mkdru.pollDropDowns = function () {
   if (!mkdru.submitted) return false;
   mkdru.resetPage();
   mkdru.hashFromState();
-  mkdru.pz2.show(0, mkdru.state.perpage, mkdru.state.sort);
   return false;
 };
 
@@ -232,6 +238,10 @@ mkdru.limitTarget = function (id, name) {
 };
 
 mkdru.generatePager = function () {
+ // make sure page param is a number, otherwise pageing frwd will be broken
+  if (typeof mkdru.state.page == "string") {
+    mkdru.state.page = Number(mkdru.state.page);
+  }
   var total = Math.ceil(mkdru.totalRec / mkdru.state.perpage);
   var first = (mkdru.state.page - mkdru.pagerRange > 0)
       ? mkdru.state.page - mkdru.pagerRange : 1;
@@ -264,11 +274,6 @@ mkdru.resetPage = function () {
   mkdru.totalRec = 0;
 };
 
-mkdru.showPage = function (pageNum) {
-  mkdru.state.page = pageNum;
-  mkdru.pz2.showPage(pageNum-1);
-};
-
 
 
 // wait until the DOM is ready, bind events
@@ -277,8 +282,14 @@ $(document).ready(function () {
   $(window).bind( 'hashchange', mkdru.hashChange);
   $('.mkdru-search').bind('submit', mkdru.submitQuery);
   $('.mkdru-search input:text').attr('value', '');
-  $('.mkdru-perpage').bind('change', function () { mkdru.pollDropDowns() });
-  $('.mkdru-sort').bind('change', function () { mkdru.pollDropDowns() });
+  $('.mkdu-perpage').bind('change', function () { 
+    mkdru.pollDropDowns();
+    mkdru.pz2.show(0, mkdru.state.perpage, mkdru.state.sort);
+  });
+  $('.mkdru-sort').bind('change', function () {
+    mkdru.pollDropDowns();
+    mkdru.pz2.show(0, mkdru.state.perpage, mkdru.state.sort);
+  });
 
   mkdru.pz2 = new pz2( { "onshow": mkdru.pz2Show,
               "showtime": 500, //each timer (show, stat, term, bytarget) can be specified this way
@@ -305,7 +316,11 @@ $(document).ready(function () {
 
   if (mkdru.usesessions) {
     mkdru.pz2.init();
-  } else if (mkdru.state.query) {
-    mkdru.triggerSearch(); 
+  }
+  else if (mkdru.state.recid) {
+    mkdru.pz2.record(mkdru.state.recid);
+  }
+  else if (mkdru.state.query) {
+    mkdru.triggerSearch();
   }
 });