diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-11 20:26:04 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-11 20:26:04 +0200 |
commit | f3091d84e14537a42334e66ea6588cf2b83f9ab6 (patch) | |
tree | 943151aa564177e956d5dc1b2fff12845e48c4c0 /js/service | |
parent | f50dba835fa58f9ba979a9038ffd185ab8fe3b96 (diff) |
various work on creating feeds, folders and showing folders
Diffstat (limited to 'js/service')
-rw-r--r-- | js/service/FeedResource.js | 33 | ||||
-rw-r--r-- | js/service/FolderResource.js | 42 |
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 |