summaryrefslogtreecommitdiffstats
path: root/js/app/controllers/feedcontroller.coffee
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-26 14:22:01 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-26 14:22:01 +0100
commitcd3b748f65cc98185c56fd110a140ad2206c319b (patch)
tree2e51aa3169b2c57ac36472e3db07a47109675c47 /js/app/controllers/feedcontroller.coffee
parentb553ff390353a860195b61f5418847880f24410d (diff)
added adding of feeds logic
Diffstat (limited to 'js/app/controllers/feedcontroller.coffee')
-rw-r--r--js/app/controllers/feedcontroller.coffee71
1 files changed, 71 insertions, 0 deletions
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee
index 2feec2a1c..fea2cb46d 100644
--- a/js/app/controllers/feedcontroller.coffee
+++ b/js/app/controllers/feedcontroller.coffee
@@ -29,6 +29,9 @@ angular.module('News').factory '_FeedController', ->
@_showAll, @_feedType, @_starredCount, @_persistence,
@_itemModel) ->
+ @_isAddingFolder = false
+ @_isAddingFeed = false
+
# bind internal stuff to scope
@$scope.feeds = @_feedModel.getAll()
@$scope.folders = @_folderModel.getAll()
@@ -64,6 +67,74 @@ angular.module('News').factory '_FeedController', ->
@$scope.setShowAll = (showAll) =>
@setShowAll(showAll)
+ @$scope.addFeed = (feedUrl, parentFolderId) =>
+ ###
+ @$scope.feedEmptyError = false
+ @$scope.feedExistsError = false
+ @$scope.feedError = false
+
+ if angular.isUndefined(feedUrl) or feedUrl.trim() == ''
+ @$scope.feedEmptyError = true
+ else
+ feedUrl = feedUrl.trim()
+ for feed in @feedModel.getItems()
+ if feedUrl == feed.feedUrl # FIXME: can we really compare this
+ @$scope.feedExistsError = true
+
+ if not (@$scope.feedEmptyError or @$scope.feedExistsError)
+ if angular.isUndefined(parentFolderId)
+ folderId = 0
+ else
+ folderId = folder.id
+ @$scope.adding = true
+ onSuccess = =>
+ @$scope.feedUrl = ''
+ @$scope.adding = false
+ onError = =>
+ @$scope.feedError = true
+ @$scope.adding = false
+ @persistence.createFeed(url, folderId, onSuccess, onError)
+ ###
+
+ @$scope.addFolder = (folderName) =>
+ @$scope.folderEmptyError = false
+ @$scope.folderExistsError = false
+
+ if angular.isUndefined(folderName) or folderName.trim() == ''
+ @$scope.folderEmptyError = true
+ else
+ folderName = folderName.trim()
+ for folder in @_folderModel.getAll()
+ if folderName.toLowerCase() == folder.name.toLowerCase()
+ @$scope.folderExistsError = true
+
+ if not (@$scope.folderEmptyError or @$scope.folderExistsError)
+ @_isAddingFolder = true
+ @_persistence.createFolder folderName, 0, =>
+ @$scope.folderName = ''
+ @_isAddingFolder = false
+
+
+ @$scope.isAddingFolder = =>
+ return @_isAddingFolder
+
+ @$scope.isAddingFeed = =>
+ return @_isAddingFeed
+
+ @$scope.toggleFolder = (folderId) =>
+ @toggleFolder(folderId)
+
+
+ toggleFolder: (folderId) ->
+ folder = @_folderModel.getById(folderId)
+
+ if angular.isDefined(folder)
+ folder.open = !folder.open
+ if folder.open
+ @_persistence.openFolder(folder.id)
+ else
+ @_persistence.collapseFolder(folder.id)
+
isFeedActive: (type, id) ->
return type == @_active.getType() and id = @_active.getId()