summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-22 02:53:56 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-22 02:53:56 +0200
commit7030132583f56f14b9c803fe0e56a560fac30155 (patch)
treeef8d7ff65c6c783929f45db7f3d818ee9c7b810c
parent6b46f7b265e2086e06629cd5d8d3f6f6ec517b8b (diff)
implement read all
-rw-r--r--js/build/app.js21
-rw-r--r--js/service/ItemResource.js20
-rw-r--r--js/tests/unit/service/ItemResourceSpec.js31
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();