diff --git a/src/webui/www/private/download.html b/src/webui/www/private/download.html
index 1699dbf50..918a264db 100644
--- a/src/webui/www/private/download.html
+++ b/src/webui/www/private/download.html
@@ -142,9 +142,8 @@
const encodedUrls = new URI().getData('urls');
if (encodedUrls) {
- const urls = [];
- encodedUrls.split('|').each(function(url) {
- urls.push(decodeURIComponent(url));
+ const urls = encodedUrls.split('|').map(function(url) {
+ return decodeURIComponent(url);
});
if (urls.length)
diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js
index f1dba3980..c093c9a0a 100644
--- a/src/webui/www/private/scripts/client.js
+++ b/src/webui/www/private/scripts/client.js
@@ -967,18 +967,13 @@ function registerMagnetHandler() {
function handleDownloadParam() {
// Extract torrent URL from download param in WebUI URL hash
- const hashParams = getHashParamsFromUrl();
- const url = hashParams.download;
- if (!url)
+ const downloadHash = "#download=";
+ if (location.hash.indexOf(downloadHash) !== 0)
return;
- // Remove the download param from WebUI URL hash
- delete hashParams.download;
- let newHash = Object.toQueryString(hashParams);
- newHash = newHash ? ('#' + newHash) : '';
- history.replaceState('', document.title,
- (location.pathname + location.search + newHash));
-
+ const url = location.hash.substring(downloadHash.length);
+ // Remove the processed hash from the URL
+ history.replaceState('', document.title, (location.pathname + location.search));
showDownloadPage([url]);
}
diff --git a/src/webui/www/private/scripts/mocha-init.js b/src/webui/www/private/scripts/mocha-init.js
index f4b48daa9..da447f0d8 100644
--- a/src/webui/www/private/scripts/mocha-init.js
+++ b/src/webui/www/private/scripts/mocha-init.js
@@ -135,8 +135,11 @@ const initializeWindows = function() {
showDownloadPage = function(urls) {
const id = 'downloadPage';
let contentUrl = 'download.html';
- if (urls && urls.length)
- contentUrl += '?urls=' + urls.join("|");
+ if (urls && (urls.length > 0)) {
+ contentUrl += ('?urls=' + urls.map(function(url) {
+ return encodeURIComponent(url);
+ }).join("|"));
+ }
new MochaUI.Window({
id: id,