diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-29 13:25:04 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-29 13:30:01 +0200 |
commit | 3fc18156ae0b586e8de0c82949acfa6291317536 (patch) | |
tree | 201e97511bea44c58b5e9d78d8cf36ae2e2b54f9 /js/app/services | |
parent | a03b54c6a59837d0045c140ea7aef3fae95daa95 (diff) |
go back to order by id, fix #138, use a newest item id to prevent marking items as read that the user didnt see yet fix #141, also update the starred count periodically
Diffstat (limited to 'js/app/services')
-rw-r--r-- | js/app/services/businesslayer/businesslayer.coffee | 2 | ||||
-rw-r--r-- | js/app/services/businesslayer/feedbusinesslayer.coffee | 11 | ||||
-rw-r--r-- | js/app/services/businesslayer/itembusinesslayer.coffee | 7 | ||||
-rw-r--r-- | js/app/services/models/itemmodel.coffee | 14 | ||||
-rw-r--r-- | js/app/services/persistence.coffee | 22 |
5 files changed, 21 insertions, 35 deletions
diff --git a/js/app/services/businesslayer/businesslayer.coffee b/js/app/services/businesslayer/businesslayer.coffee index 622351333..3096eb71e 100644 --- a/js/app/services/businesslayer/businesslayer.coffee +++ b/js/app/services/businesslayer/businesslayer.coffee @@ -25,7 +25,7 @@ angular.module('News').factory '_BusinessLayer', -> class BusinessLayer - constructor: (@_activeFeed, @_persistence, @_itemModel, @_type, @_newest) -> + constructor: (@_activeFeed, @_persistence, @_itemModel, @_type) -> load: (id) -> diff --git a/js/app/services/businesslayer/feedbusinesslayer.coffee b/js/app/services/businesslayer/feedbusinesslayer.coffee index 796a6a6eb..d7b78a75b 100644 --- a/js/app/services/businesslayer/feedbusinesslayer.coffee +++ b/js/app/services/businesslayer/feedbusinesslayer.coffee @@ -66,14 +66,11 @@ FeedModel, NewLoading, _ExistsError, Utils, $rootScope, UndoQueue, NewestItem)-> markFeedRead: (feedId) -> feed = @_feedModel.getById(feedId) - if angular.isDefined(feed) + newestItemId = @_newestItem.getId() + + if angular.isDefined(feed) and angular.isDefined(newestItemId) feed.unreadCount = 0 - if @_activeFeed.getId() == feedId and - @_activeFeed.getType() == @_feedType.Feed - highestItemId = @_newestItem.getId() - else - highestItemId = 0 - @_persistence.setFeedRead(feedId, highestItemId) + @_persistence.setFeedRead(feedId, newestItemId) for item in @_itemModel.getAll() item.setRead() diff --git a/js/app/services/businesslayer/itembusinesslayer.coffee b/js/app/services/businesslayer/itembusinesslayer.coffee index 7a2063a97..d9b5951ac 100644 --- a/js/app/services/businesslayer/itembusinesslayer.coffee +++ b/js/app/services/businesslayer/itembusinesslayer.coffee @@ -106,12 +106,11 @@ StarredBusinessLayer, NewestItem) -> loadNext: (callback) -> - size = @_itemModel.size() - if size != 0 + lowestItemId = @_itemModel.getLowestId() + if lowestItemId != 0 @_persistence.getItems @_activeFeed.getType(), @_activeFeed.getId(), - size, - @_newestItem.getId(), + lowestItemId, callback else callback() diff --git a/js/app/services/models/itemmodel.coffee b/js/app/services/models/itemmodel.coffee index 12f557421..1104db4b3 100644 --- a/js/app/services/models/itemmodel.coffee +++ b/js/app/services/models/itemmodel.coffee @@ -21,8 +21,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. ### angular.module('News').factory 'ItemModel', -['_Model', '_MaximumQuery', '_MinimumQuery', 'StatusFlag', -(_Model, _MaximumQuery, _MinimumQuery, StatusFlag) -> +['_Model', '_MinimumQuery', 'StatusFlag', +(_Model, _MinimumQuery, StatusFlag) -> class ItemModel extends _Model @@ -99,5 +99,15 @@ angular.module('News').factory 'ItemModel', super(id) + getLowestId: -> + query = new _MinimumQuery('id') + lowestId = @get(query) + + if angular.isDefined(lowestId) + return lowestId.id + else + return 0 + + return new ItemModel() ]
\ No newline at end of file diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index 92ced046b..341cf66f6 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -44,14 +44,13 @@ $rootScope) -> @getAllFolders() @getAllFeeds() @userSettingsRead() - @getStarredItems() @userSettingsLanguage() ### ITEM CONTROLLER ### - getItems: (type, id, offset, newestItemId=0, onSuccess=null) -> + getItems: (type, id, offset, onSuccess=null) -> onSuccess or= -> # show different loading signs @@ -74,31 +73,12 @@ $rootScope) -> offset: offset id: id type: type - newestItemId: newestItemId onSuccess: successCallbackWrapper onFailure: failureCallbackWrapper @_request.get 'news_items', params - getStarredItems: (onSuccess) -> - onSuccess or= -> - - # loading sign handling - @_feedLoading.increase() - successCallbackWrapper = (data) => - onSuccess() - @_feedLoading.decrease() - failureCallbackWrapper = (data) => - @_feedLoading.decrease() - - params = - onSuccess: successCallbackWrapper - onFailure: failureCallbackWrapper - - @_request.get 'news_items_starred', params - - starItem: (feedId, guidHash) -> ### Stars an item |