diff --git a/public_html/js/Presenters/MessagePresenter.js b/public_html/js/Presenters/MessagePresenter.js
index c71439e5..26a8ddc9 100644
--- a/public_html/js/Presenters/MessagePresenter.js
+++ b/public_html/js/Presenters/MessagePresenter.js
@@ -1,7 +1,11 @@
var App = App || {};
App.Presenters = App.Presenters || {};
-App.Presenters.MessagePresenter = function(jQuery) {
+App.Presenters.MessagePresenter = function(_, jQuery) {
+
+ var options = {
+ instant: false
+ };
function showInfo($el, message) {
return showMessage($el, 'info', message);
@@ -12,11 +16,16 @@ App.Presenters.MessagePresenter = function(jQuery) {
}
function hideMessages($el) {
- $el.children('.message').each(function() {
- jQuery(this).slideUp('fast', function() {
- jQuery(this).remove();
+ var $messages = $el.children('.message');
+ if (options.instant) {
+ $messages.each(function() {
+ jQuery(this).slideUp('fast', function() {
+ jQuery(this).remove();
+ });
});
- });
+ } else {
+ $messages.remove();
+ }
}
function showMessage($el, className, message) {
@@ -24,18 +33,22 @@ App.Presenters.MessagePresenter = function(jQuery) {
$messageDiv.addClass('message');
$messageDiv.addClass(className);
$messageDiv.html(message);
- $messageDiv.hide();
+ if (!options.instant) {
+ $messageDiv.hide();
+ }
$el.append($messageDiv);
- $messageDiv.slideDown('fast');
+ if (!options.instant) {
+ $messageDiv.slideDown('fast');
+ }
return $messageDiv;
}
- return {
+ return _.extend(options, {
showInfo: showInfo,
showError: showError,
hideMessages: hideMessages,
- };
+ });
};
-App.DI.register('messagePresenter', ['jQuery'], App.Presenters.MessagePresenter);
+App.DI.register('messagePresenter', ['_', 'jQuery'], App.Presenters.MessagePresenter);
diff --git a/public_html/js/Presenters/PagerPresenter.js b/public_html/js/Presenters/PagerPresenter.js
index 840ce2bf..466a9081 100644
--- a/public_html/js/Presenters/PagerPresenter.js
+++ b/public_html/js/Presenters/PagerPresenter.js
@@ -11,10 +11,12 @@ App.Presenters.PagerPresenter = function(
router,
pager,
presenterManager,
+ messagePresenter,
browsingSettings) {
var $target;
var $pageList;
+ var $messages;
var targetContent;
var endlessScroll = browsingSettings.getSettings().endlessScroll;
var scrollInterval;
@@ -23,12 +25,12 @@ App.Presenters.PagerPresenter = function(
var baseUri;
var updateCallback;
- var failCallback;
function init(args, loaded) {
baseUri = args.baseUri;
updateCallback = args.updateCallback;
- failCallback = args.failCallback;
+
+ messagePresenter.instant = true;
$target = args.$target;
targetContent = jQuery(args.$target).html();
@@ -120,11 +122,13 @@ App.Presenters.PagerPresenter = function(
}
function retrieve() {
+ messagePresenter.hideMessages($messages);
showSpinner();
return promise.make(function(resolve, reject) {
pager.retrieve()
.then(function(response) {
+ showPageList();
updateCallback(response, forceClear || !endlessScroll);
forceClear = false;
@@ -133,11 +137,11 @@ App.Presenters.PagerPresenter = function(
attachNextPageLoader();
resolve();
}).fail(function(response) {
- if (typeof(failCallback) !== 'undefined') {
- failCallback(response);
- } else {
- console.log(new Error(response.json && response.json.error || response));
- }
+ clearContent();
+ hidePageList();
+ hideSpinner();
+ messagePresenter.showError($messages, response.json && response.json.error || response);
+
reject();
});
});
@@ -163,6 +167,14 @@ App.Presenters.PagerPresenter = function(
}, 100);
}
+ function showPageList() {
+ $pageList.show();
+ }
+
+ function hidePageList() {
+ $pageList.hide();
+ }
+
function refreshPageList() {
var pages = pager.getVisiblePages();
$pageList.empty();
@@ -191,6 +203,7 @@ App.Presenters.PagerPresenter = function(
function render() {
$target.html(template({originalHtml: targetContent}));
+ $messages = $target.find('.pagination-content');
$pageList = $target.find('.page-list');
if (endlessScroll) {
$pageList.remove();
@@ -208,4 +221,4 @@ App.Presenters.PagerPresenter = function(
};
-App.DI.register('pagerPresenter', ['_', 'jQuery', 'util', 'promise', 'api', 'keyboard', 'router', 'pager', 'presenterManager', 'browsingSettings'], App.Presenters.PagerPresenter);
+App.DI.register('pagerPresenter', ['_', 'jQuery', 'util', 'promise', 'api', 'keyboard', 'router', 'pager', 'presenterManager', 'messagePresenter', 'browsingSettings'], App.Presenters.PagerPresenter);
diff --git a/public_html/js/Presenters/PostListPresenter.js b/public_html/js/Presenters/PostListPresenter.js
index 6188f2e3..5a11e998 100644
--- a/public_html/js/Presenters/PostListPresenter.js
+++ b/public_html/js/Presenters/PostListPresenter.js
@@ -9,8 +9,7 @@ App.Presenters.PostListPresenter = function(
auth,
keyboard,
pagerPresenter,
- topNavigationPresenter,
- messagePresenter) {
+ topNavigationPresenter) {
var KEY_RETURN = 13;
@@ -43,11 +42,6 @@ App.Presenters.PostListPresenter = function(
updateCallback: function(data, clear) {
renderPosts(data.entities, clear);
},
- failCallback: function(response) {
- $el.empty();
- messagePresenter.showError($el, response.json && response.json.error || response);
- loaded();
- }
},
function() {
reinit(args, function() {});
@@ -118,4 +112,4 @@ App.Presenters.PostListPresenter = function(
};
-App.DI.register('postListPresenter', ['_', 'jQuery', 'util', 'promise', 'auth', 'keyboard', 'pagerPresenter', 'topNavigationPresenter', 'messagePresenter'], App.Presenters.PostListPresenter);
+App.DI.register('postListPresenter', ['_', 'jQuery', 'util', 'promise', 'auth', 'keyboard', 'pagerPresenter', 'topNavigationPresenter'], App.Presenters.PostListPresenter);
diff --git a/public_html/js/Presenters/UserListPresenter.js b/public_html/js/Presenters/UserListPresenter.js
index ee17d88e..9dc89837 100644
--- a/public_html/js/Presenters/UserListPresenter.js
+++ b/public_html/js/Presenters/UserListPresenter.js
@@ -8,8 +8,7 @@ App.Presenters.UserListPresenter = function(
promise,
auth,
pagerPresenter,
- topNavigationPresenter,
- messagePresenter) {
+ topNavigationPresenter) {
var $el = jQuery('#content');
var listTemplate;
@@ -36,11 +35,6 @@ App.Presenters.UserListPresenter = function(
updateCallback: function(data, clear) {
renderUsers(data.entities, clear);
},
- failCallback: function(response) {
- $el.empty();
- messagePresenter.showError($el, response.json && response.json.error || response);
- loaded();
- }
},
function() {
reinit(args, function() {});
@@ -104,4 +98,4 @@ App.Presenters.UserListPresenter = function(
};
-App.DI.register('userListPresenter', ['_', 'jQuery', 'util', 'promise', 'auth', 'pagerPresenter', 'topNavigationPresenter', 'messagePresenter'], App.Presenters.UserListPresenter);
+App.DI.register('userListPresenter', ['_', 'jQuery', 'util', 'promise', 'auth', 'pagerPresenter', 'topNavigationPresenter'], App.Presenters.UserListPresenter);