diff options
author | Lukas Reschke <lukas@owncloud.com> | 2015-06-27 09:34:34 +0200 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2015-06-27 09:34:34 +0200 |
commit | 465606c25434312db8d24db5ceb45c27f371d924 (patch) | |
tree | ccc1c96d5ff2e1c182c6306e13d19f715cf3e530 /apps | |
parent | 28c223edc6d8fe86c47de86099b9810c7526a4be (diff) | |
parent | ca1da0acb7f02bab9385fa3cbe3fe4453a13de82 (diff) | |
download | nextcloud-server-465606c25434312db8d24db5ceb45c27f371d924.tar.gz nextcloud-server-465606c25434312db8d24db5ceb45c27f371d924.zip |
Merge pull request #17199 from owncloud/feature/show-error-when-shareservice-dies
add check if server returns a 500 and display error
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/js/filelist.js | 8 | ||||
-rw-r--r-- | apps/files/tests/js/filelistSpec.js | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 5fc444e6121..417c4b9fe99 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1131,6 +1131,14 @@ return false; } + // Did share service die or something else fail? + if (result.status === 500) { + // Go home + this.changeDirectory('/'); + OC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator')); + return false; + } + if (result.status === 404) { // go back home this.changeDirectory('/'); diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 6bcef8b6f4f..b12ac2f2517 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1290,6 +1290,17 @@ describe('OCA.Files.FileList tests', function() { fakeServer.respond(); expect(fileList.getCurrentDirectory()).toEqual('/'); }); + it('switches to root dir when current directory is unavailable', function() { + fakeServer.respondWith(/\/index\.php\/apps\/files\/ajax\/list.php\?dir=%2funexist/, [ + 500, { + "Content-Type": "application/json" + }, + '' + ]); + fileList.changeDirectory('/unexist'); + fakeServer.respond(); + expect(fileList.getCurrentDirectory()).toEqual('/'); + }); it('shows mask before loading file list then hides it at the end', function() { var showMaskStub = sinon.stub(fileList, 'showMask'); var hideMaskStub = sinon.stub(fileList, 'hideMask'); |