summaryrefslogtreecommitdiffstats
path: root/js/app/services
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-11 20:56:23 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-11 20:56:23 +0200
commitb06fc20ddbadbc7522cd23a83a20975f43889890 (patch)
tree252ddf454899920771466aa7d5b6376461c386e9 /js/app/services
parentce6b20c59e1140867f2353361d3524e3baeb4580 (diff)
allow users to discard folder and feed errors
Diffstat (limited to 'js/app/services')
-rw-r--r--js/app/services/bl/feedbl.coffee6
-rw-r--r--js/app/services/bl/folderbl.coffee4
-rw-r--r--js/app/services/models/feedmodel.coffee20
-rw-r--r--js/app/services/models/foldermodel.coffee22
4 files changed, 51 insertions, 1 deletions
diff --git a/js/app/services/bl/feedbl.coffee b/js/app/services/bl/feedbl.coffee
index ef4fbac1c..6ab3c54e5 100644
--- a/js/app/services/bl/feedbl.coffee
+++ b/js/app/services/bl/feedbl.coffee
@@ -156,7 +156,11 @@ NewLoading, _ExistsError) ->
else
onSuccess(response.data)
- @_persistence.createFeed url, parentId, success
+ @_persistence.createFeed(url, parentId, success)
+
+
+ markErrorRead: (urlHash) ->
+ @_feedModel.removeByUrlHash(urlHash)
return new FeedBl(ShowAll, FeedModel, Persistence, ActiveFeed, FeedType,
diff --git a/js/app/services/bl/folderbl.coffee b/js/app/services/bl/folderbl.coffee
index 20f545e43..1084dd5b7 100644
--- a/js/app/services/bl/folderbl.coffee
+++ b/js/app/services/bl/folderbl.coffee
@@ -108,6 +108,10 @@ ItemModel, ShowAll, _ExistsError)->
@_persistence.createFolder folderName, 0, success
+ markErrorRead: (folderName) ->
+ @_folderModel.removeByName(folderName)
+
+
return new FolderBl(FolderModel, FeedBl, ShowAll, ActiveFeed, Persistence,
FeedType, ItemModel)
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