From fafa8a22ee4e849538dacd01c48e7c283a52a70b Mon Sep 17 00:00:00 2001 From: Tim Hostetler Date: Thu, 5 Oct 2017 13:48:41 -0400 Subject: [PATCH 1/2] Added Fix For Broken Redirect --- src/js/page_managers/templates/results-page-layout.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/page_managers/templates/results-page-layout.html b/src/js/page_managers/templates/results-page-layout.html index c9c388565..2bb64f7d7 100644 --- a/src/js/page_managers/templates/results-page-layout.html +++ b/src/js/page_managers/templates/results-page-layout.html @@ -36,7 +36,7 @@

Filters for the Current Search

-
+
From 088a42a92a2e8c05cd73682c77337ca125ca7978 Mon Sep 17 00:00:00 2001 From: Tim Hostetler Date: Thu, 5 Oct 2017 16:08:27 -0400 Subject: [PATCH 2/2] Remove Error Message, Kill Widget on Error --- src/js/widgets/metrics/widget.js | 27 ++++++++------------------- src/js/wraps/paper_metrics.js | 10 ++++++++++ 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/js/widgets/metrics/widget.js b/src/js/widgets/metrics/widget.js index 8a79c298a..43a9fbc88 100644 --- a/src/js/widgets/metrics/widget.js +++ b/src/js/widgets/metrics/widget.js @@ -1182,8 +1182,12 @@ define([ function onResponse() { //the promise is used by paper metrics widget - d.resolve(); - this.processMetrics.apply(this, arguments); + try { + this.processMetrics.apply(this, arguments); + d.resolve(); + } catch (e) { + d.reject(); + } } onResponse = onResponse.bind(this); @@ -1211,24 +1215,9 @@ define([ response = response.attributes ? response.attributes : response; // the response might contain an error - if ((response.Error && response.Error.indexOf('Unable to get results') > -1) || (response.status === 500)) { + if (response.Error || response.status === 500) { this.closeWidget(); - - var pubsub = null; - try { - pubsub = this.getPubSub(); - } catch (e) { - console.error(e); - } - - if (pubsub) { - pubsub.publish(pubsub.ALERT, new ApiFeedback({ - code: ApiFeedback.CODES.ALERT, - msg: 'Unfortunately, the metrics service returned error (it affects only some queries). Please try with different search parameters.', - modal: true - })); - } - return; + throw new Error('Metrics Service Error'); } if (response["basic stats"]["number of papers"] === 1){ diff --git a/src/js/wraps/paper_metrics.js b/src/js/wraps/paper_metrics.js index d40463755..79c167cd0 100644 --- a/src/js/wraps/paper_metrics.js +++ b/src/js/wraps/paper_metrics.js @@ -26,11 +26,21 @@ define([ var self = this; this.containerModel.set("title", data.title); this.getMetrics([bibcode]).done(function() { + + // Everything worked, show the widget self.trigger('page-manager-event', 'widget-ready', {isActive: true, widget : self}); if (self._waiting) { self.onShow(); self._waiting = false; } + }).fail(function () { + + // if the metrics fail, kill it + self.trigger('page-manager-event', 'widget-ready', { + isActive: false, + widget : self + }); + self.destroy(); }); },