diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-05 13:50:30 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-05 13:50:30 +0200 |
commit | 1a169b29c153389117f462f70c4d08cf91fc5dfb (patch) | |
tree | bb42c2e7907e2390fe04c40944e01d139865933d /js/app | |
parent | a6d1cc915aed37ad6731ab28728d2f4e58f5b6da (diff) |
fixed showall toggle and added methods to set items read and starred
Diffstat (limited to 'js/app')
-rw-r--r-- | js/app/services/bl/itembl.coffee | 53 | ||||
-rw-r--r-- | js/app/services/bl/starredbl.coffee | 7 | ||||
-rw-r--r-- | js/app/services/persistence.coffee | 1 |
3 files changed, 56 insertions, 5 deletions
diff --git a/js/app/services/bl/itembl.coffee b/js/app/services/bl/itembl.coffee index 8c718d653..fb9f04623 100644 --- a/js/app/services/bl/itembl.coffee +++ b/js/app/services/bl/itembl.coffee @@ -22,12 +22,13 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>. angular.module('News').factory 'ItemBl', -['ItemModel', 'Persistence', 'ActiveFeed', 'FeedType', -(ItemModel, Persistence, ActiveFeed, FeedType) -> +['ItemModel', 'FeedModel', 'Persistence', 'ActiveFeed', 'FeedType', 'StarredBl', +(ItemModel, FeedModel, Persistence, ActiveFeed, FeedType, StarredBl) -> class ItemBl - constructor: (@_itemModel, @_persistence, @_activeFeed, @_feedType) -> + constructor: (@_itemModel, @_feedModel, @_persistence, @_activeFeed, + @_feedType, @_starredBl) -> getAll: -> return @_itemModel.getAll() @@ -38,21 +39,65 @@ angular.module('News').factory 'ItemBl', isKeptUnread: (itemId) -> + item = @_itemModel.getById(itemId) + if angular.isDefined(item) and angular.isDefined(item.keptUnread) + return item.keptUnread + return false toggleKeepUnread: (itemId) -> + item = @_itemModel.getById(itemId) + if angular.isDefined(item) and not item.keptUnread + item.keptUnread = true + if item.isRead() + @setUnread(itemId) + else + item.keptUnread = false toggleStarred: (itemId) -> + item = @_itemModel.getById(itemId) + if item.isStarred() + item.setUnstarred() + @_starredBl.decreaseCount() + @_persistence.unstarItem(item.feedId, item.guidHash) + else + item.setStarred() + @_starredBl.increaseCount() + @_persistence.starItem(item.feedId, item.guidHash) setRead: (itemId) -> + item = @_itemModel.getById(itemId) + if angular.isDefined(item) + item.setRead() + @_persistence.readItem(itemId) + + + setUnread: (itemId) -> + item = @_itemModel.getById(itemId) + if angular.isDefined(item) + item.setUnread() + @_persistence.unreadItem(itemId) getFeedTitle: (itemId) -> + item = @_itemModel.getById(itemId) + if angular.isDefined(item) + feed = @_feedModel.getById(item.feedId) + if angular.isDefined(feed) + return feed.title + + + loadNext: -> + + + + loadNew: -> - return new ItemBl(ItemModel, Persistence, ActiveFeed, FeedType) + return new ItemBl(ItemModel, FeedModel, Persistence, ActiveFeed, FeedType, + StarredBl) ]
\ No newline at end of file diff --git a/js/app/services/bl/starredbl.coffee b/js/app/services/bl/starredbl.coffee index 0b1d45500..176973e04 100644 --- a/js/app/services/bl/starredbl.coffee +++ b/js/app/services/bl/starredbl.coffee @@ -42,6 +42,13 @@ angular.module('News').factory 'StarredBl', return @_starredCount.getStarredCount() + increaseCount: -> + @_starredCount.setStarredCount(@_starredCount.getStarredCount() + 1) + + + decreaseCount: -> + @_starredCount.setStarredCount(@_starredCount.getStarredCount() - 1) + return new StarredBl(StarredCount, FeedType, Persistence, ActiveFeed, ItemModel) ] diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee index 41aa13722..2231a5b79 100644 --- a/js/app/services/persistence.coffee +++ b/js/app/services/persistence.coffee @@ -93,7 +93,6 @@ angular.module('News').factory '_Persistence', -> @_request.post 'news_items_star', params - unstarItem: (feedId, guidHash) -> ### Unstars an item |