diff options
Diffstat (limited to 'js/app/services/models/itemmodel.coffee')
-rw-r--r-- | js/app/services/models/itemmodel.coffee | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/js/app/services/models/itemmodel.coffee b/js/app/services/models/itemmodel.coffee deleted file mode 100644 index 7da924be3..000000000 --- a/js/app/services/models/itemmodel.coffee +++ /dev/null @@ -1,123 +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 'ItemModel', -['_Model', '_MinimumQuery', '_MaximumQuery', 'StatusFlag', -(_Model, _MinimumQuery, _MaximumQuery, StatusFlag) -> - - class ItemModel extends _Model - - - constructor: -> - @_guidFeedIdHash = {} - super() - - - clear: -> - @_guidFeedIdHash = {} - super() - - - # items have two unique fields: feed_id and guidhash - # in case we get updated items with the same two fields we - # also need to update the field - add: (data, clearCache=true) -> - @_bindMethods(data) - - hash = data.feedId + '_' + data.guidHash - entry = @_guidFeedIdHash[hash] - - # update entry if exists with same feedid and guidhash - if angular.isDefined(entry) - @update(data, clearCache) - else - @_guidFeedIdHash[hash] = data - super(data, clearCache) - - - _bindMethods: (data) -> - data.isRead = -> - return !((@status & StatusFlag.UNREAD) == StatusFlag.UNREAD) - data.setRead = -> - @status &= ~StatusFlag.UNREAD - data.setUnread = -> - @status |= StatusFlag.UNREAD - data.isStarred = -> - return (@status & StatusFlag.STARRED) == StatusFlag.STARRED - data.setStarred = -> - @status |= StatusFlag.STARRED - data.setUnstarred = -> - @status &= ~StatusFlag.STARRED - - - update: (data, clearCache=true) -> - hash = data.feedId + '_' + data.guidHash - entry = @_guidFeedIdHash[hash] - - # first update id that could have changed - delete @_dataMap[entry.id] - @_dataMap[data.id] = entry - - # now copy over the elements data attrs - for key, value of data - if key == 'feedId' or key == 'guidHash' - continue - else - entry[key] = value - - super(entry, clearCache) - - - getByGuidHashAndFeedId: (guidHash, feedId) -> - hash = feedId + '_' + guidHash - return @_guidFeedIdHash[hash] - - - removeById: (id) -> - item = @getById(id) - hash = item.feedId + '_' + item.guidHash - delete @_guidFeedIdHash[hash] - super(id) - - - getLowestId: -> - query = new _MinimumQuery('id') - lowestId = @get(query) - - if angular.isDefined(lowestId) - return lowestId.id - else - return 0 - - - getLastModified: -> - query = new _MaximumQuery('lastModified') - lastModified = @get(query) - - if angular.isDefined(lastModified) - return lastModified.lastModified - else - return 0 - - - return new ItemModel() -]
\ No newline at end of file |