summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-11 17:55:59 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-11 17:55:59 +0200
commit59f42f80ad4f292ebbb95ec58d95e0503d29711f (patch)
treeb1387b6afb4d67b3a08d99bb006ac99946d9f57d /js/app
parentadcf13d214a2b1289cc86c116082e0889abb649c (diff)
add a button for people to get out of add folder mode
Diffstat (limited to 'js/app')
-rw-r--r--js/app/controllers/feedcontroller.coffee35
-rw-r--r--js/app/services/bl/folderbl.coffee25
2 files changed, 45 insertions, 15 deletions
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee
index 0e2078b75..0860cabc5 100644
--- a/js/app/controllers/feedcontroller.coffee
+++ b/js/app/controllers/feedcontroller.coffee
@@ -21,7 +21,9 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
###
-angular.module('News').factory '_FeedController', ->
+angular.module('News').factory '_FeedController',
+['_ExistsError',
+(_ExistsError)->
class FeedController
@@ -74,22 +76,29 @@ angular.module('News').factory '_FeedController', ->
@_$scope.folderEmptyError = false
@_$scope.folderExistsError = false
- if angular.isUndefined(folderName) or folderName.trim() == ''
- @_$scope.folderEmptyError = true
- else
- folderName = folderName.trim()
- if @_folderModel.nameExists(folderName)
- @_$scope.folderExistsError = true
-
- if not (@_$scope.folderEmptyError or @_$scope.folderExistsError)
+ try
@_isAddingFolder = true
- @_persistence.createFolder folderName, 0, =>
- @$scope.folderName = ''
- @$scope.addNewFolder = false
+ @_folderBl.create folderName
+
+ # on success
+ , =>
+ @_$scope.folderName = ''
+ @_$scope.addNewFolder = false
+ @_isAddingFolder = false
+ # on error
+ , =>
@_isAddingFolder = false
+ catch error
+ if error instanceof _ExistsError
+ @_$scope.folderExistsError = true
+ else
+ @_$scope.folderEmptyError = true
+
@_$scope.$on 'moveFeedToFolder', (scope, data) =>
console.log data
- return FeedController \ No newline at end of file
+ return FeedController
+
+] \ No newline at end of file
diff --git a/js/app/services/bl/folderbl.coffee b/js/app/services/bl/folderbl.coffee
index 68031371a..20f545e43 100644
--- a/js/app/services/bl/folderbl.coffee
+++ b/js/app/services/bl/folderbl.coffee
@@ -81,10 +81,31 @@ ItemModel, ShowAll, _ExistsError)->
return @_folderModel.getAll()
- create: (folderName) ->
- if @_folderModel.nameExists(folderName)
+ create: (folderName, onSuccess=null, onFailure=null) ->
+ onSuccess or= ->
+ onFailure or= ->
+
+ if angular.isUndefined(folderName) or folderName.trim() == ''
+ throw new Error()
+
+ folderName = folderName.trim()
+
+ if @_folderModel.getByName(folderName)
throw new _ExistsError()
+ folder =
+ name: folderName
+
+ @_folderModel.add(folder)
+
+ success = (response) =>
+ if response.status == 'error'
+ folder.error = response.msg
+ onFailure()
+ else
+ onSuccess()
+
+ @_persistence.createFolder folderName, 0, success
return new FolderBl(FolderModel, FeedBl, ShowAll, ActiveFeed, Persistence,