summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2014-06-30 16:27:31 +0200
committerRobin Appelman <icewind@owncloud.com>2014-06-30 16:27:31 +0200
commit30c240a145dd8c9e54b4cd64a78f1020e41a15f4 (patch)
treea2fc0ec661796e17b608a09badc80fa7ff896518 /apps/files
parent4526bc0ba6f23a2fae5f7372d9b7702736eb46f6 (diff)
downloadnextcloud-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.js23
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) {