summaryrefslogtreecommitdiffstats
path: root/js/controller
diff options
context:
space:
mode:
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;
});