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 | |
parent | 8cafa3c21ee456f8e35d6b0e03687fb591cfc928 (diff) |
stuff
Diffstat (limited to 'js/service')
-rw-r--r-- | js/service/FeedResource.js | 42 | ||||
-rw-r--r-- | js/service/Publisher.js | 2 |
2 files changed, 43 insertions, 1 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); diff --git a/js/service/Publisher.js b/js/service/Publisher.js index dd420f629..9e17e1494 100644 --- a/js/service/Publisher.js +++ b/js/service/Publisher.js @@ -29,7 +29,7 @@ app.service('Publisher', function () { this.publishAll = (data) => { for (let [channel, messages] of items(data)) { if (this.channels[channel] !== undefined) { - for (let listener of this.channels[channel]) { + for(let listener of this.channels[channel]) { listener.receive(messages, channel); } } |