X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-widget-main.js;h=b218a958720e80a6a3060cdb304448dfa06e6d0e;hb=327ec51b8ff7cd05c7470765de6ee29b1bb2ee0f;hp=017ce65c109fdf0882f00cf064014b9401efe149;hpb=ec8afe26d4ebd3b3097515c42b19a356c4481a39;p=mkws-moved-to-github.git diff --git a/src/mkws-widget-main.js b/src/mkws-widget-main.js index 017ce65..b218a95 100644 --- a/src/mkws-widget-main.js +++ b/src/mkws-widget-main.js @@ -113,14 +113,13 @@ mkws.registerWidgetType('details', function() { mkws.registerWidgetType('records', function() { var that = this; var team = this.team; - var m_dataToRedraw = null; - var m_frozen = false; this.team.queue("searchtriggered").subscribe(function() { var op = that.config.newsearch_opacity; if (op !== undefined) { that.node.fadeTo(500, op); } }); + var m_dataToRedraw = null; function refreshRecordData() { that.node.css('opacity', 1); @@ -139,7 +138,26 @@ mkws.registerWidgetType('records', function() { hit.renderedDetails = team.renderDetails(team.currentRecordData()); } } + + var urls = hit['md-electronic-url']; + if (urls) { + 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); @@ -149,19 +167,18 @@ mkws.registerWidgetType('records', function() { m_dataToRedraw = null; } - function setRecordData(data) { + var m_frozen = false; + this.team.queue("records").subscribe(function(data) { m_dataToRedraw = data; if (!m_frozen) { refreshRecordData(); } - } - - this.team.queue("records").subscribe(setRecordData); + }); var m_timer; this.node.mousemove(function() { - that.info("freezing display records"); - that.node.css('opacity', 0.5); + var op = that.config.freeze_opacity; + if (op !== undefined) { that.node.css('opacity', op); } m_frozen = true; clearTimeout(m_timer); m_timer = setTimeout(unfreezeRecordDisplay, 1000); @@ -169,7 +186,6 @@ mkws.registerWidgetType('records', function() { function unfreezeRecordDisplay() { clearTimeout(m_timer); - that.info("refreshing records"); that.node.css('opacity', 1); m_frozen = false; refreshRecordData();