aboutsummaryrefslogtreecommitdiff
path: root/client/js/views/endless_page_view.js
diff options
context:
space:
mode:
authorrr-2016-05-20 21:35:12 +0200
committerrr-2016-05-21 00:08:43 +0200
commit69fe8ec31a0827eda913e55ca464228168ffcaf1 (patch)
tree037608c4a0496e7064b0068314abae96c38dd7ba /client/js/views/endless_page_view.js
parentc88dfd228ac6feedd44fd82330b9899db863a190 (diff)
client/general: refactor all the things
- Move controls to the "controls/" directory - Make controls interface look similar to each other - Prefix "private" methods and attributes with underscore
Diffstat (limited to 'client/js/views/endless_page_view.js')
-rw-r--r--client/js/views/endless_page_view.js54
1 files changed, 27 insertions, 27 deletions
diff --git a/client/js/views/endless_page_view.js b/client/js/views/endless_page_view.js
index 784d58c..c4e3646 100644
--- a/client/js/views/endless_page_view.js
+++ b/client/js/views/endless_page_view.js
@@ -6,19 +6,19 @@ const views = require('../util/views.js');
class EndlessPageView {
constructor() {
- this.holderTemplate = views.getTemplate('endless-pager');
- this.pageTemplate = views.getTemplate('endless-pager-page');
+ this._holderTemplate = views.getTemplate('endless-pager');
+ this._pageTemplate = views.getTemplate('endless-pager-page');
}
render(ctx) {
const target = document.getElementById('content-holder');
- const source = this.holderTemplate();
+ const source = this._holderTemplate();
const pageHeaderHolder = source.querySelector('.page-header-holder');
const pagesHolder = source.querySelector('.pages-holder');
views.listenToMessages(source);
views.showView(target, source);
- this.active = true;
- this.working = 0;
+ this._active = true;
+ this._working = 0;
let headerRendererCtx = ctx;
headerRendererCtx.target = pageHeaderHolder;
@@ -31,8 +31,8 @@ class EndlessPageView {
this.totalPages = null;
this.currentPage = null;
- this.updater = () => {
- if (this.working) {
+ this._updater = () => {
+ if (this._working) {
return;
}
@@ -66,46 +66,46 @@ class EndlessPageView {
document.documentElement.clientHeight;
if (this.minPageShown > 1 && window.scrollY - threshold < 0) {
- this.loadPage(pagesHolder, ctx, this.minPageShown - 1, false)
- .then(() => this.updater());
+ this._loadPage(pagesHolder, ctx, this.minPageShown - 1, false)
+ .then(() => this._updater());
} else if (this.maxPageShown < this.totalPages &&
window.scrollY + threshold > scrollHeight) {
- this.loadPage(pagesHolder, ctx, this.maxPageShown + 1, true)
- .then(() => this.updater());
+ this._loadPage(pagesHolder, ctx, this.maxPageShown + 1, true)
+ .then(() => this._updater());
}
};
- this.loadPage(pagesHolder, ctx, ctx.searchQuery.page, true)
+ this._loadPage(pagesHolder, ctx, ctx.searchQuery.page, true)
.then(pageNode => {
if (ctx.searchQuery.page > 1) {
window.scroll(0, pageNode.getBoundingClientRect().top);
}
- this.updater();
+ this._updater();
});
- window.addEventListener('scroll', this.updater, true);
- window.addEventListener('unload', this.scrollToTop, true);
+ window.addEventListener('scroll', this._updater, true);
+ window.addEventListener('unload', this._scrollToTop, true);
}
unrender() {
- this.active = false;
- window.removeEventListener('scroll', this.updater, true);
- window.removeEventListener('unload', this.scrollToTop, true);
+ this._active = false;
+ window.removeEventListener('scroll', this._updater, true);
+ window.removeEventListener('unload', this._scrollToTop, true);
}
- scrollToTop() {
+ _scrollToTop() {
window.scroll(0, 0);
}
- loadPage(pagesHolder, ctx, pageNumber, append) {
- this.working++;
+ _loadPage(pagesHolder, ctx, pageNumber, append) {
+ this._working++;
return ctx.requestPage(pageNumber).then(response => {
- if (!this.active) {
- this.working--;
+ if (!this._active) {
+ this._working--;
return Promise.reject();
}
this.totalPages = Math.ceil(response.total / response.pageSize);
if (response.total) {
- const pageNode = this.pageTemplate({
+ const pageNode = this._pageTemplate({
page: pageNumber,
totalPages: this.totalPages,
});
@@ -137,17 +137,17 @@ class EndlessPageView {
window.scrollX,
window.scrollY + pageNode.offsetHeight);
}
- this.working--;
+ this._working--;
return Promise.resolve(pageNode);
}
if (response.total <= (pageNumber - 1) * response.pageSize) {
events.notify(events.Info, 'No data to show');
}
- this.working--;
+ this._working--;
return Promise.reject();
}, response => {
events.notify(events.Error, response.description);
- this.working--;
+ this._working--;
return Promise.reject();
});
}

© 2015 - 2026 Jakob L. Kreuze