summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-22 02:50:55 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-22 02:50:55 +0200
commit6b46f7b265e2086e06629cd5d8d3f6f6ec517b8b (patch)
tree2a5985cfa2ec9c65b877ca30cb3b475cfebd1ebb /js
parent23246ea3987d8a60d3ea344ca93d209d082c3337 (diff)
increase starcount if starring
Diffstat (limited to 'js')
-rw-r--r--js/app/Config.js2
-rw-r--r--js/app/Run.js16
-rw-r--r--js/build/app.js35
-rw-r--r--js/service/ItemResource.js24
-rw-r--r--js/tests/unit/service/ItemResourceSpec.js4
5 files changed, 55 insertions, 26 deletions
diff --git a/js/app/Config.js b/js/app/Config.js
index d347415b9..17b823218 100644
--- a/js/app/Config.js
+++ b/js/app/Config.js
@@ -62,7 +62,7 @@ app.config(function ($routeProvider, $provide, $httpProvider) {
let deferred = $q.defer();
$http({
- url: BASE_URL + '/items',
+ url: `${BASE_URL}/items`,
method: 'GET',
params: parameters
}).success((data) => {
diff --git a/js/app/Run.js b/js/app/Run.js
index 1614deef1..1d69a9c8a 100644
--- a/js/app/Run.js
+++ b/js/app/Run.js
@@ -25,23 +25,23 @@ app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource,
// load feeds, settings and last read feed
let settingsDeferred = $q.defer();
- $http.get(BASE_URL + '/settings').success((data) => {
+ $http.get(`${BASE_URL}/settings`).success((data) => {
Publisher.publishAll(data);
settingsDeferred.resolve();
});
let activeFeedDeferred = $q.defer();
- $http.get(BASE_URL + '/feeds/active').success((data) => {
+ $http.get(`${BASE_URL}/feeds/active`).success((data) => {
let url;
switch (data.type) {
case FEED_TYPE.FEED:
- url = '/items/feeds/' + data.id;
+ url = '/items/feeds/${data.id}';
break;
case FEED_TYPE.FOLDER:
- url = '/items/folders/' + data.id;
+ url = '/items/folders/${data.id}';
break;
case FEED_TYPE.STARRED:
@@ -57,13 +57,13 @@ app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource,
});
let folderDeferred = $q.defer();
- $http.get(BASE_URL + '/folders').success((data) => {
+ $http.get(`${BASE_URL}/folders`).success((data) => {
Publisher.publishAll(data);
folderDeferred.resolve();
});
let feedDeferred = $q.defer();
- $http.get(BASE_URL + '/feeds').success((data) => {
+ $http.get(`${BASE_URL}/feeds`).success((data) => {
Publisher.publishAll(data);
feedDeferred.resolve();
});
@@ -83,8 +83,8 @@ app.run(($rootScope, $location, $http, $q, $interval, Loading, ItemResource,
// refresh feeds and folders
$interval(() => {
- $http.get(BASE_URL + '/feeds');
- $http.get(BASE_URL + '/folders');
+ $http.get(`${BASE_URL}/feeds`);
+ $http.get(`${BASE_URL}/folders`);
}, REFRESH_RATE * 1000);
diff --git a/js/build/app.js b/js/build/app.js
index ba5391389..faa2a4e44 100644
--- a/js/build/app.js
+++ b/js/build/app.js
@@ -116,10 +116,10 @@ var $__build_47_app__ = function () {
var url;
switch (data.type) {
case FEED_TYPE.FEED:
- url = '/items/feeds/' + data.id;
+ url = '/items/feeds/${data.id}';
break;
case FEED_TYPE.FOLDER:
- url = '/items/folders/' + data.id;
+ url = '/items/folders/${data.id}';
break;
case FEED_TYPE.STARRED:
url = '/items/starred';
@@ -246,6 +246,7 @@ var $__build_47_app__ = function () {
$http,
BASE_URL
]);
+ this.starredCount = 0;
};
var $ItemResource = ItemResource;
$traceurRuntime.createClass(ItemResource, {
@@ -270,16 +271,36 @@ var $__build_47_app__ = function () {
getStarredCount: function () {
return this.starredCount;
},
- markRead: function (itemId) {
- var read = arguments[1] !== void 0 ? arguments[1] : true;
- this.get(itemId).unread = !read;
+ star: function (itemId) {
+ var isStarred = arguments[1] !== void 0 ? arguments[1] : true;
+ var it = this.get(itemId);
+ var url = this.BASE_URL + '/items/' + it.feedId + '/' + it.guidHash + '/star';
+ it.starred = isStarred;
+ if (isStarred) {
+ this.starredCount += 1;
+ } else {
+ this.starredCount -= 1;
+ }
+ return this.http({
+ url: url,
+ method: 'POST',
+ data: { isStarred: isStarred }
+ });
+ },
+ read: function (itemId) {
+ var isRead = arguments[1] !== void 0 ? arguments[1] : true;
+ this.get(itemId).unread = !isRead;
return this.http({
url: this.BASE_URL + '/items/' + itemId + '/read',
method: 'POST',
- data: { isRead: read }
+ data: { isRead: isRead }
});
},
- markFeedRead: function (feedId) {
+ 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) {
return i.feedId === feedId;
diff --git a/js/service/ItemResource.js b/js/service/ItemResource.js
index 33f3efc52..779355e0a 100644
--- a/js/service/ItemResource.js
+++ b/js/service/ItemResource.js
@@ -15,6 +15,7 @@ app.factory('ItemResource', (Resource, $http, BASE_URL) => {
constructor ($http, BASE_URL) {
super($http, BASE_URL);
+ this.starredCount = 0;
}
@@ -44,30 +45,35 @@ app.factory('ItemResource', (Resource, $http, BASE_URL) => {
}
- star (itemId, star=true) {
- let item = this.get(itemId);
- let base = this.BASE_URL;
- let url = `${base}/items/${item.feedId}/${item.guidHash}/star`;
+ star (itemId, isStarred=true) {
+ let it = this.get(itemId);
+ let url = `${this.BASE_URL}/items/${it.feedId}/${it.guidHash}/star`;
- item.starred = star;
+ it.starred = isStarred;
+
+ if (isStarred) {
+ this.starredCount += 1;
+ } else {
+ this.starredCount -= 1;
+ }
return this.http({
url: url,
method: 'POST',
data: {
- isStarred: star
+ isStarred: isStarred
}
});
}
- read (itemId, read=true) {
- this.get(itemId).unread = !read;
+ read (itemId, isRead=true) {
+ this.get(itemId).unread = !isRead;
return this.http({
url: `${this.BASE_URL}/items/${itemId}/read`,
method: 'POST',
data: {
- isRead: read
+ isRead: isRead
}
});
}
diff --git a/js/tests/unit/service/ItemResourceSpec.js b/js/tests/unit/service/ItemResourceSpec.js
index 49989472f..870824efe 100644
--- a/js/tests/unit/service/ItemResourceSpec.js
+++ b/js/tests/unit/service/ItemResourceSpec.js
@@ -99,7 +99,8 @@ describe('ItemResource', () => {
it ('should star item', inject((ItemResource) => {
- http.expectPOST('base/items/4/a/star', {isStarred: true}).respond(200, {});
+ http.expectPOST('base/items/4/a/star', {isStarred: true})
+ .respond(200, {});
ItemResource.receive([
{
@@ -120,6 +121,7 @@ describe('ItemResource', () => {
http.flush();
expect(ItemResource.get(3).starred).toBe(true);
+ expect(ItemResource.getStarredCount()).toBe(1);
}));