X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmkws-widget-main.js;h=355d8d765f92c5d89fc57fb69205b3ca18793d47;hb=refs%2Fheads%2Furlstate;hp=3986c16fa21b04ac72796964cc3841cbf7f6975c;hpb=7610fdb0a2ebc53d9e9f960bbd9f2c806ec3d738;p=mkws-moved-to-github.git diff --git a/src/mkws-widget-main.js b/src/mkws-widget-main.js index 3986c16..355d8d7 100644 --- a/src/mkws-widget-main.js +++ b/src/mkws-widget-main.js @@ -73,19 +73,19 @@ mkws.registerWidgetType('pager', function() { if (firstClkbl > 1) output.morePrev = true; if (lastClkbl < pages) output.moreNext = true; - if (currentPage > 1) output.prevClick = "mkws.pagerPrev(\'" + teamName + "\');"; + if (currentPage > 1) output.prevHref = '#' + that.team.urlFragment({ page: currentPage-1 }); output.pages = []; for(var i = firstClkbl; i <= lastClkbl; i++) { var o = {}; o.number = i; if (i !== currentPage) { - o.click = "mkws.showPage(\'" + teamName + "\', " + i + ");"; + o.href = '#' + that.team.urlFragment({ page: i }); } output.pages.push(o); } - if (pages - currentPage > 0) output.nextClick = "mkws.pagerNext(\'" + teamName + "\')"; + if (pages - currentPage > 0) output.nextHref = '#' + that.team.urlFragment({ page: currentPage+1 }); var template = that.team.loadTemplate(that.config.template || "pager"); that.node.html(template(output)); @@ -113,21 +113,20 @@ mkws.registerWidgetType('details', function() { mkws.registerWidgetType('records', function() { var that = this; var team = this.team; - var m_data; - var m_needRedraw = false; - 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.stop(); that.node.css('opacity', 1); - if (m_needRedraw) { - for (var i = 0; i < m_data.hits.length; i++) { - var hit = m_data.hits[i]; + if (m_dataToRedraw) { + for (var i = 0; i < m_dataToRedraw.hits.length; i++) { + var hit = m_dataToRedraw.hits[i]; hit.detailLinkId = team.recordElementId(hit.recid[0]); hit.detailClick = "mkws.showDetails('" + team.name() + "', '" + hit.recid[0] + "');return false;"; hit.containerClass = "mkws-summary mkwsSummary mkws-team-" + team.name(); @@ -140,38 +139,57 @@ 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_data.hits}, that.config.template_vars); + var tdata = $.extend({}, {"hits": m_dataToRedraw.hits}, that.config.template_vars); that.node.html(template(tdata, {"partials":{"summary":summaryPartial}})); } - m_needRedraw = false; + m_dataToRedraw = null; } - function setRecordData(data) { - m_data = data; - m_needRedraw = true; + var m_frozen = false; + this.team.queue("records").subscribe(function(data) { + m_dataToRedraw = data; if (!m_frozen) { refreshRecordData(); } - } + }); - this.team.queue("records").subscribe(setRecordData); - - this.node.mouseenter(function() { - that.info("freezing display records"); - that.node.css('opacity', 0.5); + var m_timer; + this.node.mousemove(function() { + 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); }); - this.node.mouseleave(function() { - that.info("refreshing records"); + function unfreezeRecordDisplay() { + clearTimeout(m_timer); that.node.css('opacity', 1); m_frozen = false; refreshRecordData(); - }); + } + this.node.mouseleave(unfreezeRecordDisplay); that.autosearch(); }); @@ -214,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; }); }); @@ -227,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; }); });