diff --git a/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts index 57b6a02bd..2cd5e93f9 100644 --- a/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts @@ -37,7 +37,7 @@ export class AddDossierDialogComponent extends BaseDialogComponent implements On (this.permissionsService.has(ROLES.getRss) && !['DELTA_PREVIEW', 'REDACTED'].includes(element.key)), ); dossierTemplates: IDossierTemplate[]; - availableReportTypes = []; + availableReportTypes: IReportTemplate[] = []; dossierTemplateId: string; constructor( diff --git a/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts b/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts index 7231b0880..d7c98e035 100644 --- a/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts +++ b/apps/red-ui/src/app/modules/shared/dialogs/download-dialog/download-dialog.component.ts @@ -63,7 +63,7 @@ export class DownloadDialogComponent extends BaseDialogComponent { private get _availableReportTypes() { const dossierTemplateId = this.data.dossier.dossierTemplateId; const result = this._reportTemplateController.getAvailableReportTemplates(dossierTemplateId); - return result.then(values => this._sortAvailableReportTypes(values) ?? []); + return result.then(values => values ?? []); } private get _formDownloadTypes() { @@ -131,8 +131,4 @@ export class DownloadDialogComponent extends BaseDialogComponent { const isHexColor = /^#[0-9A-F]{6}$/i.test(color); return isHexColor ? null : { redactionPreviewColor: true }; } - - private _sortAvailableReportTypes(values) { - return values.sort((a, b) => (a.fileName > b.fileName ? 1 : b.fileName > a.fileName ? -1 : 0)); - } } diff --git a/apps/red-ui/src/app/services/report-template.service.ts b/apps/red-ui/src/app/services/report-template.service.ts index 2ed205399..dd33002c9 100644 --- a/apps/red-ui/src/app/services/report-template.service.ts +++ b/apps/red-ui/src/app/services/report-template.service.ts @@ -3,7 +3,7 @@ import { GenericService, HeadersConfiguration, RequiredParam, Validate } from '@ import { IPlaceholdersResponse, IReportTemplate } from '@red/domain'; import { firstValueFrom, Observable, of } from 'rxjs'; import { HttpResponse } from '@angular/common/http'; -import { catchError } from 'rxjs/operators'; +import { catchError, map } from 'rxjs/operators'; @Injectable({ providedIn: 'root', @@ -35,7 +35,7 @@ export class ReportTemplateService extends GenericService { @Validate() getAvailableReportTemplates(@RequiredParam() dossierTemplateId: string) { const request = this.getAll(`${this._defaultModelPath}/${dossierTemplateId}`); - return firstValueFrom(request); + return firstValueFrom(request.pipe(map(templates => this._sortAvailableReportTypes(templates)))); } @Validate() @@ -62,4 +62,8 @@ export class ReportTemplateService extends GenericService { headers: HeadersConfiguration.getHeaders({ contentType: false }), }); } + + private _sortAvailableReportTypes(values): IReportTemplate[] { + return values.sort((a, b) => (a.fileName > b.fileName ? 1 : b.fileName > a.fileName ? -1 : 0)); + } }