summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-05 13:50:30 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-05 13:50:30 +0200
commit1a169b29c153389117f462f70c4d08cf91fc5dfb (patch)
treebb42c2e7907e2390fe04c40944e01d139865933d /js/app
parenta6d1cc915aed37ad6731ab28728d2f4e58f5b6da (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.coffee53
-rw-r--r--js/app/services/bl/starredbl.coffee7
-rw-r--r--js/app/services/persistence.coffee1
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