diff options
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/js/filelist.js | 11 | ||||
-rw-r--r-- | apps/files/tests/js/filelistSpec.js | 26 |
2 files changed, 35 insertions, 2 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 400e3e28f00..80b30968eff 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -945,6 +945,13 @@ this.hideMask(); if (!result || result.status === 'error') { + // if the error is not related to folder we're trying to load, reload the page to handle logout etc + if (result.data.error === 'authentication_error' || + result.data.error === 'token_expired' || + result.data.error === 'application_not_enabled' + ) { + OC.redirect(OC.generateUrl('apps/files')); + } OC.Notification.show(result.data.message); return false; } @@ -968,7 +975,7 @@ } this.setFiles(result.data.files); - return true + return true; }, updateStorageStatistics: function(force) { @@ -1566,7 +1573,7 @@ numMatch=base.match(/\((\d+)\)/); var num=2; if (numMatch && numMatch.length>0) { - num=parseInt(numMatch[numMatch.length-1])+1; + num=parseInt(numMatch[numMatch.length-1], 10)+1; base=base.split('('); base.pop(); base=$.trim(base.join('(')); diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 713cd5468d8..ae22ae0123e 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1933,4 +1933,30 @@ describe('OCA.Files.FileList tests', function() { }); }); }); + describe('Handeling errors', function () { + beforeEach(function () { + redirectStub = sinon.stub(OC, 'redirect'); + + fileList = new OCA.Files.FileList($('#app-content-files')); + }); + afterEach(function () { + fileList = undefined; + + redirectStub.restore(); + }); + it('reloads the page on authentication errors', function () { + fileList.reload(); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({ + status: 'error', + data: { + 'error': 'authentication_error' + } + }) + ); + expect(redirectStub.calledWith(OC.generateUrl('apps/files'))).toEqual(true); + }); + }); }); |