diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2013-12-20 17:24:50 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2013-12-20 17:25:01 +0100 |
commit | 67daf1074702f8ee8e0720c6f864bc4b8eb3780c (patch) | |
tree | 7b17318ad4a1ef70415589e152ebafbfa62bba86 /js/app/services | |
parent | ee9810ede5a5e3e10b214a771d0a58dcbb29bc36 (diff) |
prevent multiple autopage requests, fix #201
Diffstat (limited to 'js/app/services')
-rw-r--r-- | js/app/services/businesslayer/businesslayer.coffee | 2 | ||||
-rw-r--r-- | js/app/services/businesslayer/itembusinesslayer.coffee | 1 | ||||
-rw-r--r-- | js/app/services/persistence.coffee | 10 |
3 files changed, 10 insertions, 3 deletions
diff --git a/js/app/services/businesslayer/businesslayer.coffee b/js/app/services/businesslayer/businesslayer.coffee index 14d692084..f7b02baea 100644 --- a/js/app/services/businesslayer/businesslayer.coffee +++ b/js/app/services/businesslayer/businesslayer.coffee @@ -27,9 +27,11 @@ angular.module('News').factory '_BusinessLayer', -> constructor: (@_activeFeed, @_persistence, @_itemModel, @_type, @_$rootScope) -> + @_preventAutopage = false load: (id) -> + @_preventAutopage = false @_$rootScope.$broadcast 'loadingNewItems' @_itemModel.clear() @_persistence.getItems @_type, id, 0, => diff --git a/js/app/services/businesslayer/itembusinesslayer.coffee b/js/app/services/businesslayer/itembusinesslayer.coffee index 1382df190..82d19de8e 100644 --- a/js/app/services/businesslayer/itembusinesslayer.coffee +++ b/js/app/services/businesslayer/itembusinesslayer.coffee @@ -106,6 +106,7 @@ StarredBusinessLayer, NewestItem) -> loadNext: (callback) -> + lowestItemId = @_itemModel.getLowestId() if lowestItemId != 0 @_persistence.getItems @_activeFeed.getType(), diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index 176589e9c..1bbe754eb 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -30,7 +30,7 @@ $rootScope, $q) -> constructor: (@_request, @_feedLoading, @_autoPageLoading, @_newLoading, @_config, @_activeFeed, @_$rootScope) -> - + @_preventUselessAutoPageRequest = false init: -> ### @@ -64,13 +64,16 @@ $rootScope, $q) -> # show different loading signs if offset == 0 + @_preventUselessAutoPageRequest = false loading = @_feedLoading else loading = @_autoPageLoading # loading sign handling loading.increase() - successCallbackWrapper = (data) -> + successCallbackWrapper = (data) => + if data.items.length == 0 + @_preventUselessAutoPageRequest = true onSuccess(data) loading.decrease() failureCallbackWrapper = (data) -> @@ -85,7 +88,8 @@ $rootScope, $q) -> onSuccess: successCallbackWrapper onFailure: failureCallbackWrapper - @_request.get 'news_items', params + if not @_preventUselessAutoPageRequest + @_request.get 'news_items', params getNewItems: (type, id, lastModified, onSuccess) -> |