Merge branch '14910-uploading-files-to-collection'
[arvados-workbench2.git] / src / common / webdav.ts
index 8aea568af320bf7c91a10d5b476162ad7453d2a0..a09e8fdd6de4a97aab496da4d3651446fee135f8 100644 (file)
@@ -28,18 +28,14 @@ export class WebDAV {
             data
         })
 
-    upload = (url: string, path: string, files: File[], config: WebDAVRequestConfig = {}) => {
-        const fd = new FormData();
-        fd.append('path', path);
-        files.forEach((f, idx) => {
-            fd.append(`file-${idx}`, f);
-        });
-
-        return this.request({
-            ...config, url,
-            method: 'PUT',
-            data: fd
-        });
+    upload = (url: string, files: File[], config: WebDAVRequestConfig = {}) => {
+        return Promise.all(
+            files.map(file => this.request({
+                ...config, url,
+                method: 'PUT',
+                data: file
+            }))
+        );
     }
 
     copy = (url: string, destination: string, config: WebDAVRequestConfig = {}) =>
@@ -66,7 +62,6 @@ export class WebDAV {
         return new Promise<XMLHttpRequest>((resolve, reject) => {
             const r = this.createRequest();
             r.open(config.method, this.defaults.baseURL + config.url);
-
             const headers = { ...this.defaults.headers, ...config.headers };
             Object
                 .keys(headers)
@@ -115,4 +110,4 @@ interface RequestConfig {
     headers?: { [key: string]: string };
     data?: any;
     onUploadProgress?: (event: ProgressEvent) => void;
-}
+}
\ No newline at end of file