summaryrefslogtreecommitdiffstats
path: root/js/controller
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-13 16:58:38 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-13 16:58:38 +0200
commit08df2433cad543587458a64a0b81122e1f966cb8 (patch)
tree466125e54bba6ca99bf695a4274722c7284fa36e /js/controller
parent11c4b03d70583d8b4c7e7bce408a3c3a3d9c1f17 (diff)
autopaging
Diffstat (limited to 'js/controller')
-rw-r--r--js/controller/ContentController.js23
1 files changed, 19 insertions, 4 deletions
diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js
index d22988d6c..ea19792c7 100644
--- a/js/controller/ContentController.js
+++ b/js/controller/ContentController.js
@@ -91,8 +91,10 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data,
}
});
- FeedResource.markItemsOfFeedsRead(feedIds);
- ItemResource.markItemsRead(ids);
+ if (ids.length > 0) {
+ FeedResource.markItemsOfFeedsRead(feedIds);
+ ItemResource.markItemsRead(ids);
+ }
};
this.isFeed = function () {
@@ -100,18 +102,31 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data,
};
this.autoPage = function () {
+ // in case a subsequent autopage request comes in wait until
+ // the current one finished and execute a request immediately afterwards
+ if (!this.isAutoPagingEnabled) {
+ this.autoPageAgain = true;
+ return;
+ }
+
this.isAutoPagingEnabled = false;
+ this.autoPageAgain = false;
var type = $route.current.$$route.type;
var id = $routeParams.id;
-
+ var oldestFirst = SettingsResource.get('oldestFirst');
var self = this;
- ItemResource.autoPage(type, id).success(function (data) {
+
+ ItemResource.autoPage(type, id, oldestFirst).success(function (data) {
Publisher.publishAll(data);
if (data.items.length > 0) {
self.isAutoPagingEnabled = true;
}
+
+ if (self.isAutoPagingEnabled && self.autoPageAgain) {
+ self.autoPage();
+ }
}).error(function () {
self.isAutoPagingEnabled = true;
});