diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-13 02:42:19 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-13 02:42:19 +0200 |
commit | 0a818fa9ff21d98c16def02cfbf1043ea675d2a9 (patch) | |
tree | 53cfa5d989fe2046d81fe086fd26d1c8ae5dd6b6 /js/controller | |
parent | 8c38ef40bd9b1ff794de218ea71d43971bef4c59 (diff) |
delete + undo folders
Diffstat (limited to 'js/controller')
-rw-r--r-- | js/controller/NavigationController.js | 30 |
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; |