mirror of
https://github.com/rr-/szurubooru.git
synced 2025-07-17 08:26:24 +00:00
Improved error handling in pager presenters
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user