summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-04 21:57:17 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-04 21:57:17 +0200
commitd001da33947a0fa1b65f0e1b5749e9b97bd4b779 (patch)
tree73f6ff957e67dc31092a30d883fe36e421bd6b48 /js/app
parent76267670f3dcb6793a62a30477db830f482b4495 (diff)
cleaned up feedcontroller
Diffstat (limited to 'js/app')
-rw-r--r--js/app/controllers/controllers.coffee14
-rw-r--r--js/app/controllers/feedcontroller.coffee98
-rw-r--r--js/app/services/bl/feedbl.coffee12
-rw-r--r--js/app/services/bl/folderbl.coffee6
-rw-r--r--js/app/services/unreadcountformatter.coffee28
5 files changed, 54 insertions, 104 deletions
diff --git a/js/app/controllers/controllers.coffee b/js/app/controllers/controllers.coffee
index a7d86b074..6598ac692 100644
--- a/js/app/controllers/controllers.coffee
+++ b/js/app/controllers/controllers.coffee
@@ -29,14 +29,12 @@ angular.module('News').controller 'SettingsController',
angular.module('News').controller 'FeedController',
-['$scope', '_FeedController', 'FolderModel', 'FeedModel', 'ActiveFeed',
-'ShowAll', 'FeedType', 'StarredCount', 'Persistence', 'FolderBl', 'FeedBl',
-($scope, _FeedController, FolderModel, FeedModel, ActiveFeed,
-ShowAll, FeedType, StarredCount, Persistence, FolderBl, FeedBl)->
-
- return new _FeedController($scope, FolderModel, FeedModel, ActiveFeed,
- ShowAll, FeedType, StarredCount, Persistence,
- FolderBl, FeedBl)
+['$scope', '_FeedController', 'Persistence', 'FolderBl', 'FeedBl',
+'unreadCountFormatter',
+($scope, _FeedController, Persistence, FolderBl, FeedBl, unreadCountFormatter)->
+
+ return new _FeedController($scope, Persistence, FolderBl, FeedBl,
+ unreadCountFormatter)
]
angular.module('News').controller 'ItemController',
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee
index 1b6a79c53..1438b4fbb 100644
--- a/js/app/controllers/feedcontroller.coffee
+++ b/js/app/controllers/feedcontroller.coffee
@@ -25,66 +25,24 @@ angular.module('News').factory '_FeedController', ->
class FeedController
- constructor: (@$scope, @_folderModel, @_feedModel, @_active,
- @_showAll, @_feedType, @_starredCount, @_persistence,
- @_folderBl, @_feedBl) ->
+ constructor: (@$scope, @_persistence, @_folderBl, @_feedBl,
+ @_unreadCountFormatter) ->
@_isAddingFolder = false
@_isAddingFeed = false
# bind internal stuff to scope
- @$scope.feeds = @_feedModel.getAll()
- @$scope.folders = @_folderModel.getAll()
- @$scope.feedType = @_feedType
@$scope.folderBl = @_folderBl
@$scope.feedBl = @_feedBl
+ @$scope.unreadCountFormatter = @_unreadCountFormatter
- @$scope.isShown = (type, id) =>
- return true
-
- @$scope.getUnreadCount = =>
- return @_transFormCount(@_feedBl.getUnreadCount())
-
- @$scope.getStarredCount = =>
- return @_transFormCount(@_starredCount.getStarredCount())
-
- @$scope.getFeedUnreadCount = (feedId) =>
- return @_transFormCount(@_feedBl.getFeedUnreadCount(feedId))
-
- @$scope.getUnreadCount = (folderId) =>
- return @_transFormCount(@_feedBl.getFolderUnreadCount(folderId))
-
- @$scope.isShowAll = =>
- return @isShowAll()
-
- @$scope.loadFeed = (type, id) =>
- @loadFeed(type, id)
-
- @$scope.hasFeeds = (folderId) =>
- return @hasFeeds(folderId)
-
- @$scope.delete = (type, id) =>
- @delete(type, id)
-
- @$scope.markAllRead = (type, id) =>
- @markAllRead(type, id)
-
- @$scope.getFeedsOfFolder = (folderId) =>
- return @getFeedsOfFolder(folderId)
-
- @$scope.setShowAll = (showAll) =>
- @setShowAll(showAll)
-
@$scope.isAddingFolder = =>
return @_isAddingFolder
@$scope.isAddingFeed = =>
return @_isAddingFeed
- @$scope.toggleFolder = (folderId) =>
- @toggleFolder(folderId)
-
@$scope.addFeed = (feedUrl, parentFolderId=0) =>
@$scope.feedEmptyError = false
@$scope.feedError = false
@@ -129,54 +87,4 @@ angular.module('News').factory '_FeedController', ->
@_isAddingFolder = false
- isFeedActive: (type, id) ->
- return type == @_active.getType() and id == @_active.getId()
-
-
- #isShown: (type, id) ->
- # hasUnread = @getUnreadCount(type, id) > 0
- # if hasUnread
- # return true
- # else
- # if @isShowAll()
- # switch type
- # when @_feedType.Subscriptions
- # return @_feedModel.size() > 0
- # when @_feedType.Folder
- # return @_folderModel.size() > 0
- # when @_feedType.Feed
- # return @_feedModel.size() > 0
- # return false
-
-
- isShowAll: ->
- return @_showAll.getShowAll()
-
-
- _transFormCount: (count) ->
- if count > 999
- count = '999+'
-
- return count
-
-
- loadFeed: (type, id) ->
- # TODO: use polymorphism instead of switches
- if type != @_active.getType() or id != @_active.getId()
- @_itemModel.clear()
- @_persistence.getItems(type, id, 0)
- @_active.handle({id: id, type: type})
- else
- lastModified = @_itemModel.getHighestId()
- @_persistence.getItems(type, id, 0, null, lastModified)
-
-
- setShowAll: (showAll) ->
- @_showAll.setShowAll(showAll)
- if showAll
- @_persistence.userSettingsReadShow()
- else
- @_persistence.userSettingsReadHide()
-
-
return FeedController \ No newline at end of file
diff --git a/js/app/services/bl/feedbl.coffee b/js/app/services/bl/feedbl.coffee
index fa324f20f..ad51fa339 100644
--- a/js/app/services/bl/feedbl.coffee
+++ b/js/app/services/bl/feedbl.coffee
@@ -90,6 +90,18 @@ angular.module('News').factory 'FeedBl',
@_persistence.moveFeed(feedId, folderId)
+ setShowAll: (showAll) ->
+ @_showAll.setShowAll(showAll)
+ if showAll
+ @_persistence.userSettingsReadShow()
+ else
+ @_persistence.userSettingsReadHide()
+
+
+ getAll: ->
+ return @_feedModel.getAll()
+
+
return new FeedBl(ShowAll, FeedModel, Persistence, ActiveFeed, FeedType,
ItemModel)
diff --git a/js/app/services/bl/folderbl.coffee b/js/app/services/bl/folderbl.coffee
index 16e020063..d9b2b2cff 100644
--- a/js/app/services/bl/folderbl.coffee
+++ b/js/app/services/bl/folderbl.coffee
@@ -61,7 +61,7 @@ ItemModel, ShowAll)->
getUnreadCount: (folderId) ->
return @_feedBl.getFolderUnreadCount(folderId)
-
+
isVisible: (folderId) ->
if @_showAll.getShowAll()
@@ -77,6 +77,10 @@ ItemModel, ShowAll)->
return false
+ getAll: ->
+ return @_folderModel.getAll()
+
+
return new FolderBl(FolderModel, FeedBl, ShowAll, ActiveFeed, Persistence,
FeedType, ItemModel)
diff --git a/js/app/services/unreadcountformatter.coffee b/js/app/services/unreadcountformatter.coffee
new file mode 100644
index 000000000..76993ef5c
--- /dev/null
+++ b/js/app/services/unreadcountformatter.coffee
@@ -0,0 +1,28 @@
+###
+
+ownCloud - News
+
+@author Bernhard Posselt
+@copyright 2012 Bernhard Posselt nukeawhale@gmail.com
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+License as published by the Free Software Foundation; either
+version 3 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+
+You should have received a copy of the GNU Affero General Public
+License along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+###
+
+
+angular.module('News').factory 'unreadCountFormatter', ->
+ return (unreadCount) ->
+ if unreadCount > 999
+ unreadCount = '999+'
+ return unreadCount \ No newline at end of file