Skip to content
Snippets Groups Projects
Commit 419c1f79 authored by Martin's avatar Martin
Browse files

OZG-5977 implement is upload in progress

parent 38120fad
No related branches found
No related tags found
1 merge request!67OZG-5977 add multi option to file upload button
......@@ -58,7 +58,17 @@ describe('BinaryFileService', () => {
});
describe('is upload in progress', () => {
//Implement me
it('should return true if uploadedFiles contains loading stateResource by key', () => {
const uploadFile: UploadFile = {
fileToUpload: createFile(),
uploadedFile: of(createEmptyStateResource<BinaryFileResource>(true)),
};
service.uploadFiles.next({ [BinaryFileUploadType.BESCHEID]: [uploadFile] });
const uploadInProgress: Observable<boolean> = service.isUploadInProgress(BinaryFileUploadType.BESCHEID);
expect(uploadInProgress).toBeObservable(singleCold(true));
});
});
describe('get uploaded files', () => {
......
......@@ -42,8 +42,8 @@ import { Injectable } from '@angular/core';
import { getUrl, Resource, ResourceUri } from '@ngxp/rest';
import { saveAs } from 'file-saver';
import { isNil } from 'lodash-es';
import { BehaviorSubject, Observable, of, throwError } from 'rxjs';
import { catchError, map, mergeMap, startWith } from 'rxjs/operators';
import { BehaviorSubject, forkJoin, Observable, of, throwError } from 'rxjs';
import { catchError, map, mergeMap, startWith, switchMap } from 'rxjs/operators';
import {
BinaryFileListResource,
BinaryFileResource,
......@@ -69,8 +69,11 @@ export class BinaryFileService {
) {}
public isUploadInProgress(type: BinaryFileUploadType): Observable<boolean> {
//Implement me
return of(true);
return this.uploadFiles.asObservable().pipe(
map((files: UploadFilesByType) => files[type].map((file: UploadFile) => file.uploadedFile)),
switchMap((files: Observable<StateResource<BinaryFileResource>>[]) => forkJoin(files)),
map((files: StateResource<BinaryFileResource>[]) => files.some((s) => s.loading)),
);
}
public getUploadedFiles(type: BinaryFileUploadType): Observable<UploadFile[]> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment