diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-22 02:53:56 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-22 02:53:56 +0200 |
commit | 7030132583f56f14b9c803fe0e56a560fac30155 (patch) | |
tree | ef8d7ff65c6c783929f45db7f3d818ee9c7b810c /js | |
parent | 6b46f7b265e2086e06629cd5d8d3f6f6ec517b8b (diff) |
implement read all
Diffstat (limited to 'js')
-rw-r--r-- | js/build/app.js | 21 | ||||
-rw-r--r-- | js/service/ItemResource.js | 20 | ||||
-rw-r--r-- | js/tests/unit/service/ItemResourceSpec.js | 31 |
3 files changed, 62 insertions, 10 deletions
diff --git a/js/build/app.js b/js/build/app.js index faa2a4e44..38ed97fda 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -296,10 +296,6 @@ var $__build_47_app__ = function () { data: { isRead: isRead } }); }, - keepUnread: function (itemId) { - this.get(itemId).keepUnread = true; - return this.read(itemId, false); - }, readFeed: function (feedId) { var read = arguments[1] !== void 0 ? arguments[1] : true; for (var $__3 = this.values.filter(function (i) { @@ -315,6 +311,23 @@ var $__build_47_app__ = function () { } } return this.http.post(this.BASE_URL + '/feeds/' + feedId + '/read'); + }, + readAll: function () { + for (var $__3 = this.values[$traceurRuntime.toProperty(Symbol.iterator)](), $__4; !($__4 = $__3.next()).done;) { + try { + throw undefined; + } catch (item) { + item = $__4.value; + { + item.unread = false; + } + } + } + return this.http.post(this.BASE_URL + '/items/read'); + }, + keepUnread: function (itemId) { + this.get(itemId).keepUnread = true; + return this.read(itemId, false); } }, {}, Resource); return new ItemResource($http, BASE_URL); diff --git a/js/service/ItemResource.js b/js/service/ItemResource.js index 779355e0a..dc74f637a 100644 --- a/js/service/ItemResource.js +++ b/js/service/ItemResource.js @@ -79,12 +79,6 @@ app.factory('ItemResource', (Resource, $http, BASE_URL) => { } - keepUnread (itemId) { - this.get(itemId).keepUnread = true; - return this.read(itemId, false); - } - - readFeed (feedId, read=true) { for (let item of this.values.filter(i => i.feedId === feedId)) { item.unread = !read; @@ -93,6 +87,20 @@ app.factory('ItemResource', (Resource, $http, BASE_URL) => { } + readAll () { + for (let item of this.values) { + item.unread = false; + } + return this.http.post(`${this.BASE_URL}/items/read`); + } + + + keepUnread (itemId) { + this.get(itemId).keepUnread = true; + return this.read(itemId, false); + } + + } return new ItemResource($http, BASE_URL); diff --git a/js/tests/unit/service/ItemResourceSpec.js b/js/tests/unit/service/ItemResourceSpec.js index 870824efe..0316d39cc 100644 --- a/js/tests/unit/service/ItemResourceSpec.js +++ b/js/tests/unit/service/ItemResourceSpec.js @@ -155,6 +155,37 @@ describe('ItemResource', () => { })); + it ('should mark all as read', inject((ItemResource) => { + http.expectPOST('base/items/read').respond(200, {}); + + ItemResource.receive([ + { + id: 3, + feedId: 4, + unread: true + }, + { + id: 4, + feedId: 3, + unread: true + }, + { + id: 5, + feedId: 4, + unread: true + } + ], 'items'); + + ItemResource.readAll(4); + + http.flush(); + + expect(ItemResource.get(3).unread).toBe(false); + expect(ItemResource.get(4).unread).toBe(false); + expect(ItemResource.get(5).unread).toBe(false); + })); + + afterEach(() => { http.verifyNoOutstandingExpectation(); http.verifyNoOutstandingRequest(); |