Merge pull request #90 in TEA/mina-sidor-fa-web from feature/TV-407 to develop

Squashed commit of the following:

commit f4fe49b7e5602b7041573c70b85b22bd978d237b
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Thu Sep 16 18:01:24 2021 +0200

    TV-407 cleanup

commit 141cd9afa8d73e5ad4860456da926ad1468de874
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Thu Sep 16 16:32:07 2021 +0200

    TV-407 updated heading text

commit 2d778bd4dd7982e0736bc8c720a69499662a2164
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Thu Sep 16 14:33:04 2021 +0200

    TV-407 fixed run test issues, some refactoring

commit 9f4cc2c3ad2572eef80923ae465e4d2218acb0cc
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 15 18:51:58 2021 +0200

    TV-407 removed afInvalid on timepicker

commit f10923c92ebab2c51593682de4748fc443699c28
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 15 17:54:49 2021 +0200

    TV 407 service name

commit cdf02cd956e9f75d8415d525645a5d2ecbeb7e41
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 15 17:51:39 2021 +0200

    TV-407 changed api service name to AvvikelseApiService

commit 0ebaddc235ba506aec7cf23ebf96c03cb7a0a79f
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 15 16:51:02 2021 +0200

    TV-407 renaming service name to DeltagareAvvikelseService

commit 60e59881099c99a550b70e310930b1f708fa7f70
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 15 16:40:57 2021 +0200

    TV-407 digi-ng timepicker, fixed some pr reviews comments

commit b80e79e915d3baa11d7850ddf9ef506b4dd1d1cd
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 15 01:42:42 2021 +0200

    TV-407 restructoring files, some cleaning

commit 1c92ccefa2f3441c55fd4beacbf38b2ce465aee0
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Sep 14 14:54:53 2021 +0200

    TV-407 refactoring, cleaning

commit 02904debb8f8dc70c817d2b18b79c0da1b9fd102
Merge: f1ad09a 2a37566
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Sep 14 11:51:31 2021 +0200

    Merge branch 'develop' into feature/TV-407

commit f1ad09ac823a909b2d6503677314850235670838
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Sep 14 11:50:50 2021 +0200

    TV-407 updating report-api service

commit 1f766fba089ac0e1f9bd3e00d2a7f81bb5b979e9
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Sep 14 11:40:10 2021 +0200

    TV-407 sorting franvaro, validating, cleaning

commit f153e574007dfcfe7a65cbd5034370ed31202a34
Merge: ff4011c 92272e4
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Sep 13 14:42:38 2021 +0200

    Merge branch 'develop' into feature/TV-407

commit ff4011c86f1222c677b2d027ef479b2f82aff5e3
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Sep 13 13:58:05 2021 +0200

    TV-407 structoring code to reactive style, validation implemnted

commit 25f9debe6216a7bf0a3c6d9a59e6b4499699e380
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 8 22:46:33 2021 +0200

    TV-407 changed file structure and renaming

commit 9f6f6d4a9f63698d7912668db542eefe285a3b83
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 8 20:11:20 2021 +0200

    TV-407 conditions fixes

commit 29c1a9536f799795712ded15a3ac746b807f8f94
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 8 15:02:26 2021 +0200

    TV-407 reactive error messages,  sokandeId to model, cleaning

commit ba7a031b3e253cb05ecd1a96920bc8439884dec1
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 8 09:17:16 2021 +0200

    TV-407 setTimeout, timepicker condition

commit 2eb2c48bc89bc310d2b2e9de4e909fbb5f3bdcb4
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Sep 8 09:03:41 2021 +0200

    TV-407 corrections

... and 34 more commits
This commit is contained in:
Nicolas Fuentes Maturana
2021-09-16 18:04:37 +02:00
parent fc2916fb0d
commit 1b281be531
57 changed files with 1818 additions and 77 deletions
@@ -0,0 +1,115 @@
import { AbstractControl, ValidatorFn } from '@angular/forms';
import { Alternative } from '@msfa-enums/alternative.enum';
import { DayOrPartOfDay } from '@msfa-enums/day-or-part-of-day.enum';
import { FranvaroOrsaksKodEnum } from '@msfa-enums/franvaro-orsak-kod.enum';
import { KandaOrsakerEnum } from '@msfa-enums/kanda-orsaker-kod.enum';
export class DescriptionIsRequiredCheck {
static CheckIfRequired(
controlToValidateName: string,
nestedFormGroupName: string,
nestedFormGroupControlName: string,
valueForWhichTheControlShouldBeRequired: KandaOrsakerEnum
): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfControlToValidate = fg?.get(controlToValidateName)?.value as string;
const valueOfNestedFormControl = fg?.get(nestedFormGroupName)?.get(nestedFormGroupControlName)?.value as string;
const isRequired = +valueOfNestedFormControl === valueForWhichTheControlShouldBeRequired && valueOfControlToValidate === '';
return isRequired ? { descriptionIsRequired: true } : null;
};
}
}
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 OrsakerIsRequiredCheck {
static CheckIfRequired(
nestedFormGroupName: string,
controlToValidateName: string,
): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfNestedFormControl = fg?.get(nestedFormGroupName)?.get(controlToValidateName)?.value as string;
const isRequired = valueOfNestedFormControl === null && fg?.get(nestedFormGroupName)?.get('andraKandaOrsaker')?.value === null;
return isRequired ? { orsakerIsRequired: true } : null;
};
}
}
export class AnnanKandOrsakeIsRequiredCheck {
static CheckIfRequired(
nestedFormGroupName: string,
controlToValidateName: string,
): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfNestedFormControl = fg?.get(nestedFormGroupName)?.get(controlToValidateName)?.value as string;
const isRequired = +fg?.get(nestedFormGroupName).get('orsaker').value === FranvaroOrsaksKodEnum.AnnanKandOrsak &&
valueOfNestedFormControl === null;
return isRequired ? { annanKandorsakIsRequired: true } : null;
};
}
}
export class StartTimeIsRequiredCheck {
static CheckIfRequired(
nestedFormGroupName: string,
startTimeControlToValidateName: string,
): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfStartTimeFormControl = fg?.get(nestedFormGroupName)?.get(startTimeControlToValidateName)?.value as string;
const isRequired = fg?.get('alternative')?.value as string === Alternative.FRANVARO &&
fg?.get('dayOrPartOfDay').value === DayOrPartOfDay.DEL_AV_DAG && !valueOfStartTimeFormControl;
return isRequired ? { startTimeIsRequired: true } : null;
}
}
}
export class EndTimeIsRequiredCheck {
static CheckIfRequired(
nestedFormGroupName: string,
endTimeControlToValidateName: string
): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfEndTimeFormControl = fg?.get(nestedFormGroupName)?.get(endTimeControlToValidateName)?.value as string;
const isRequired = fg?.get('alternative').value as string === Alternative.FRANVARO &&
fg?.get('dayOrPartOfDay').value === DayOrPartOfDay.DEL_AV_DAG && !valueOfEndTimeFormControl;
return isRequired ? { endTimeIsRequired: true } : null;
}
}
}
export class MotiveringIsRequiredCheck {
static CheckIfRequired(controlToValidateName: string): ValidatorFn {
return (fg: AbstractControl): { [key: string]: boolean } => {
const valueOfControlToValidate = fg?.get('fragorFormGroup').get(controlToValidateName)?.value as string;
const isRequired = fg?.get('alternative').value as string === Alternative.AVVIKELSE && valueOfControlToValidate === '';
return isRequired ? { motiveringIsRequired: true } : null;
};
}
}
export class DateIsRequiredCheck {
static CheckIfRequired(controlToValidateName: string): ValidatorFn {
return (fg: AbstractControl): { [key: string]: string } => {
const valueOfControlToValidate = fg?.get(controlToValidateName).value as string;
const isRequired = valueOfControlToValidate === '';
return isRequired ? { dateIsRequired: 'Datum är obligatoriskt' } : null;
};
}
}