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

Squashed commit of the following:

commit 2b4c9a3ad242ac13a12e41b1136f38d70be74057
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Oct 6 13:33:09 2021 +0200

    TV-724 get avrop information to get start date

commit 468c915c34180b832be5164deced1f57c1b8923a
Merge: 1a9e49f8 3d941fdd
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Oct 6 12:21:26 2021 +0200

    Merge branch 'develop' into feature/TV-724

commit 1a9e49f8ffc58b4f79667135f018241f6c84ac32
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Wed Oct 6 12:14:09 2021 +0200

    TV-724 set also minDate

commit 47537519b1cfcc328dc78c2b25fbd7139dfbdec6
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Tue Oct 5 10:03:48 2021 +0200

    TV-724 weekends selectable

commit 8cfafcdcbd92549ff8d05c6219ab5ff66527834c
Author: fueno <nicolas.fuentes-maturana@arbetsformedlingen.se>
Date:   Mon Oct 4 18:11:24 2021 +0200

    TV-724: disable weekend, maxdate is current day
This commit is contained in:
Nicolas Fuentes Maturana
2021-10-06 13:34:19 +02:00
parent 19a3b05e5f
commit 88e808b0a1
2 changed files with 54 additions and 38 deletions

View File

@@ -1,4 +1,4 @@
<msfa-layout>
<msfa-layout *ngIf="avrop$ | async as avrop">
<msfa-report-layout
reportTitle="Avvikelserapport"
description="Här rapporterar du deltagarens frånvaro och eventuella misskötsel i tjänsten. Rapportering via avvikelserapport ska också ske om tjänsten inte fungerar för deltagaren."
@@ -6,6 +6,7 @@
[totalAmountOfSteps]="totalAmountOfSteps"
[currentStep]="currentStep"
[form]="avvikelseFormGroup"
[avrop]="avrop"
[reportName]="(alternativeFormControl.value === 'franvaro') ? 'frånvarorapport' : 'avvikelsereapport'"
[showSuccessNotification]="showSuccessNotification$ | async"
[showDangerNotification]="showDangerNotification$ | async"
@@ -64,6 +65,8 @@
[formControlName]="dateFormControlName"
[afLabel]="'Välj dag för ' + (alternativeFormControl.value === 'franvaro' ? 'frånvaro' : 'avvikelse')"
[afDisableValidStyle]="true"
[afMinDate]="setMinDate(avrop.startDate)"
[afMaxDate]="setMaxDate"
[afInvalid]="avvikelseFormGroup.errors?.dateIsRequired"
></digi-ng-form-datepicker>
<digi-form-validation-message af-variation="error" *ngIf="avvikelseFormGroup.errors?.dateIsRequired">

View File

@@ -8,24 +8,24 @@ import { ConfirmDialog } from '@msfa-enums/confirm-dialog.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';
import { Avrop } from '@msfa-models/avrop.model';
import { AvvikelseAlternativ } from '@msfa-models/avvikelse-alternativ.model';
import { Avvikelse } from '@msfa-models/avvikelse.model';
import { ContactInformation } from '@msfa-models/contact-information.model';
import { FragorForAvvikelser } from '@msfa-models/fragor-for-avvikelser.model';
import { FranvaroAlternativ } from '@msfa-models/franvaro-alternativ.model';
import { OrsaksKoderAvvikelse } from '@msfa-models/orsaks-koder-avvikelse.model';
import { KandaAvvikelseKoder, OrsaksKoderFranvaro } from '@msfa-models/orsaks-koder-franvaro.model';
import { DeltagareApiService } from '@msfa-services/api/deltagare.api.service';
import {
requiredOrsakerValidator,
requiredAnnanKandOrsakValidator,
requiredDescriptionValidator,
RequiredDateValidator,
requiredDayOrPartOfDayValidator,
requiredDescriptionValidator,
requiredStartTimeValidator,
requiredEndTimeValidator,
requiredFraga1Validator,
requiredfraga2Validator,
requiredOrsakerValidator,
requiredStartTimeValidator,
requiredfraga2Validator
} from '@msfa-validators/avvikelse-form-validator';
import { RequiredValidator } from '@msfa-validators/required.validator';
import { BehaviorSubject, Observable } from 'rxjs';
@@ -50,9 +50,11 @@ export class DeltagareAvvikelseComponent implements OnInit {
readonly fraga2FormControlName = 'fraga2';
readonly startTimeFormControlName = 'startTime';
readonly endTimeFormControlName = 'endTime';
contactInformation$: Observable<ContactInformation> = this.activatedRoute.params.pipe(
switchMap(({ genomforandeReferens }) => this.deltagareApiService.fetchContactInformation$(genomforandeReferens))
);
private _showSuccessNotification$ = new BehaviorSubject<boolean>(false);
private _showDangerNotification$ = new BehaviorSubject<boolean>(false);
avrop$: Observable<Avrop>;
franvaroOrsaker$: Observable<OrsaksKoderFranvaro[]>;
avvikelseOrsaker$: Observable<OrsaksKoderAvvikelse[]>;
andraKandaOrsaker$: Observable<KandaAvvikelseKoder[]>;
@@ -67,9 +69,7 @@ export class DeltagareAvvikelseComponent implements OnInit {
totalAmountOfSteps = 2;
currentStep = 1;
openConfirmDialog = false;
private _showSuccessNotification$ = new BehaviorSubject<boolean>(false);
showSuccessNotification$ = this._showSuccessNotification$.asObservable();
private _showDangerNotification$ = new BehaviorSubject<boolean>(false);
showDangerNotification$ = this._showDangerNotification$.asObservable();
constructor(
@@ -77,7 +77,38 @@ export class DeltagareAvvikelseComponent implements OnInit {
private deltagareApiService: DeltagareApiService,
private router: Router,
private activatedRoute: ActivatedRoute
) {}
) { }
ngOnInit(): void {
this.avrop$ = this.activatedRoute.params
.pipe(
switchMap(({ genomforandeReferens }) => this.deltagareApiService.fetchAvropInformation$(genomforandeReferens))
)
this.avvikelseFormGroup = new FormGroup(
{
alternative: new FormControl(null, [RequiredValidator()]),
description: new FormControl('', [requiredDescriptionValidator()]),
date: new FormControl(this.todayDate),
dayOrPartOfDay: new FormControl(null, [requiredDayOrPartOfDayValidator()]),
orsakerFormGroup: new FormGroup({
orsaker: new FormControl([], [requiredOrsakerValidator()]),
andraKandaOrsaker: new FormControl([], [requiredAnnanKandOrsakValidator()]),
}),
fragorFormGroup: new FormGroup({
fraga1: new FormControl('', [requiredFraga1Validator()]),
fraga2: new FormControl('', [requiredfraga2Validator()]),
}),
timepickerFormGroup: new FormGroup({
startTime: new FormControl('', [requiredStartTimeValidator()]),
endTime: new FormControl('', [requiredEndTimeValidator()]),
}),
},
{
validators: [RequiredDateValidator.CheckIfRequired()],
}
);
}
get alternativeFormControl(): AbstractControl | undefined {
return this.avvikelseFormGroup?.get(this.alternativeFormControlName);
@@ -199,32 +230,6 @@ export class DeltagareAvvikelseComponent implements OnInit {
}
}
ngOnInit(): void {
this.avvikelseFormGroup = new FormGroup(
{
alternative: new FormControl(null, [RequiredValidator()]),
description: new FormControl('', [requiredDescriptionValidator()]),
date: new FormControl(this.todayDate),
dayOrPartOfDay: new FormControl(null, [requiredDayOrPartOfDayValidator()]),
orsakerFormGroup: new FormGroup({
orsaker: new FormControl([], [requiredOrsakerValidator()]),
andraKandaOrsaker: new FormControl([], [requiredAnnanKandOrsakValidator()]),
}),
fragorFormGroup: new FormGroup({
fraga1: new FormControl('', [requiredFraga1Validator()]),
fraga2: new FormControl('', [requiredfraga2Validator()]),
}),
timepickerFormGroup: new FormGroup({
startTime: new FormControl('', [requiredStartTimeValidator()]),
endTime: new FormControl('', [requiredEndTimeValidator()]),
}),
},
{
validators: [RequiredDateValidator.CheckIfRequired()],
}
);
}
setConfirmDialogChanged(confirm: ConfirmDialog): void {
this.openConfirmDialog = false;
if (confirm === ConfirmDialog.ACCEPTED) {
@@ -298,6 +303,14 @@ export class DeltagareAvvikelseComponent implements OnInit {
}
}
setMinDate(startdatumAvrop: Date): Date {
return new Date(startdatumAvrop);
}
get setMaxDate(): Date {
return new Date();
}
previousStep(): void {
if (this.currentStep > 1) {
this.currentStep--;