-
- extractFilesData(document: Document) {
- return Array
- .from(document.getElementsByTagName('D:response'))
- .slice(1)
- .map(element => {
- const [displayNameElement] = Array.from(element.getElementsByTagName('D:displayname'));
- const name = displayNameElement ? displayNameElement.innerHTML : undefined;
-
- const [sizeElement] = Array.from(element.getElementsByTagName('D:getcontentlength'));
- const size = sizeElement ? parseInt(sizeElement.innerHTML, 10) : 0;
-
- const [hrefElement] = Array.from(element.getElementsByTagName('D:href'));
- const pathname = hrefElement ? hrefElement.innerHTML : undefined;
- const directory = pathname && pathname.replace(/\/c=[0-9a-zA-Z\-]*/, '').replace(`/${name || ''}`, '');
-
- const href = this.webdavClient.defaults.baseURL + pathname + '?api_token=' + this.authService.getApiToken();
-
- const data = {
- url: href,
- id: `${directory}/${name}`,
- name,
- path: directory,
- };
-
- const [resourceTypeElement] = Array.from(element.getElementsByTagName('D:resourcetype'));
- return resourceTypeElement && resourceTypeElement.innerHTML === ''
- ? createCollectionFile({ ...data, size })
- : createCollectionDirectory(data);
-
- });
+ async uploadFiles(collectionUuid: string, files: File[], onProgress?: UploadProgress) {
+ // files have to be uploaded sequentially
+ for (let idx = 0; idx < files.length; idx++) {
+ await this.uploadFile(collectionUuid, files[idx], idx, onProgress);
+ }