Fixed nprogress nesting
This commit is contained in:
parent
25080fd977
commit
88dfc0eb96
4 changed files with 42 additions and 10 deletions
|
@ -106,6 +106,7 @@
|
||||||
<script type="text/javascript" src="/js/Presenters/PagerPresenter.js"></script>
|
<script type="text/javascript" src="/js/Presenters/PagerPresenter.js"></script>
|
||||||
<script type="text/javascript" src="/js/Presenters/MessagePresenter.js"></script>
|
<script type="text/javascript" src="/js/Presenters/MessagePresenter.js"></script>
|
||||||
<script type="text/javascript" src="/js/Presenters/HttpErrorPresenter.js"></script>
|
<script type="text/javascript" src="/js/Presenters/HttpErrorPresenter.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/Presenters/ProgressPresenter.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="/js/Presenters/LoginPresenter.js"></script>
|
<script type="text/javascript" src="/js/Presenters/LoginPresenter.js"></script>
|
||||||
<script type="text/javascript" src="/js/Presenters/LogoutPresenter.js"></script>
|
<script type="text/javascript" src="/js/Presenters/LogoutPresenter.js"></script>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
var App = App || {};
|
var App = App || {};
|
||||||
|
|
||||||
App.PresenterManager = function(jQuery, promise, topNavigationPresenter, keyboard, nprogress) {
|
App.PresenterManager = function(jQuery, promise, topNavigationPresenter, keyboard, progress) {
|
||||||
|
|
||||||
var lastContentPresenter = null;
|
var lastContentPresenter = null;
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ App.PresenterManager = function(jQuery, promise, topNavigationPresenter, keyboar
|
||||||
}
|
}
|
||||||
|
|
||||||
function switchContentPresenter(presenter, args) {
|
function switchContentPresenter(presenter, args) {
|
||||||
nprogress.start();
|
progress.start();
|
||||||
|
|
||||||
if (lastContentPresenter === null || lastContentPresenter.name !== presenter.name) {
|
if (lastContentPresenter === null || lastContentPresenter.name !== presenter.name) {
|
||||||
if (lastContentPresenter !== null && lastContentPresenter.deinit) {
|
if (lastContentPresenter !== null && lastContentPresenter.deinit) {
|
||||||
|
@ -24,10 +24,10 @@ App.PresenterManager = function(jQuery, promise, topNavigationPresenter, keyboar
|
||||||
keyboard.reset();
|
keyboard.reset();
|
||||||
topNavigationPresenter.changeTitle(null);
|
topNavigationPresenter.changeTitle(null);
|
||||||
topNavigationPresenter.focus();
|
topNavigationPresenter.focus();
|
||||||
presenter.init.call(presenter, args, nprogress.done);
|
presenter.init.call(presenter, args, progress.done);
|
||||||
lastContentPresenter = presenter;
|
lastContentPresenter = presenter;
|
||||||
} else if (lastContentPresenter.reinit) {
|
} else if (lastContentPresenter.reinit) {
|
||||||
lastContentPresenter.reinit.call(lastContentPresenter, args, nprogress.done);
|
lastContentPresenter.reinit.call(lastContentPresenter, args, progress.done);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,4 +54,4 @@ App.PresenterManager = function(jQuery, promise, topNavigationPresenter, keyboar
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
App.DI.registerSingleton('presenterManager', ['jQuery', 'promise', 'topNavigationPresenter', 'keyboard', 'nprogress'], App.PresenterManager);
|
App.DI.registerSingleton('presenterManager', ['jQuery', 'promise', 'topNavigationPresenter', 'keyboard', 'progress'], App.PresenterManager);
|
||||||
|
|
|
@ -11,7 +11,7 @@ App.Presenters.PagerPresenter = function(
|
||||||
pager,
|
pager,
|
||||||
messagePresenter,
|
messagePresenter,
|
||||||
browsingSettings,
|
browsingSettings,
|
||||||
nprogress) {
|
progress) {
|
||||||
|
|
||||||
var $target;
|
var $target;
|
||||||
var $pageList;
|
var $pageList;
|
||||||
|
@ -85,11 +85,12 @@ App.Presenters.PagerPresenter = function(
|
||||||
|
|
||||||
function retrieve() {
|
function retrieve() {
|
||||||
messagePresenter.hideMessages($messages);
|
messagePresenter.hideMessages($messages);
|
||||||
nprogress.start();
|
progress.start();
|
||||||
|
|
||||||
return promise.make(function(resolve, reject) {
|
return promise.make(function(resolve, reject) {
|
||||||
promise.wait(pager.retrieve())
|
promise.wait(pager.retrieve())
|
||||||
.then(function(response) {
|
.then(function(response) {
|
||||||
|
progress.done();
|
||||||
updateCallback(response, forceClear || !endlessScroll);
|
updateCallback(response, forceClear || !endlessScroll);
|
||||||
forceClear = false;
|
forceClear = false;
|
||||||
if (!response.entities.length) {
|
if (!response.entities.length) {
|
||||||
|
@ -107,12 +108,11 @@ App.Presenters.PagerPresenter = function(
|
||||||
attachNextPageLoader();
|
attachNextPageLoader();
|
||||||
}
|
}
|
||||||
refreshPageList();
|
refreshPageList();
|
||||||
nprogress.done();
|
|
||||||
resolve();
|
resolve();
|
||||||
}).fail(function(response) {
|
}).fail(function(response) {
|
||||||
|
progress.done();
|
||||||
clearContent();
|
clearContent();
|
||||||
hidePageList();
|
hidePageList();
|
||||||
nprogress.done();
|
|
||||||
messagePresenter.showError($messages, response.json && response.json.error || response);
|
messagePresenter.showError($messages, response.json && response.json.error || response);
|
||||||
|
|
||||||
reject();
|
reject();
|
||||||
|
@ -223,4 +223,4 @@ App.Presenters.PagerPresenter = function(
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
App.DI.register('pagerPresenter', ['_', 'jQuery', 'util', 'promise', 'keyboard', 'router', 'pager', 'messagePresenter', 'browsingSettings', 'nprogress'], App.Presenters.PagerPresenter);
|
App.DI.register('pagerPresenter', ['_', 'jQuery', 'util', 'promise', 'keyboard', 'router', 'pager', 'messagePresenter', 'browsingSettings', 'progress'], App.Presenters.PagerPresenter);
|
||||||
|
|
31
public_html/js/Presenters/ProgressPresenter.js
Normal file
31
public_html/js/Presenters/ProgressPresenter.js
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
var App = App || {};
|
||||||
|
App.Controls = App.Controls || {};
|
||||||
|
|
||||||
|
App.Presenters.ProgressPresenter = function(nprogress) {
|
||||||
|
var nesting = 0;
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
nesting ++;
|
||||||
|
|
||||||
|
if (nesting === 1) {
|
||||||
|
nprogress.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function done() {
|
||||||
|
nesting --;
|
||||||
|
|
||||||
|
if (nesting === 0) {
|
||||||
|
nprogress.done();
|
||||||
|
} else {
|
||||||
|
nprogress.inc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
start: start,
|
||||||
|
done: done,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
App.DI.registerSingleton('progress', ['nprogress'], App.Presenters.ProgressPresenter);
|
Loading…
Reference in a new issue