summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-03-27 17:19:50 +0100
committerBernhard Posselt <nukeawhale@gmail.com>2013-03-27 17:19:50 +0100
commit02869fdc16bcec5ce142a597c3d203dadd7d2067 (patch)
treec2732cffaa558b34049b4a21069e2a969a4c8ed1 /js/app
parent78674ebc36cf9d24309799651c09a7e194d15ea4 (diff)
adding folders works
Diffstat (limited to 'js/app')
-rw-r--r--js/app/controllers/feedcontroller.coffee13
-rw-r--r--js/app/directives/addfolderselect.coffee12
-rw-r--r--js/app/services/models/foldermodel.coffee9
3 files changed, 24 insertions, 10 deletions
diff --git a/js/app/controllers/feedcontroller.coffee b/js/app/controllers/feedcontroller.coffee
index 14e1aea5b..33d23d935 100644
--- a/js/app/controllers/feedcontroller.coffee
+++ b/js/app/controllers/feedcontroller.coffee
@@ -103,14 +103,13 @@ angular.module('News').factory '_FeedController', ->
@$scope.addFolder = (folderName) =>
@$scope.folderEmptyError = false
@$scope.folderExistsError = false
+ folderName = folderName.trim()
- if angular.isUndefined(folderName) or folderName.trim() == ''
+ if angular.isUndefined(folderName) or folderName == ''
@$scope.folderEmptyError = true
else
- folderName = folderName.trim()
- for folder in @_folderModel.getAll()
- if folderName.toLowerCase() == folder.name.toLowerCase()
- @$scope.folderExistsError = true
+ if @_folderModel.nameExists(folderName)
+ @$scope.folderExistsError = true
if not (@$scope.folderEmptyError or @$scope.folderExistsError)
@_isAddingFolder = true
@@ -119,6 +118,10 @@ angular.module('News').factory '_FeedController', ->
@_isAddingFolder = false
+ @$scope.$on 'createFolder', (scope, folderName) =>
+ $scope.addFolder(folderName)
+
+
toggleFolder: (folderId) ->
folder = @_folderModel.getById(folderId)
diff --git a/js/app/directives/addfolderselect.coffee b/js/app/directives/addfolderselect.coffee
index 1c3f39f04..41a111823 100644
--- a/js/app/directives/addfolderselect.coffee
+++ b/js/app/directives/addfolderselect.coffee
@@ -25,7 +25,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
Turns a normal select into a folder select with the ability to create new
folders
###
-angular.module('News').directive 'addFolderSelect', ['$rootScope', ->
+angular.module('News').directive 'addFolderSelect',
+['$rootScope', 'FolderModel', ($rootScope, FolderModel) ->
return (scope, elm, attr) ->
@@ -33,9 +34,12 @@ angular.module('News').directive 'addFolderSelect', ['$rootScope', ->
singleSelect: true
selectedFirst: true
createText: $(elm).data('create')
- createdCallback: (selected, value) ->
- console.log selected
- console.log value
+ createCallback: (selected, value) ->
+ if FolderModel.nameExists(value)
+ return false
+ else
+ $rootScope.$broadcast 'createFolder', value
+
$(elm).multiSelect(options)
diff --git a/js/app/services/models/foldermodel.coffee b/js/app/services/models/foldermodel.coffee
index 208bd2f4b..56997e603 100644
--- a/js/app/services/models/foldermodel.coffee
+++ b/js/app/services/models/foldermodel.coffee
@@ -20,9 +20,16 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
###
-angular.module('News').factory '_FolderModel', ['_Model', (_Model) ->
+angular.module('News').factory '_FolderModel',
+['_Model', '_EqualQuery', (_Model, _EqualQuery) ->
class FolderModel extends _Model
+
+ nameExists: (folderName) ->
+ query = new _EqualQuery('name', folderName.trim(), true)
+ return @get(query).length > 0
+
+
return FolderModel
] \ No newline at end of file