summaryrefslogtreecommitdiffstats
path: root/js/app/services/models/foldermodel.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'js/app/services/models/foldermodel.coffee')
-rw-r--r--js/app/services/models/foldermodel.coffee142
1 files changed, 0 insertions, 142 deletions
diff --git a/js/app/services/models/foldermodel.coffee b/js/app/services/models/foldermodel.coffee
deleted file mode 100644
index f7616f260..000000000
--- a/js/app/services/models/foldermodel.coffee
+++ /dev/null
@@ -1,142 +0,0 @@
-###
-
-ownCloud - News
-
-@author Bernhard Posselt
-@copyright 2012 Bernhard Posselt dev@bernhard-posselt.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 'FolderModel',
-['_Model', '_EqualQuery', (_Model, _EqualQuery) ->
-
- class FolderModel extends _Model
-
- constructor: ->
- @_nameCache = {}
- super()
-
-
- add: (data, clearCache=true) ->
- ###
- We want to add a folder on the client side before
- we have an id from the server. Once the server returns
- an id, we have to update the existing item without id
- ###
- data.name = @_transformName(data.name)
-
- item = @_nameCache[data.name]
-
- # update in the following cases:
- # * the id is defined and the item exists
- # * the id is not defined and the name exists in the cache
- updateById = angular.isDefined(data.id) and
- angular.isDefined(@getById(data.id))
-
- updateByName = angular.isDefined(item) and
- angular.isUndefined(item.id)
-
- if updateById or updateByName
- @update(data, clearCache)
- else
- # if the item is not yet in the name cache it must be added
- @_nameCache[data.name] = data
-
- # in case there is an id it can go through the normal add method
- if angular.isDefined(data.id)
- super(data, clearCache)
-
- # if there is no id we just want it to appear in the list
- else
- @_data.push(data)
- if clearCache
- @_invalidateCache()
-
-
- update: (data, clearCache=true) ->
- # only when the id on the updated item does not exist we wish
- # to update by name, otherwise we always update by id
- data.name = @_transformName(data.name)
-
- item = @_nameCache[data.name]
- # update by name
- if angular.isUndefined(data.id) and angular.isDefined(item)
- angular.extend(item, data)
-
- else
- # this case happens when there exists an element with the same
- # name but it has no id yet
- if angular.isDefined(data.id) and
- angular.isDefined(item) and
- angular.isUndefined(item.id)
- item.id = data.id
- @_dataMap[data.id] = item
-
- # if an update comes in and we update because of the id
- # we need to fix the name cache if the name was changed
- itemWithId = @getById(data.id)
- if angular.isDefined(itemWithId) and itemWithId.name != data.name
- delete @_nameCache[itemWithId.name]
- @_nameCache[data.name] = itemWithId
-
- super(data, clearCache)
-
-
-
- getByName: (folderName) ->
- folderName = @_transformName(folderName)
- return @_nameCache[folderName]
-
-
- clear: ->
- @_nameCache = {}
- super()
-
-
- removeById: (id, clearCache=true) ->
- item = @getById(id)
- delete @_nameCache[@_transformName(item.name)]
- super(id, clearCache)
-
-
- _transformName: (folderName) ->
- return folderName.trim().toLowerCase()
-
-
- removeByName: (name, clearCache=true) ->
- ###
- Remove an entry by id
- ###
- name = name.toLowerCase()
-
- # remove from data map
- for key, value of @_dataMap
- if @_dataMap[key].name == name
- delete @_dataMap[key]
- break
-
- for entry, counter in @_data
- if entry.name == name
- @_data.splice(counter, 1)
- delete @_nameCache[name]
-
- if clearCache
- @_invalidateCache()
- break
-
-
- return new FolderModel()
-] \ No newline at end of file