diff options
Diffstat (limited to 'js/service')
-rw-r--r-- | js/service/FeedResource.js | 13 | ||||
-rw-r--r-- | js/service/OPMLImporter.js | 9 |
2 files changed, 18 insertions, 4 deletions
diff --git a/js/service/FeedResource.js b/js/service/FeedResource.js index 0b00019e6..5308b4635 100644 --- a/js/service/FeedResource.js +++ b/js/service/FeedResource.js @@ -206,10 +206,15 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL, $q) { }; - FeedResource.prototype.reversiblyDelete = function (id, updateCache) { + FeedResource.prototype.reversiblyDelete = function (id, updateCache, + isFolder) { var feed = this.getById(id); - if (feed) { + // if a folder is deleted it does not have to trigger the delete + // attribute for the feed because the feed is not deleted, its just not + // displayed. Otherwise this causes the feed to also be deleted again + // because the folder destroys the feed's scope + if (feed && isFolder !== true) { feed.deleted = true; } @@ -225,7 +230,7 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL, $q) { var self = this; var promises = []; this.getByFolderId(folderId).forEach(function (feed) { - promises.push(self.reversiblyDelete(feed.id, false)); + promises.push(self.reversiblyDelete(feed.id, false, true)); }); this.updateUnreadCache(); @@ -237,7 +242,7 @@ app.factory('FeedResource', function (Resource, $http, BASE_URL, $q) { FeedResource.prototype.delete = function (url, updateCache) { var feed = this.get(url); - if (feed.id) { + if (feed !== undefined && feed.id) { delete this.ids[feed.id]; } diff --git a/js/service/OPMLImporter.js b/js/service/OPMLImporter.js index 9644ee3dd..2ea2e32fd 100644 --- a/js/service/OPMLImporter.js +++ b/js/service/OPMLImporter.js @@ -24,6 +24,11 @@ app.service('OPMLImporter', function (FeedResource, FolderResource, Publisher, FolderResource.get(folderName) !== undefined) { var folder = FolderResource.get(folderName); folder.opened = true; + + // display folder while adding the feed + folder.getsFeed = true; + folder.getsFeedCounter = folder.getsFeedCounter || 0; + folder.getsFeedCounter += 1; folderId = folder.id; } @@ -34,6 +39,10 @@ app.service('OPMLImporter', function (FeedResource, FolderResource, Publisher, Publisher.publishAll(data); }) .finally(function () { + folder.getsFeedCounter -= 1; + if (folderId !== 0 && folder.getsFeedCounter === 0) { + folder.getsFeed = false; + } startFeedJob(queue); }); } |