From: Lucas Di Pentima Date: Tue, 10 Nov 2020 15:58:15 +0000 (-0300) Subject: 15685: Fixes file name encoding/decoding handling on webdav. X-Git-Tag: 2.1.1~1^2~9 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/6528692d3b49adaa03934fd059b8fec52c0bd0b1 15685: Fixes file name encoding/decoding handling on webdav. Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima --- diff --git a/src/common/webdav.ts b/src/common/webdav.ts index b51cff30..c4d8acae 100644 --- a/src/common/webdav.ts +++ b/src/common/webdav.ts @@ -75,7 +75,7 @@ export class WebDAV { r.open(config.method, `${this.defaults.baseURL ? this.defaults.baseURL+'/' - : ''}${config.url}`); + : ''}${encodeURI(config.url)}`); const headers = { ...this.defaults.headers, ...config.headers }; Object .keys(headers) diff --git a/src/common/xml.ts b/src/common/xml.ts index 098f2781..3c6feb5d 100644 --- a/src/common/xml.ts +++ b/src/common/xml.ts @@ -4,5 +4,16 @@ export const getTagValue = (document: Document | Element, tagName: string, defaultValue: string) => { const [el] = Array.from(document.getElementsByTagName(tagName)); - return decodeURI(el ? el.innerHTML : defaultValue); + return decodeURI(el ? htmlDecode(el.innerHTML) : defaultValue); +}; + +const htmlDecode = (input: string) => { + const out = input.split(' ').map((i) => { + const doc = new DOMParser().parseFromString(i, "text/html"); + if (doc.documentElement !== null) { + return doc.documentElement.textContent || ''; + } + return ''; + }); + return out.join(' '); };