mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-05-11 01:04:19 +00:00
Source file download in new Utils function
Adds a function for downloading a file from a remote URL in the Utils class and uses it to revise one similar usage in FileBrowser.js Signed-off-by: Daniel Tschlatscher <d.tschlatscher@proxmox.com> Tested-by: Stefan Sterz <s.sterz@proxmox.com> Reviewed-by: Stefan Sterz <s.sterz@proxmox.com>
This commit is contained in:
parent
a95dbf6dea
commit
8189ce639c
13
src/Utils.js
13
src/Utils.js
@ -1360,6 +1360,19 @@ utilities: {
|
||||
}
|
||||
return `<span class="${cls}" style="${style}">${string}</span>`;
|
||||
},
|
||||
|
||||
// Setting filename here when downloading from a remote url sometimes fails in chromium browsers
|
||||
// because of a bug when using attribute download in conjunction with a self signed certificate.
|
||||
// For more info see https://bugs.chromium.org/p/chromium/issues/detail?id=993362
|
||||
downloadAsFile: function(source, fileName) {
|
||||
let hiddenElement = document.createElement('a');
|
||||
hiddenElement.href = source;
|
||||
hiddenElement.target = '_blank';
|
||||
if (fileName) {
|
||||
hiddenElement.download = fileName;
|
||||
}
|
||||
hiddenElement.click();
|
||||
},
|
||||
},
|
||||
|
||||
singleton: true,
|
||||
|
@ -101,18 +101,17 @@ Ext.define("Proxmox.window.FileBrowser", {
|
||||
let params = { ...view.extraParams };
|
||||
params.filepath = data.filepath;
|
||||
|
||||
let atag = document.createElement('a');
|
||||
atag.download = view.downloadPrefix + data.text;
|
||||
let filename = view.downloadPrefix + data.text;
|
||||
if (data.type === 'd') {
|
||||
if (tar) {
|
||||
params.tar = 1;
|
||||
atag.download += ".tar.zst";
|
||||
filename += ".tar.zst";
|
||||
} else {
|
||||
atag.download += ".zip";
|
||||
filename += ".zip";
|
||||
}
|
||||
}
|
||||
atag.href = me.buildUrl(view.downloadURL, params);
|
||||
atag.click();
|
||||
|
||||
Proxmox.Utils.downloadAsFile(me.buildUrl(view.downloadURL, params), filename);
|
||||
},
|
||||
|
||||
fileChanged: function() {
|
||||
|
Loading…
Reference in New Issue
Block a user