feat(avvikelserapport): fixed validation for dayOrPartOfDay TV-407-fix

Squashed commit of the following:

commit 985d76a5b0876a1ececd46c9538144b6121070ee
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Fri Sep 17 10:37:57 2021 +0200

    TV-407: fixed validation for dayOrPartOfDay
This commit is contained in:
Nicolas Fuentes Maturana
2021-09-17 10:40:10 +02:00
parent 2236cc9ec8
commit 71b00c6e90
3 changed files with 21 additions and 3 deletions

View File

@@ -83,6 +83,7 @@
<digi-ng-form-radiobutton-group <digi-ng-form-radiobutton-group
[afRadiobuttons]="dayOrPartOfDay" [afRadiobuttons]="dayOrPartOfDay"
[formControlName]="dayOrPartOfDayFormControlName" [formControlName]="dayOrPartOfDayFormControlName"
[afRequired]="avvikelseFormGroup.errors?.dayOrPartOfDayIsRequired"
></digi-ng-form-radiobutton-group> ></digi-ng-form-radiobutton-group>
</div> </div>
<ng-container *ngIf="showTimePicker"> <ng-container *ngIf="showTimePicker">

View File

@@ -15,11 +15,14 @@ import { FranvaroAlternativ } from '@msfa-models/franvaro-alternativ.model';
import { OrsaksKoderAvvikelse } from '@msfa-models/orsaks-koder-avvikelse.model'; import { OrsaksKoderAvvikelse } from '@msfa-models/orsaks-koder-avvikelse.model';
import { KandaAvvikelseKoder, OrsaksKoderFranvaro } from '@msfa-models/orsaks-koder-franvaro.model'; import { KandaAvvikelseKoder, OrsaksKoderFranvaro } from '@msfa-models/orsaks-koder-franvaro.model';
import { import {
OrsakerIsRequiredCheck,
AnnanKandOrsakeIsRequiredCheck, AnnanKandOrsakeIsRequiredCheck,
DateIsRequiredCheck, DescriptionIsRequiredCheck, DescriptionIsRequiredCheck,
DateIsRequiredCheck,
DayOrPartOfDayIsRequiredCheck,
StartTimeIsRequiredCheck,
EndTimeIsRequiredCheck, EndTimeIsRequiredCheck,
MotiveringIsRequiredCheck, MotiveringIsRequiredCheck
OrsakerIsRequiredCheck, StartTimeIsRequiredCheck
} from '@msfa-utils/validators/avvikelse-form-validator'; } from '@msfa-utils/validators/avvikelse-form-validator';
import { RequiredValidator } from '@msfa-utils/validators/required.validator'; import { RequiredValidator } from '@msfa-utils/validators/required.validator';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
@@ -101,6 +104,7 @@ export class DeltagareAvvikelseComponent implements OnInit {
OrsakerIsRequiredCheck.CheckIfRequired('orsakerFormGroup', 'orsaker'), OrsakerIsRequiredCheck.CheckIfRequired('orsakerFormGroup', 'orsaker'),
AnnanKandOrsakeIsRequiredCheck.CheckIfRequired('orsakerFormGroup', 'andraKandaOrsaker'), AnnanKandOrsakeIsRequiredCheck.CheckIfRequired('orsakerFormGroup', 'andraKandaOrsaker'),
DateIsRequiredCheck.CheckIfRequired('date'), DateIsRequiredCheck.CheckIfRequired('date'),
DayOrPartOfDayIsRequiredCheck.CheckIfRequired('dayOrPartOfDay'),
StartTimeIsRequiredCheck.CheckIfRequired('timepickerFormGroup', 'startTime'), StartTimeIsRequiredCheck.CheckIfRequired('timepickerFormGroup', 'startTime'),
EndTimeIsRequiredCheck.CheckIfRequired('timepickerFormGroup', 'endTime'), EndTimeIsRequiredCheck.CheckIfRequired('timepickerFormGroup', 'endTime'),
MotiveringIsRequiredCheck.CheckIfRequired('fraga1') MotiveringIsRequiredCheck.CheckIfRequired('fraga1')

View File

@@ -35,6 +35,19 @@ export class OrsakerIsRequiredCheck {
} }
} }
export class DayOrPartOfDayIsRequiredCheck {
static CheckIfRequired(
controlToValidateName: string,
): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfControlToValidate = fg?.get(controlToValidateName)?.value as string;
const isRequired = valueOfControlToValidate === null && fg?.get('alternative').value === Alternative.FRANVARO;
return isRequired ? { dayOrPartOfDayIsRequired: true } : null;
};
}
}
export class AnnanKandOrsakeIsRequiredCheck { export class AnnanKandOrsakeIsRequiredCheck {
static CheckIfRequired( static CheckIfRequired(
nestedFormGroupName: string, nestedFormGroupName: string,