summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-25 21:50:49 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-25 21:50:49 +0100
commit0430a6ca38545463d7eea070204d77bddb447437 (patch)
tree8a0b9dcbc54aab0b327f7b794d2d74861c26d019 /js/app
parent7ade1165ddd0aa2d650ea28ae2f38a412375f9cc (diff)
added more feedcontroller methods
Diffstat (limited to 'js/app')
-rw-r--r--js/app/controllers/feedcontroller.coffee24
-rw-r--r--js/app/services/models/itemmodel.coffee10
2 files changed, 34 insertions, 0 deletions
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee
index ddd35d2f8..2feec2a1c 100644
--- a/js/app/controllers/feedcontroller.coffee
+++ b/js/app/controllers/feedcontroller.coffee
@@ -81,6 +81,7 @@ angular.module('News').factory '_FeedController', ->
getUnreadCount: (type, id) ->
+ # TODO: use polymorphism instead of switches
switch type
when @_feedType.Subscriptions
count = @_feedModel.getUnreadCount()
@@ -98,6 +99,7 @@ angular.module('News').factory '_FeedController', ->
loadFeed: (type, id) ->
+ # TODO: use polymorphism instead of switches
if type != @_active.getType() or id != @_active.getId()
@_itemModel.clear()
@_persistence.getItems(type, id, 0)
@@ -112,9 +114,31 @@ angular.module('News').factory '_FeedController', ->
delete: (type, id) ->
+ # TODO: use polymorphism instead of switches
+ switch type
+ when @_feedType.Feed
+ count = @_feedModel.removeById(id)
+ @_persistence.deleteFeed(id)
+ when @_feedType.Folder
+ count = @_folderModel.removeById(id)
+ @_persistence.deleteFolder(id)
markAllRead: (type, id) ->
+ # TODO: use polymorphism instead of switches
+ switch type
+ when @_feedType.Subscriptions
+ for feed in @_feedModel.getAll()
+ @markAllRead(@_feedType.Feed, feed.id)
+ when @_feedType.Feed
+ feed = @_feedModel.getById(id)
+ if angular.isDefined(feed)
+ feed.unreadCount = 0
+ highestItemId = @_itemModel.getHighestId()
+ @_persistence.setFeedRead(id, highestItemId)
+ when @_feedType.Folder
+ for feed in @_feedModel.getAllOfFolder(id)
+ @markAllRead(@_feedType.Feed, feed.id)
getFeedsOfFolder: (folderId) ->
diff --git a/js/app/services/models/itemmodel.coffee b/js/app/services/models/itemmodel.coffee
index a2191fdbf..890f18964 100644
--- a/js/app/services/models/itemmodel.coffee
+++ b/js/app/services/models/itemmodel.coffee
@@ -37,5 +37,15 @@ angular.module('News').factory '_ItemModel',
return null
+ getHighestId: ->
+ query = new _MaximumQuery('id')
+ highestId = @get(query)
+
+ if angular.isDefined(highestId)
+ return highestId.id
+ else
+ return 0
+
+
return ItemModel
] \ No newline at end of file