summaryrefslogtreecommitdiffstats
path: root/js/app/services/models/feedmodel.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'js/app/services/models/feedmodel.coffee')
-rw-r--r--js/app/services/models/feedmodel.coffee42
1 files changed, 29 insertions, 13 deletions
diff --git a/js/app/services/models/feedmodel.coffee b/js/app/services/models/feedmodel.coffee
index 4a186e659..96f187e75 100644
--- a/js/app/services/models/feedmodel.coffee
+++ b/js/app/services/models/feedmodel.coffee
@@ -37,7 +37,7 @@ angular.module('News').factory '_FeedModel',
super()
- add: (item) ->
+ add: (item, clearCache=true) ->
if item.faviconLink == null
item.faviconLink = 'url(' +
@_utils.imagePath('news', 'rss.svg') + ')'
@@ -46,20 +46,36 @@ angular.module('News').factory '_FeedModel',
# the same url
entry = @_urlHash[item.urlHash]
if angular.isDefined(entry)
- # first update id that could have changed
- delete @_dataMap[entry.id]
- @_dataMap[item.id] = entry
-
- # now copy over the elements data attrs
- for key, value of item
- if key == 'urlHash'
- continue
- else
- entry[key] = value
-
+ @update(item, clearCache)
else
@_urlHash[item.urlHash] = item
- super(item)
+ super(item, clearCache)
+
+
+ update: (item, clearCache=true) ->
+ entry = @_urlHash[item.urlHash]
+
+ # first update id that could have changed
+ delete @_dataMap[entry.id]
+ @_dataMap[item.id] = entry
+
+ # now copy over the elements data attrs
+ for key, value of item
+ if key == 'urlHash'
+ continue
+ else
+ entry[key] = value
+
+
+
+ removeById: (id) ->
+ item = @getById(id)
+ delete @_urlHash[item.urlHash]
+ super(id)
+
+
+ getByUrlHash: (urlHash) ->
+ return @_urlHash[urlHash]
getUnreadCount: ->