diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-12 19:40:16 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-12 19:40:16 +0200 |
commit | b86a5591667ca8de3a83ef5bcbc756e356979b5a (patch) | |
tree | 4e364688193ab00a015301659e126ba2c6397a55 /js/controller | |
parent | 748500380e39880e54ee73ebaf5234ddf442e149 (diff) |
adding feeds and folders, lady and gentlemen :P
Diffstat (limited to 'js/controller')
-rw-r--r-- | js/controller/NavigationController.js | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/js/controller/NavigationController.js b/js/controller/NavigationController.js index c1eb8dcf5..3c762fcc9 100644 --- a/js/controller/NavigationController.js +++ b/js/controller/NavigationController.js @@ -84,7 +84,7 @@ function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, if (type === FEED_TYPE.FEED) { var feed = FeedResource.getById($route.current.params.id); - if (feed.folderId === folderId) { + if (feed !== undefined && feed.folderId === folderId) { return true; } } @@ -129,48 +129,57 @@ function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource, }; this.createFeed = function (feed) { + var self = this; this.newFolder = false; + this.addingFeed = true; - var self = this; - var folderName = feed.folder; - var folderId = feed.folderId || {id: 0}; + var newFolder = feed.newFolder; + var existingFolder = feed.existingFolder || {id: 0}; // we dont need to create a new folder - if (folderName === undefined) { - folderId.getsFeed = true; + if (newFolder === undefined) { + // this is set to display the feed in any folder, even if the folder + // is closed or has no unread articles + existingFolder.getsFeed = true; - FeedResource.create(feed.url, folderId.id, undefined) + FeedResource.create(feed.url, existingFolder.id, undefined) .then(function (data) { + Publisher.publishAll(data); // set folder as default - var createdFeed = data.feeds[0]; + $location.path('/items/feeds/' + data.feeds[0].id + '/'); - // load created feed - $location.path('/items/feeds/' + createdFeed.id); - folderId.getsFeed = undefined; - }, function () { - folderId.getsFeed = undefined; + }).finally(function () { + existingFolder.getsFeed = undefined; + feed.url = ''; + self.addingFeed = false; }); + } else { // create folder first and then the feed - FolderResource.create(folderName).then(function (data) { + FolderResource.create(newFolder).then(function (data) { + Publisher.publishAll(data); - feed.folderId = data.folders[0]; - feed.folder = undefined; + // set the created folder on scope so its preselected for the + // next addition + feed.existingFolder = FolderResource.get(data.folders[0].name); + feed.newFolder = undefined; self.createFeed(feed); }); } - - feed.url = ''; }; this.createFolder = function (folder) { + var self = this; + this.addingFolder = true; FolderResource.create(folder.name).then(function (data) { Publisher.publishAll(data); + }).finally(function () { + self.addingFolder = false; + folder.name = ''; }); - folder.name = ''; }; this.moveFeed = function (feedId, folderId) { |