diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-06-30 16:27:31 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-06-30 16:27:31 +0200 |
commit | 30c240a145dd8c9e54b4cd64a78f1020e41a15f4 (patch) | |
tree | a2fc0ec661796e17b608a09badc80fa7ff896518 /apps/files | |
parent | 4526bc0ba6f23a2fae5f7372d9b7702736eb46f6 (diff) | |
download | nextcloud-server-30c240a145dd8c9e54b4cd64a78f1020e41a15f4.tar.gz nextcloud-server-30c240a145dd8c9e54b4cd64a78f1020e41a15f4.zip |
If loading a directory fails, navigate back to the previous directory
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/js/filelist.js | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 0477a657035..ef28794b1b4 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -836,13 +836,18 @@ * @param {boolean} force set to true to force changing directory */ changeDirectory: function(targetDir, changeUrl, force) { + var self = this; var currentDir = this.getCurrentDirectory(); targetDir = targetDir || '/'; if (!force && currentDir === targetDir) { return; } this._setCurrentDir(targetDir, changeUrl); - this.reload(); + this.reload().then(function(success){ + if (!success) { + self.changeDirectory(currentDir, true); + } + }); }, linkTo: function(dir) { return OC.linkTo('files', 'index.php')+"?dir="+ encodeURIComponent(dir).replace(/%2F/g, '/'); @@ -902,7 +907,6 @@ * @brief Reloads the file list using ajax call */ reload: function() { - var self = this; this._selectedFiles = {}; this._selectionSummary.clear(); this.$el.find('.select-all').prop('checked', false); @@ -916,14 +920,10 @@ dir : this.getCurrentDirectory(), sort: this._sort, sortdirection: this._sortDirection - }, - error: function(result) { - self.reloadCallback(result); - }, - success: function(result) { - self.reloadCallback(result); } }); + var callBack = this.reloadCallback.bind(this); + return this._reloadCall.then(callBack, callBack); }, reloadCallback: function(result) { delete this._reloadCall; @@ -931,17 +931,17 @@ if (!result || result.status === 'error') { OC.Notification.show(result.data.message); - return; + return false; } if (result.status === 404) { // go back home this.changeDirectory('/'); - return; + return false; } // aborted ? if (result.status === 0){ - return; + return true; } // TODO: should rather return upload file size through @@ -953,6 +953,7 @@ } this.setFiles(result.data.files); + return true }, updateStorageStatistics: function(force) { |