projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
17306: Removed userUuid from group call
[arvados.git]
/
src
/
common
/
webdav.ts
diff --git
a/src/common/webdav.ts
b/src/common/webdav.ts
index b2f43348a8d95105a62bc7c20ea520d59907c95d..c4d8acaea2e8a58f090b21d6b4b8dc48a31c0e49 100644
(file)
--- a/
src/common/webdav.ts
+++ b/
src/common/webdav.ts
@@
-42,14
+42,24
@@
export class WebDAV {
this.request({
...config, url,
method: 'COPY',
this.request({
...config, url,
method: 'COPY',
- headers: { ...config.headers, Destination: this.defaults.baseURL + destination }
+ headers: {
+ ...config.headers,
+ Destination: this.defaults.baseURL
+ ? this.defaults.baseURL.replace(/\/+$/, '') + '/' + destination.replace(/^\/+/, '')
+ : destination
+ }
})
move = (url: string, destination: string, config: WebDAVRequestConfig = {}) =>
this.request({
...config, url,
method: 'MOVE',
})
move = (url: string, destination: string, config: WebDAVRequestConfig = {}) =>
this.request({
...config, url,
method: 'MOVE',
- headers: { ...config.headers, Destination: this.defaults.baseURL + destination }
+ headers: {
+ ...config.headers,
+ Destination: this.defaults.baseURL
+ ? this.defaults.baseURL.replace(/\/+$/, '') + '/' + destination.replace(/^\/+/, '')
+ : destination
+ }
})
delete = (url: string, config: WebDAVRequestConfig = {}) =>
})
delete = (url: string, config: WebDAVRequestConfig = {}) =>
@@
-65,7
+75,7
@@
export class WebDAV {
r.open(config.method,
`${this.defaults.baseURL
? this.defaults.baseURL+'/'
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)
const headers = { ...this.defaults.headers, ...config.headers };
Object
.keys(headers)
@@
-75,14
+85,16
@@
export class WebDAV {
r.upload.addEventListener('progress', config.onUploadProgress);
}
r.upload.addEventListener('progress', config.onUploadProgress);
}
+ // This event gets triggered on *any* server response
r.addEventListener('load', () => {
r.addEventListener('load', () => {
- if (r.status
=== 404
) {
+ if (r.status
>= 400
) {
return reject(r);
} else {
return resolve(r);
}
});
return reject(r);
} else {
return resolve(r);
}
});
+ // This event gets triggered on network errors
r.addEventListener('error', () => {
return reject(r);
});
r.addEventListener('error', () => {
return reject(r);
});