summaryrefslogtreecommitdiffstats
path: root/js/controller
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-09-13 02:42:19 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-09-13 02:42:19 +0200
commit0a818fa9ff21d98c16def02cfbf1043ea675d2a9 (patch)
tree53cfa5d989fe2046d81fe086fd26d1c8ae5dd6b6 /js/controller
parent8c38ef40bd9b1ff794de218ea71d43971bef4c59 (diff)
delete + undo folders
Diffstat (limited to 'js/controller')
-rw-r--r--js/controller/NavigationController.js30
1 files changed, 24 insertions, 6 deletions
diff --git a/js/controller/NavigationController.js b/js/controller/NavigationController.js
index cc946ae30..d845dcbe3 100644
--- a/js/controller/NavigationController.js
+++ b/js/controller/NavigationController.js
@@ -243,20 +243,38 @@ function ($route, FEED_TYPE, FeedResource, FolderResource, ItemResource,
};
- // TBD
+ this._deletedFeedsBackup = {};
this.reversiblyDeleteFolder = function (folder) {
folder.deleted = true;
- console.log(folder);
+
+ var self = this;
+ var feeds = FeedResource.getByFolderId(folder.id);
+
+ // keep feeds for undo
+ feeds.forEach(function (feed) {
+ self._deletedFeedsBackup[folder.name] =
+ self._deletedFeedsBackup[folder.name] || [];
+ self._deletedFeedsBackup[folder.name].push(feed);
+ FeedResource.delete(feed.id);
+ });
+
+ FolderResource.reversiblyDelete(folder.id);
};
this.undoDeleteFolder = function (folder) {
- console.log(folder);
- // todo remote stuff
+ folder.deleted = false;
+
+ var deletedFeeds = this._deletedFeedsBackup[folder.name];
+ if (deletedFeeds !== undefined) {
+ FeedResource.receive(deletedFeeds);
+ }
+
+ FolderResource.undoDelete(folder.id);
};
this.deleteFolder = function (folder) {
- //folder.deleted = false;
- console.log('remove ' + folder);
+ delete this._deletedFeedsBackup[folder.name];
+ FolderResource.delete(folder.name);
};
var self = this;