diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-23 02:54:58 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-23 02:54:58 +0200 |
commit | 66dc3028d75c455f118c484b9de0708409026451 (patch) | |
tree | 488560633254ff7aa1eda58fd4681db660e4c803 /js/service/FeedResource.js | |
parent | 8cafa3c21ee456f8e35d6b0e03687fb591cfc928 (diff) |
stuff
Diffstat (limited to 'js/service/FeedResource.js')
-rw-r--r-- | js/service/FeedResource.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/js/service/FeedResource.js b/js/service/FeedResource.js index 2eb9e4818..1f0c6c34d 100644 --- a/js/service/FeedResource.js +++ b/js/service/FeedResource.js @@ -14,8 +14,50 @@ app.factory('FeedResource', (Resource, $http, BASE_URL) => { constructor ($http, BASE_URL) { super($http, BASE_URL, 'url'); + this.ids = {}; } + + add (value) { + super.add(value); + this.ids[value.id] = this.hashMap[value.url]; + } + + + delete (id) { + let feed = this.get(id); + delete this.ids[feed.id]; + super.delete(id); + } + + + markRead () { + for(let feed of this.values) { + feed.unreadCount = 0; + } + } + + + markFeedRead (feedId) { + this.ids[feedId].unreadCount = 0; + } + + + markItemOfFeedRead (feedId) { + this.ids[feedId].unreadCount -= 1; + } + + + markItemOfFeedUnread (feedId) { + this.ids[feedId].unreadCount += 1; + } + + + getUnreadCount () { + return this.values.reduce((sum, feed) => sum + feed.unreadCount, 0); + } + + } return new FeedResource($http, BASE_URL); |