diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-12 23:54:49 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-09-12 23:54:49 +0200 |
commit | 72c4fc9acb1380021eb4665af78ef8e26058c86a (patch) | |
tree | 8ae59a2df7f4deaafbbb61060a47d2efddf8702b /js/build/app.js | |
parent | f7feeecf398fc9a7ba62596f784bf9ec28677940 (diff) |
rename folder
Diffstat (limited to 'js/build/app.js')
-rw-r--r-- | js/build/app.js | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/js/build/app.js b/js/build/app.js index 9c1eed55d..1178f73e7 100644 --- a/js/build/app.js +++ b/js/build/app.js @@ -534,8 +534,25 @@ app.controller('NavigationController', feed.editing = false; }; - this.renameFolder = function (folder) { - console.log(folder); + this.renameFolder = function (folder, name) { + folder.renameError = ''; + this.renamingFolder = true; + var self = this; + + if (folder.name === name) { + folder.renameError = ''; + folder.editing = false; + this.renamingFolder = false; + } else { + FolderResource.rename(folder.name, name).then(function () { + folder.renameError = ''; + folder.editing = false; + }, function (message) { + folder.renameError = message; + }).finally(function () { + self.renamingFolder = false; + }); + } }; // TBD @@ -895,21 +912,26 @@ app.factory('FolderResource', ["Resource", "$http", "BASE_URL", "$q", function ( FolderResource.prototype.rename = function (folderName, toFolderName) { var folder = this.get(folderName); + var deferred = this.$q.defer(); + var self = this; - folder.name = toFolderName; - - delete this.hashMap[folderName]; - this.hashMap[toFolderName] = folder; - - // FIXME: check for errors - // FIXME: transfer feeds - return this.http({ + this.http({ url: this.BASE_URL + '/folders/' + folder.id + '/rename', method: 'POST', data: { folderName: toFolderName } + }).success(function () { + folder.name = toFolderName; + delete self.hashMap[folderName]; + self.hashMap[toFolderName] = folder; + + deferred.resolve(); + }).error(function (data) { + deferred.reject(data.message); }); + + return deferred.promise; }; |