summaryrefslogtreecommitdiffstats
path: root/js/app/services/models
diff options
context:
space:
mode:
Diffstat (limited to 'js/app/services/models')
-rw-r--r--js/app/services/models/feedmodel.coffee20
-rw-r--r--js/app/services/models/foldermodel.coffee22
2 files changed, 42 insertions, 0 deletions
diff --git a/js/app/services/models/feedmodel.coffee b/js/app/services/models/feedmodel.coffee
index 5c4473b3a..405ea2651 100644
--- a/js/app/services/models/feedmodel.coffee
+++ b/js/app/services/models/feedmodel.coffee
@@ -144,5 +144,25 @@ angular.module('News').factory '_FeedModel',
return @get(query)
+ removeByUrlHash: (urlHash, clearCache=true) ->
+ ###
+ Remove an entry by id
+ ###
+
+ # remove from data map
+ for key, value of @_dataMap
+ if @_dataMap[key].urlHash == urlHash
+ delete @_dataMap[key]
+ break
+
+ for entry, counter in @_data
+ if entry.urlHash == urlHash
+ @_data.splice(counter, 1)
+ delete @_urlHash[urlHash]
+
+ if clearCache
+ @_invalidateCache()
+ break
+
return FeedModel
] \ No newline at end of file
diff --git a/js/app/services/models/foldermodel.coffee b/js/app/services/models/foldermodel.coffee
index eb1059fc8..5dad0bdae 100644
--- a/js/app/services/models/foldermodel.coffee
+++ b/js/app/services/models/foldermodel.coffee
@@ -116,5 +116,27 @@ angular.module('News').factory '_FolderModel',
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 FolderModel
] \ No newline at end of file