X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-widget-main.js;h=367ec4690bdc881f4f287ef9410a8bc8db1923fd;hb=fcd300157c2acf190002c1808b97139eda16b6c9;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..367ec46 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,29 @@ mkws.registerWidgetType('records', function() { hit.renderedDetails = team.renderDetails(team.currentRecordData()); } } + + var urls = hit['md-electronic-url']; + that.warn("urls = " + mkws.$.toJSON(urls)); + var bestLink = null; + var otherLinks = []; + for (var j = 0; j < urls.length; j++) { + var url = urls[j]; + that.warn("url #" + (j+1) + " = " + url); + if (!bestLink && url.match(/^(https?:)?\/\//)) { + mkws.debug("'" + url + "' *is* a URL"); + bestLink = url; + } else if (bestLink) { + mkws.debug("'" + url + "' not tested"); + otherLinks.push(url); + } else { + mkws.debug("'" + url + "' is not a URL"); + 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 +170,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 +189,6 @@ mkws.registerWidgetType('records', function() { function unfreezeRecordDisplay() { clearTimeout(m_timer); - that.info("refreshing records"); that.node.css('opacity', 1); m_frozen = false; refreshRecordData();