Merge branch 'master' into urlstate
[mkws-moved-to-github.git] / src / mkws-widget-main.js
index cd08b2b..355d8d7 100644 (file)
@@ -139,7 +139,24 @@ mkws.registerWidgetType('records', function() {
             hit.renderedDetails = team.renderDetails(team.currentRecordData());
           } 
         }
+
+        var urls = hit['md-electronic-url'];
+        var bestLink = null;
+        var otherLinks = [];
+        for (var j = 0; j < urls.length; j++) {
+          var url = urls[j];
+          if (!url.match(/^(https?:)?\/\//)) {
+            that.warn("link '" + url + "' is not a valid URL");
+          } else if (!bestLink) {
+            bestLink = url;
+          } else {
+            otherLinks.push(url);
+          }
+        }
+        hit.bestLink = bestLink;
+        hit.otherLinks = otherLinks;
       }
+
       var template = team.loadTemplate(that.config.template || "records");
       var summaryPartial = team.loadTemplate(that.config['summary-template'] || "summary");
       var tdata = $.extend({}, {"hits": m_dataToRedraw.hits}, that.config.template_vars);
@@ -159,7 +176,6 @@ mkws.registerWidgetType('records', function() {
 
   var m_timer;
   this.node.mousemove(function() {
-    //that.debug("freezing records");
     var op = that.config.freeze_opacity;
     if (op !== undefined) { that.node.css('opacity', op); }
     m_frozen = true;
@@ -169,7 +185,6 @@ mkws.registerWidgetType('records', function() {
 
   function unfreezeRecordDisplay() {
     clearTimeout(m_timer);
-    //that.debug("unfreezing records");
     that.node.css('opacity', 1);
     m_frozen = false;
     refreshRecordData();
@@ -217,10 +232,7 @@ mkws.registerWidgetType('sort', function() {
   var that = this;
 
   this.node.change(function() {
-    that.team.set_sortOrder(that.node.val());
-    if (that.team.submitted()) {
-      that.team.reShow();
-    }
+    window.location.href = '#' + that.team.urlFragment({ sort: that.node.val() });
     return false;
   });
 });
@@ -230,10 +242,7 @@ mkws.registerWidgetType('per-page', function() {
   var that = this;
 
   this.node.change(function() {
-    that.team.set_perpage(that.node.val());
-    if (that.team.submitted()) {
-      that.team.reShow();
-    }
+    window.location.href = '#' + that.team.urlFragment({ size: that.node.val() });
     return false;
   });
 });