From 7ade1165ddd0aa2d650ea28ae2f38a412375f9cc Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Mon, 25 Mar 2013 21:13:09 +0100 Subject: added feedcontroller methods and tests --- js/app/controllers/controllers.coffee | 15 +++++++------- js/app/controllers/feedcontroller.coffee | 35 ++++++++++++++++++++++++++++++-- 2 files changed, 41 insertions(+), 9 deletions(-) (limited to 'js/app/controllers') diff --git a/js/app/controllers/controllers.coffee b/js/app/controllers/controllers.coffee index 59f2db39e..a302b1033 100644 --- a/js/app/controllers/controllers.coffee +++ b/js/app/controllers/controllers.coffee @@ -29,13 +29,14 @@ angular.module('News').controller 'SettingsController', angular.module('News').controller 'FeedController', -['$scope', '_FeedController', 'FolderModel', 'FeedModel', 'ActiveFeed', -'ShowAll', 'FeedType', 'StarredCount', -($scope, _FeedController, FolderModel, FeedModel, ActiveFeed, -ShowAll, FeedType, StarredCount)-> - - return new _FeedController($scope, FolderModel, FeedModel, ActiveFeed, - ShowAll, FeedType, StarredCount) +['$scope', '_FeedController', 'FolderModel', 'FeedModel', 'ActiveFeed', +'ShowAll', 'FeedType', 'StarredCount', 'Persistence', 'ItemModel', +($scope, _FeedController, FolderModel, FeedModel, ActiveFeed, +ShowAll, FeedType, StarredCount, Persistence, ItemModel)-> + + return new _FeedController($scope, FolderModel, FeedModel, ActiveFeed, + ShowAll, FeedType, StarredCount, Persistence, + ItemModel) ] angular.module('News').controller 'ItemController', diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee index 535ed00ac..ddd35d2f8 100644 --- a/js/app/controllers/feedcontroller.coffee +++ b/js/app/controllers/feedcontroller.coffee @@ -25,8 +25,9 @@ angular.module('News').factory '_FeedController', -> class FeedController - constructor: (@$scope, @_folderModel, @_feedModel, @_active, - @_showAll, @_feedType, @_starredCount) -> + constructor: (@$scope, @_folderModel, @_feedModel, @_active, + @_showAll, @_feedType, @_starredCount, @_persistence, + @_itemModel) -> # bind internal stuff to scope @$scope.feeds = @_feedModel.getAll() @@ -80,12 +81,34 @@ angular.module('News').factory '_FeedController', -> getUnreadCount: (type, id) -> + switch type + when @_feedType.Subscriptions + count = @_feedModel.getUnreadCount() + when @_feedType.Starred + count = @_starredCount.getStarredCount() + when @_feedType.Feed + count = @_feedModel.getFeedUnreadCount(id) + when @_feedType.Folder + count = @_feedModel.getFolderUnreadCount(id) + + if count > 999 + count = '999+' + + return count loadFeed: (type, id) -> + if type != @_active.getType() or id != @_active.getId() + @_itemModel.clear() + @_persistence.getItems(type, id, 0) + @_active.handle({id: id, type: type}) + else + lastModified = @_itemModel.getLastModified() + @_persistence.getItems(type, id, 0, null, lastModified) hasFeeds: (folderId) -> + return @_feedModel.getAllOfFolder(folderId).length delete: (type, id) -> @@ -95,7 +118,15 @@ angular.module('News').factory '_FeedController', -> getFeedsOfFolder: (folderId) -> + return @_feedModel.getAllOfFolder(folderId) + setShowAll: (showAll) -> + @_showAll.setShowAll(showAll) + if showAll + @_persistence.userSettingsReadShow() + else + @_persistence.userSettingsReadHide() + return FeedController \ No newline at end of file -- cgit v1.2.3