diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index 8269112992..16576651a2 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -148,11 +148,14 @@ OCA.Sharing.PublicApp = { if (this.fileList) { // TODO: move this to a separate PublicFileList class that extends OCA.Files.FileList (+ unit tests) - this.fileList.getDownloadUrl = function (filename, dir) { - if ($.isArray(filename)) { + this.fileList.getDownloadUrl = function (filename, dir, isDir) { + var path = dir || this.getCurrentDirectory(); + if (filename && !_.isArray(filename) && !isDir) { + return OC.getRootPath() + '/public.php/webdav' + OC.joinPaths(path, filename); + } + if (_.isArray(filename)) { filename = JSON.stringify(filename); } - var path = dir || FileList.getCurrentDirectory(); var params = { path: path, files: filename diff --git a/apps/files_sharing/tests/js/publicAppSpec.js b/apps/files_sharing/tests/js/publicAppSpec.js index 1ea5f7ed1b..74f008025e 100644 --- a/apps/files_sharing/tests/js/publicAppSpec.js +++ b/apps/files_sharing/tests/js/publicAppSpec.js @@ -101,12 +101,12 @@ describe('OCA.Sharing.PublicApp tests', function() { it('returns correct download URL for single files', function() { expect(fileList.getDownloadUrl('some file.txt')) - .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fsubdir&files=some%20file.txt'); - expect(fileList.getDownloadUrl('some file.txt', '/anotherpath/abc')) - .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2Fanotherpath%2Fabc&files=some%20file.txt'); + .toEqual('/owncloud/public.php/webdav/subdir/some file.txt'); + expect(fileList.getDownloadUrl('some file.txt', '/another path/abc')) + .toEqual('/owncloud/public.php/webdav/another path/abc/some file.txt'); fileList.changeDirectory('/'); expect(fileList.getDownloadUrl('some file.txt')) - .toEqual(OC.webroot + '/index.php/s/sh4tok/download?path=%2F&files=some%20file.txt'); + .toEqual('/owncloud/public.php/webdav/some file.txt'); }); it('returns correct download URL for multiple files', function() { expect(fileList.getDownloadUrl(['a b c.txt', 'd e f.txt']))