From 66dc3028d75c455f118c484b9de0708409026451 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Fri, 23 May 2014 02:54:58 +0200 Subject: stuff --- js/service/FeedResource.js | 42 ++++++++++++++++++++++++++++++++++++++++++ js/service/Publisher.js | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) (limited to 'js/service') 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); } } -- cgit v1.2.3