From 0a818fa9ff21d98c16def02cfbf1043ea675d2a9 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Sat, 13 Sep 2014 02:42:19 +0200 Subject: delete + undo folders --- js/controller/NavigationController.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'js/controller/NavigationController.js') 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; -- cgit v1.2.3