diff options
Diffstat (limited to 'js/build/app.js')
-rw-r--r-- | js/build/app.js | 131 |
1 files changed, 85 insertions, 46 deletions
diff --git a/js/build/app.js b/js/build/app.js index 75c0a9f87..9fe66bf6f 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -331,8 +331,8 @@ app.controller('ContentController', }]); app.controller('NavigationController', -["$route", "FEED_TYPE", "FeedResource", "FolderResource", "ItemResource", "SettingsResource", function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, - SettingsResource) { +["$route", "FEED_TYPE", "FeedResource", "FolderResource", "ItemResource", "SettingsResource", "Publisher", function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, + SettingsResource, Publisher) { 'use strict'; this.feedError = ''; @@ -435,32 +435,58 @@ app.controller('NavigationController', }; this.folderNameExists = function (folderName) { - return FolderResource.get(folderName) !== undefined; + folderName = folderName || ''; + return FolderResource.get(folderName.toUpperCase()) !== undefined; }; - // TBD - this.isAddingFolder = function () { - return true; + this.createFeed = function (feed) { + this.newFolder = false; + + var self = this; + + // we dont need to create a new folder + if (feed.folder === undefined) { + FeedResource.create(feed.url, feed.folderId, undefined) + .then(function (data) { + Publisher.publishAll(data); + }); + } else { + // create folder first and then the feed + FolderResource.create(feed.folder).then(function (data) { + Publisher.publishAll(data); + + self.createFeed({ + url: feed.url, + folderId: data.name + }); + + feed.folderId = data.name; + feed.folder = ''; + }); + } + + feed.url = ''; }; this.createFolder = function (folder) { - console.log(folder.name); + FolderResource.create(folder.name).then(function (data) { + Publisher.publishAll(data); + }); folder.name = ''; }; - this.createFeed = function (feed) { - this.newFolder = false; - console.log(feed.url + feed.folder); - feed.url = ''; + this.moveFeed = function (feedId, folderId) { + FeedResource.move(feedId, folderId); }; + // TBD this.renameFeed = function (feed) { feed.editing = false; // todo remote stuff }; - this.renameFolder = function () { - console.log('TBD'); + this.renameFolder = function (folder) { + console.log(folder); }; this.deleteFeed = function (feed) { @@ -481,8 +507,8 @@ app.controller('NavigationController', console.log(folderName); }; - this.moveFeed = function (feedId, folderId) { - console.log(feedId + folderId); + this.removeFolder = function (folder) { + console.log('remove ' + folder); }; }]); @@ -546,16 +572,17 @@ app.filter('unreadCountFormatter', function () { return unreadCount; }; }); -app.factory('FeedResource', ["Resource", "$http", "BASE_URL", function (Resource, $http, BASE_URL) { +app.factory('FeedResource', ["Resource", "$http", "BASE_URL", "$q", 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); @@ -702,8 +729,8 @@ app.factory('FeedResource', ["Resource", "$http", "BASE_URL", function (Resource }; - 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(); @@ -724,11 +751,12 @@ app.factory('FeedResource', ["Resource", "$http", "BASE_URL", function (Resource 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)) { @@ -737,17 +765,24 @@ app.factory('FeedResource', ["Resource", "$http", "BASE_URL", function (Resource 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; }; @@ -765,14 +800,15 @@ app.factory('FeedResource', ["Resource", "$http", "BASE_URL", function (Resource }; - return new FeedResource($http, BASE_URL); + return new FeedResource($http, BASE_URL, $q); }]); -app.factory('FolderResource', ["Resource", "$http", "BASE_URL", function (Resource, $http, BASE_URL) { +app.factory('FolderResource', ["Resource", "$http", "BASE_URL", "$q", 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); @@ -806,15 +842,13 @@ app.factory('FolderResource', ["Resource", "$http", "BASE_URL", function (Resour 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', @@ -828,27 +862,32 @@ app.factory('FolderResource', ["Resource", "$http", "BASE_URL", function (Resour 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); @@ -859,7 +898,7 @@ app.factory('FolderResource', ["Resource", "$http", "BASE_URL", function (Resour }; - return new FolderResource($http, BASE_URL); + return new FolderResource($http, BASE_URL, $q); }]); app.factory('ItemResource', ["Resource", "$http", "BASE_URL", "ITEM_BATCH_SIZE", function (Resource, $http, BASE_URL, ITEM_BATCH_SIZE) { |