diff options
author | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-11 17:55:59 +0200 |
---|---|---|
committer | Bernhard Posselt <nukeawhale@gmail.com> | 2013-04-11 17:55:59 +0200 |
commit | 59f42f80ad4f292ebbb95ec58d95e0503d29711f (patch) | |
tree | b1387b6afb4d67b3a08d99bb006ac99946d9f57d /js/app | |
parent | adcf13d214a2b1289cc86c116082e0889abb649c (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.coffee | 35 | ||||
-rw-r--r-- | js/app/services/bl/folderbl.coffee | 25 |
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, |