summaryrefslogtreecommitdiffstats
path: root/apps/files/js
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-01-24 13:32:31 +0100
committerVincent Petry <pvince81@owncloud.com>2014-01-24 13:38:39 +0100
commitc6695bbd764be9f43067c09894e36422c2b92b49 (patch)
tree0d1ad131a1c7f0ff4dd0aa8df09e0f47f4ea93d8 /apps/files/js
parent0671c58e361f2ccf2cd23d73a9712c1a31e838ce (diff)
downloadnextcloud-server-c6695bbd764be9f43067c09894e36422c2b92b49.tar.gz
nextcloud-server-c6695bbd764be9f43067c09894e36422c2b92b49.zip
Fixed download URL in public page
- Refactored download URL building to make it overridable - Added download URL override in public page - Added JS unit tests for download URL - Added OC.redirect() method to facilitate unit testing
Diffstat (limited to 'apps/files/js')
-rw-r--r--apps/files/js/fileactions.js5
-rw-r--r--apps/files/js/filelist.js14
2 files changed, 18 insertions, 1 deletions
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 74bb711ef3d..eb59e71a030 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -173,7 +173,10 @@ $(document).ready(function () {
FileActions.register(downloadScope, 'Download', OC.PERMISSION_READ, function () {
return OC.imagePath('core', 'actions/download');
}, function (filename) {
- window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val());
+ var url = FileList.getDownloadUrl(filename);
+ if (url) {
+ OC.redirect(url);
+ }
});
}
$('#fileList tr').each(function () {
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 66968ab54c7..63fd0f4ce05 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -780,6 +780,20 @@ var FileList={
$('#fileList tr.searchresult').each(function(i,e) {
$(e).removeClass("searchresult");
});
+ },
+
+ /**
+ * Returns the download URL of the given file
+ * @param filename file name of the file
+ * @param dir optional directory in which the file name is, defaults to the current directory
+ */
+ getDownloadUrl: function(filename, dir) {
+ var params = {
+ files: filename,
+ dir: dir || FileList.getCurrentDirectory(),
+ download: null
+ };
+ return OC.filePath('files', 'ajax', 'download.php') + '?' + OC.buildQueryString(params);
}
};