From 3ab2e93d32ef352b3e8c793c57aa8d1260334b65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 3 Jun 2021 14:19:11 +0300 Subject: [PATCH] RED-1474 --- .../add-dossier-dialog.component.ts | 33 +++++++++++-------- ...edit-dossier-download-package.component.ts | 27 ++++++++------- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts index 25d79c42c..dafa08281 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/add-dossier-dialog/add-dossier-dialog.component.ts @@ -23,26 +23,31 @@ export class AddDossierDialogComponent { public dialogRef: MatDialogRef ) { this._filterInvalidDossierTemplates(); - this.dossierForm = this._formBuilder.group({ - dossierName: [null, Validators.required], - dossierTemplateId: [null, Validators.required], - downloadFileTypes: [null], - reportTypes: [null, Validators.required], - description: [null], - dueDate: [null] - }); + this.dossierForm = this._formBuilder.group( + { + dossierName: [null, Validators.required], + dossierTemplateId: [null, Validators.required], + downloadFileTypes: [null], + reportTypes: [null], + description: [null], + dueDate: [null] + }, + { + validators: control => + control.value.reportTypes?.length > 0 || + control.value.downloadFileTypes?.length > 0 + ? null + : { downloadPackage: true } + } + ); } get reportTypesLength() { - return this.dossierForm.controls['reportTypes']?.value?.length - ? this.dossierForm.controls['reportTypes'].value.length - : 0; + return this.dossierForm.controls['reportTypes']?.value?.length || 0; } get downloadFileTypesLength() { - return this.dossierForm.controls['downloadFileTypes']?.value?.length - ? this.dossierForm.controls['downloadFileTypes'].value.length - : 0; + return this.dossierForm.controls['downloadFileTypes']?.value?.length || 0; } get disabled() { diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts index 20743d3e2..2bfa9e70d 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { DossierTemplateModel } from '@redaction/red-ui-http'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { FormBuilder, FormGroup } from '@angular/forms'; import { AppStateService } from '../../../../../state/app-state.service'; import { DossierWrapper } from '../../../../../state/model/dossier.wrapper'; import { EditDossierSectionInterface } from '../edit-dossier-section.interface'; @@ -25,15 +25,11 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS ) {} get reportTypesLength() { - return this.dossierForm.controls['reportTypes']?.value?.length - ? this.dossierForm.controls['reportTypes'].value.length - : 0; + return this.dossierForm.controls['reportTypes']?.value?.length || 0; } get downloadFileTypesLength() { - return this.dossierForm.controls['downloadFileTypes']?.value?.length - ? this.dossierForm.controls['downloadFileTypes'].value.length - : 0; + return this.dossierForm.controls['downloadFileTypes']?.value?.length || 0; } get changed() { @@ -62,10 +58,19 @@ export class EditDossierDownloadPackageComponent implements OnInit, EditDossierS } ngOnInit() { - this.dossierForm = this._formBuilder.group({ - reportTypes: [this.dossierWrapper.dossier.reportTypes, Validators.required], - downloadFileTypes: [this.dossierWrapper.dossier.downloadFileTypes] - }); + this.dossierForm = this._formBuilder.group( + { + reportTypes: [this.dossierWrapper.dossier.reportTypes], + downloadFileTypes: [this.dossierWrapper.dossier.downloadFileTypes] + }, + { + validators: control => + control.value.reportTypes?.length > 0 || + control.value.downloadFileTypes?.length > 0 + ? null + : { downloadPackage: true } + } + ); } async save() {