- extractFilesData(document: Document) {
- return Array
- .from(document.getElementsByTagName('D:response'))
- .slice(1)
- .map(element => {
- const name = getTagValue(element, 'D:displayname', '');
- const size = parseInt(getTagValue(element, 'D:getcontentlength', '0') as string, 10);
- const pathname = getTagValue(element, 'D:href', '');
- 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);
+ }