X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-widget-main.js;h=b218a958720e80a6a3060cdb304448dfa06e6d0e;hb=327ec51b8ff7cd05c7470765de6ee29b1bb2ee0f;hp=e264ebacb1c5ba22c71a828d16db8c91c1a20e2f;hpb=43a735e20bc1f9de6943a11b432fc03094588ce5;p=mkws-moved-to-github.git diff --git a/src/mkws-widget-main.js b/src/mkws-widget-main.js index e264eba..b218a95 100644 --- a/src/mkws-widget-main.js +++ b/src/mkws-widget-main.js @@ -138,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 +168,17 @@ mkws.registerWidgetType('records', function() { } var m_frozen = false; - function setRecordData(data) { + 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();