summaryrefslogtreecommitdiffstats
path: root/js/service
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-11 20:26:04 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-11 20:26:04 +0200
commitf3091d84e14537a42334e66ea6588cf2b83f9ab6 (patch)
tree943151aa564177e956d5dc1b2fff12845e48c4c0 /js/service
parentf50dba835fa58f9ba979a9038ffd185ab8fe3b96 (diff)
various work on creating feeds, folders and showing folders
Diffstat (limited to 'js/service')
-rw-r--r--js/service/FeedResource.js33
-rw-r--r--js/service/FolderResource.js42
2 files changed, 44 insertions, 31 deletions
diff --git a/js/service/FeedResource.js b/js/service/FeedResource.js
index b91a9a724..cb9b5e8f4 100644
--- a/js/service/FeedResource.js
+++ b/js/service/FeedResource.js
@@ -7,16 +7,17 @@
* @author Bernhard Posselt <dev@bernhard-posselt.com>
* @copyright Bernhard Posselt 2014
*/
-app.factory('FeedResource', function (Resource, $http, BASE_URL) {
+app.factory('FeedResource', function (Resource, $http, BASE_URL, $q) {
'use strict';
- var FeedResource = function ($http, BASE_URL) {
+ var FeedResource = function ($http, BASE_URL, $q) {
Resource.call(this, $http, BASE_URL, 'url');
this.ids = {};
this.unreadCount = 0;
this.folderUnreadCount = {};
this.folderIds = {};
this.deleted = null;
+ this.$q = $q;
};
FeedResource.prototype = Object.create(Resource.prototype);
@@ -163,8 +164,8 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL) {
};
- FeedResource.prototype.move = function (url, folderId) {
- var feed = this.get(url);
+ FeedResource.prototype.move = function (feedId, folderId) {
+ var feed = this.getById(feedId);
feed.folderId = folderId;
this.updateFolderCache();
@@ -185,11 +186,12 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL) {
title = title.toUpperCase();
}
+ // FIXME: use OC.generateUrl()
var feed = {
url: url,
- folderId: folderId,
+ folderId: folderId || 0,
title: title,
- faviconLink: '../css/loading.gif'
+ faviconLink: OC.generateUrl('/apps/news/css/loading.gif')
};
if (!this.get(url)) {
@@ -198,17 +200,24 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL) {
this.updateFolderCache();
- console.log(feed);
+ var deferred = this.$q.defer();
- return this.http({
+ this.http({
method: 'POST',
url: this.BASE_URL + '/feeds',
data: {
- url: url,
- parentFolderId: folderId,
- title: title
+ url: feed.url,
+ parentFolderId: feed.folderId,
+ title: feed.title
}
+ }).success(function (data) {
+ deferred.resolve(data);
+ }).error(function (data) {
+ feed.faviconLink = '';
+ feed.error = data.message;
});
+
+ return deferred.promise;
};
@@ -226,5 +235,5 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL) {
};
- return new FeedResource($http, BASE_URL);
+ return new FeedResource($http, BASE_URL, $q);
}); \ No newline at end of file
diff --git a/js/service/FolderResource.js b/js/service/FolderResource.js
index 6453f33b8..75fdff555 100644
--- a/js/service/FolderResource.js
+++ b/js/service/FolderResource.js
@@ -7,12 +7,13 @@
* @author Bernhard Posselt <dev@bernhard-posselt.com>
* @copyright Bernhard Posselt 2014
*/
-app.factory('FolderResource', function (Resource, $http, BASE_URL) {
+app.factory('FolderResource', function (Resource, $http, BASE_URL, $q) {
'use strict';
- var FolderResource = function ($http, BASE_URL) {
+ var FolderResource = function ($http, BASE_URL, $q) {
Resource.call(this, $http, BASE_URL, 'name');
this.deleted = null;
+ this.$q = $q;
};
FolderResource.prototype = Object.create(Resource.prototype);
@@ -46,15 +47,13 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL) {
toFolderName = toFolderName.toUpperCase();
var folder = this.get(folderName);
- // still do http request if folder exists but dont change the name
- // to have one point of failure
- if (!this.get(toFolderName)) {
- folder.name = toFolderName;
+ folder.name = toFolderName;
- delete this.hashMap[folderName];
- this.hashMap[toFolderName] = folder;
- }
+ delete this.hashMap[folderName];
+ this.hashMap[toFolderName] = folder;
+ // FIXME: check for errors
+ // FIXME: transfer feeds
return this.http({
url: this.BASE_URL + '/folders/' + folder.id + '/rename',
method: 'POST',
@@ -68,27 +67,32 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL) {
FolderResource.prototype.create = function (folderName) {
folderName = folderName.toUpperCase();
- // still do http request if folder exists but dont change the name
- // to have one point of failure
- if (!this.get(folderName)) {
- var folder = {
- name: folderName
- };
+ var folder = {
+ name: folderName
+ };
- this.add(folder);
- }
+ this.add(folder);
- return this.http({
+ var deferred = this.$q.defer();
+
+ this.http({
url: this.BASE_URL + '/folders',
method: 'POST',
data: {
folderName: folderName
}
+ }).success(function (data) {
+ deferred.resolve(data);
+ }).error(function (data) {
+ folder.error = data.message;
});
+
+ return deferred.promise;
};
FolderResource.prototype.undoDelete = function () {
+ // TODO: check for errors
if (this.deleted) {
this.add(this.deleted);
@@ -99,5 +103,5 @@ app.factory('FolderResource', function (Resource, $http, BASE_URL) {
};
- return new FolderResource($http, BASE_URL);
+ return new FolderResource($http, BASE_URL, $q);
}); \ No newline at end of file