summaryrefslogtreecommitdiffstats
path: root/js/service
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-18 15:06:28 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-18 15:06:28 +0200
commitafa1a7887f7f49d565bbb6bae61eb044ee8b8e09 (patch)
treed86308a5c852c2c8bd9aa0fdd8c1520cf3f75ee2 /js/service
parent682f89fa8d6ad3748b0a64f4e3a1c71a6982a1d1 (diff)
fix delete folder
Diffstat (limited to 'js/service')
-rw-r--r--js/service/FeedResource.js13
-rw-r--r--js/service/OPMLImporter.js9
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);
});
}