diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-13 16:58:38 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-13 16:58:38 +0200 |
commit | 08df2433cad543587458a64a0b81122e1f966cb8 (patch) | |
tree | 466125e54bba6ca99bf695a4274722c7284fa36e /js/controller | |
parent | 11c4b03d70583d8b4c7e7bce408a3c3a3d9c1f17 (diff) |
autopaging
Diffstat (limited to 'js/controller')
-rw-r--r-- | js/controller/ContentController.js | 23 |
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; }); |