diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.html new file mode 100644 index 0000000..3dc1935 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.html @@ -0,0 +1,56 @@ +
+

Vad är det du vill rapportera?

+

{{ formGroup?.get('alternative').value === 'franvaro' ? 'Frånvaro' : 'Avvikelse'}}

+ + +

Frånvaroorsak

+ +

{{orsak.name}}

+
+ + +

Annan känd orsak

+ +

+ {{annanKandOrsak.name}} +

+
+
+ + +

Beskrivning

+

{{formGroup?.get('description').value}}

+
+ +

Datum

+

{{formGroup?.get('date').value}}

+

Hel- eller del av dag

+

{{formGroup.get('dayOrPartOfDay').value === 'HELDAG' ? 'Heldag' : 'Del av dag'}}

+ + +

Startid

+

{{formGroup?.get('timepickerFormGroup').get('startTime').value}}

+ +

Sluttid

+

{{formGroup?.get('timepickerFormGroup').get('endTime').value}}

+
+
+ + +

Avvikelseoorsak

+ +

{{orsak.name}}

+
+ +

Fråga 1

+

{{formGroup?.get('fragorFormGroup').get('fraga1').value}}

+ + +

Fråga 2

+

{{formGroup?.get('fragorFormGroup').get('fraga2').value}}

+
+ +

Datum

+

{{formGroup?.get('date').value}}

+
+
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.scss new file mode 100644 index 0000000..03ad032 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.scss @@ -0,0 +1,10 @@ +@import 'variables/gutters'; + +.deltagare-confirm { + margin-bottom: $digi--layout--gutter--xl; + + &__header { + font-size: var(--digi--typography--font-size--l); + margin: 0; + } +} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.spec.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.spec.ts new file mode 100644 index 0000000..37d62ed --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DeltagareConfirmFormComponent } from './deltagare-confirm-form.component'; + +describe('DeltagareConfirmFormComponent', () => { + let component: DeltagareConfirmFormComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DeltagareConfirmFormComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DeltagareConfirmFormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.ts new file mode 100644 index 0000000..796138f --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.component.ts @@ -0,0 +1,17 @@ +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { OrsaksKoderAvvikelse } from '@msfa-models/orsaks-koder-avvikelse.model'; +import { KandaAvvikelseKoder, OrsaksKoderFranvaro } from '@msfa-models/orsaks-koder-franvaro.model'; + +@Component({ + selector: 'msfa-deltagare-confirm-form', + templateUrl: './deltagare-confirm-form.component.html', + styleUrls: ['./deltagare-confirm-form.component.scss'], + changeDetection: ChangeDetectionStrategy.Default +}) +export class DeltagareConfirmFormComponent { + @Input() formGroup: FormGroup | null = null; + @Input() orsakskoderfranvaro: OrsaksKoderFranvaro[]; + @Input() andraKandaOrsaker: KandaAvvikelseKoder[]; + @Input() avvikelseOrsaker: OrsaksKoderAvvikelse[]; +} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.module.ts new file mode 100644 index 0000000..9848b0c --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-confirm-form/deltagare-confirm-form.module.ts @@ -0,0 +1,15 @@ +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { DeltagareConfirmFormComponent } from './deltagare-confirm-form.component'; + + + +@NgModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [DeltagareConfirmFormComponent], + imports: [ + CommonModule + ], + exports: [DeltagareConfirmFormComponent] +}) +export class DeltagareConfirmFormModule { } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-fragor-form/deltagare-fragor-form.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-fragor-form/deltagare-fragor-form.component.html index 1ce221a..77ebb16 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-fragor-form/deltagare-fragor-form.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/components/deltagare-fragor-form/deltagare-fragor-form.component.html @@ -18,7 +18,7 @@ -
+
-
- -

Rapport

-

- 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. -

-

Skapa rapport

-
-

Deltagare: {{contactInformation.fornamn + ' ' + contactInformation.efternamn}}

-

Personnummer: {{contactInformation.personnummer}}

-
-
-

Vad är det du vill rapportera?

-
-
- + + +

Vad är det du vill rapportera?

+ +
+ + + Alternativ är obligatoriskt + +
+ + + + +
+ - Alternativ är obligatoriskt + Beskrivning är obligatoriskt
- + + + + [selectedOrsaksKod]="selectedOrsaksKod" + > +
- -
- - - Beskrivning är obligatoriskt - -
-
+
+ + + {{avvikelseFormGroup.errors?.dateIsRequired}} + +
- - - +
+ +
-
- - - {{avvikelseFormGroup.errors?.dateIsRequired}} - -
+ + + + +
-
- -
- - - + +
+ + - Tillbaka + Tillbaka + + + + Skicka in + + + + Förhandsgranska + + + Tillbaka till deltagaren + +
+
- Nästa - -
- -
+ + diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.scss index 020d530..9ff59e7 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.scss +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.scss @@ -22,7 +22,7 @@ font-size: var(--digi--typography--font-size--h3); } - &__go-back { - margin-right: $digi--layout--gutter; + &__step-buttons-wrapper--space-right { + margin-right: var(--digi--layout--gutter--s); } } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.ts index 81343bf..f04f376 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.component.ts @@ -4,6 +4,7 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { AbstractControl, FormControl, FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { Alternative } from '@msfa-enums/alternative.enum'; +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'; @@ -15,17 +16,17 @@ 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 { - OrsakerIsRequiredCheck, AnnanKandOrsakeIsRequiredCheck, - DescriptionIsRequiredCheck, DateIsRequiredCheck, DayOrPartOfDayIsRequiredCheck, - StartTimeIsRequiredCheck, + DescriptionIsRequiredCheck, EndTimeIsRequiredCheck, - MotiveringIsRequiredCheck + MotiveringIsRequiredCheck, + OrsakerIsRequiredCheck, + StartTimeIsRequiredCheck } from '@msfa-utils/validators/avvikelse-form-validator'; import { RequiredValidator } from '@msfa-utils/validators/required.validator'; -import { Observable } from 'rxjs'; +import { BehaviorSubject, Observable } from 'rxjs'; import { first, map, switchMap } from 'rxjs/operators'; import { DeltagareAvvikelseService } from '../../services/deltagare-avvikelse.service'; import { avvikelseAlternatives, dayOrPartOfDay } from './report-alternatives'; @@ -48,6 +49,9 @@ export class DeltagareAvvikelseComponent implements OnInit { readonly startTimeFormControlName = 'startTime'; readonly endTimeFormControlName = 'endTime'; + private _showSuccessNotification$ = new BehaviorSubject(false); + private _showDangerNotification$ = new BehaviorSubject(false); + contactInformation$: Observable = this.activatedRoute.params .pipe( switchMap(({ deltagareId }) => this.deltagareAvvikelseService.getContactInformationCompact$(deltagareId)) @@ -64,12 +68,16 @@ export class DeltagareAvvikelseComponent implements OnInit { dayOrPartOfDay: RadiobuttonModel[] = dayOrPartOfDay; selectedOrsaksKod: string; avvikelseFormGroup: FormGroup | null = null; + totalAmountOfSteps = 2; + currentStep = 1; + openConfirmDialog = false; + showSuccessNotification$ = this._showSuccessNotification$.asObservable(); + showDangerNotification$ = this._showDangerNotification$.asObservable(); constructor( private deltagareAvvikelseService: DeltagareAvvikelseService, - private activatedRoute: ActivatedRoute, - private router: Router) { - } + private router: Router, + private activatedRoute: ActivatedRoute) { } ngOnInit(): void { this.contactInformation$ @@ -152,34 +160,32 @@ export class DeltagareAvvikelseComponent implements OnInit { return this.avvikelseFormGroup.get('timepickerFormGroup').get(this.endTimeFormControlName); } - onFormSubmitted(): void { - if (this.avvikelseFormGroup.invalid) { - this.alternativeFormControl.markAsTouched(); - return; + setConfirmDialogChanged(confirm: ConfirmDialog): void { + this.openConfirmDialog = false; + if (confirm === ConfirmDialog.ACCEPTED) { + const postAvvikelse: Avvikelse = { + datum_for_rapportering: this.todayDate, + arbetssokande: { + personnummer: this.contactInformation.personnummer.toString(), + fornamn: this.contactInformation.fornamn.toString(), + efternamn: this.contactInformation.efternamn.toString() + }, + sokandeId: +this.activatedRoute.snapshot.params['deltagareId'] + } + + if (this.alternativeFormControl.value as string === Alternative.AVVIKELSE) { + postAvvikelse['avvikelsealternativ'] = this.avvikelse; + } else if (this.alternativeFormControl.value as string == Alternative.FRANVARO) { + postAvvikelse['franvaro'] = this.franvaro; + } + + this.deltagareAvvikelseService.createAvvikelse$(postAvvikelse, this.alternativeFormControl.value as string) + .subscribe({ + error: () => this._showDangerNotification$.next(true), + next: () => this._showSuccessNotification$.next(true), + complete: () => this.avvikelseFormGroup.reset() + }); } - - this.avvikelseFormGroup.markAllAsTouched(); - - const postAvvikelse: Avvikelse = { - datum_for_rapportering: this.todayDate, - arbetssokande: { - personnummer: this.contactInformation.personnummer.toString(), - fornamn: this.contactInformation.fornamn.toString(), - efternamn: this.contactInformation.efternamn.toString() - }, - sokandeId: +this.activatedRoute.snapshot.params['deltagareId'] - } - - if (this.alternativeFormControl.value as string === Alternative.AVVIKELSE) { - postAvvikelse['avvikelsealternativ'] = this.avvikelse; - } else if (this.alternativeFormControl.value as string == Alternative.FRANVARO) { - postAvvikelse['franvaro'] = this.franvaro; - } - - this.deltagareAvvikelseService.createAvvikelse$(postAvvikelse, this.alternativeFormControl.value as string) - .subscribe({ - next: () => this.avvikelseFormGroup.reset() - }); } get franvaro(): FranvaroAlternativ { @@ -218,7 +224,6 @@ export class DeltagareAvvikelseComponent implements OnInit { } } - setAlternative(): void { if (this.alternativeFormControl.value as string == Alternative.FRANVARO) { this.franvaroOrsaker$ = this.deltagareAvvikelseService.getOrsaksKoderFranvaro$(); @@ -293,6 +298,25 @@ export class DeltagareAvvikelseComponent implements OnInit { this.dayOrPartOfDayFormControl.value as string === DayOrPartOfDay.DEL_AV_DAG } + get nextStep(): number { + this.avvikelseFormGroup.markAllAsTouched(); + if (this.avvikelseFormGroup.valid && this.currentStep < this.totalAmountOfSteps) { + return this.currentStep++; + } + } + + previousStep(): void { + if (this.currentStep > 1) { + this.currentStep--; + this._showSuccessNotification$.next(false); + this._showDangerNotification$.next(false); + } + } + + backToDeltagare(): void { + void this.router.navigate(['./deltagare', this.activatedRoute.snapshot.params['deltagareId']]); + } + private clearControlOnAlternativeChange(): void { this.descriptionFormControl.setValue(''); this.fraga1FormControl.setValue(''); @@ -301,8 +325,4 @@ export class DeltagareAvvikelseComponent implements OnInit { this.avvikelseFormGroup?.get('timepickerFormGroup').reset(); } - goBack(): void { - void this.router.navigate(['./deltagare', this.activatedRoute.snapshot.params['deltagareId']]); - } - } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.module.ts index 2a8ca3c..a0379d1 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/deltagare-avvikelse/deltagare-avvikelse.module.ts @@ -1,11 +1,15 @@ import { DigiNgFormDatepickerModule } from '@af/digi-ng/_form/form-datepicker'; import { DigiNgFormRadiobuttonGroupModule } from '@af/digi-ng/_form/form-radiobutton-group'; import { DigiNgFormTextareaModule } from '@af/digi-ng/_form/form-textarea'; +import { DigiNgProgressProgressbarModule } from '@af/digi-ng/_progress/progressbar'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; +import { ConfirmDialogModule } from '../../../../shared/confirm-dialog/confirm-dialog.module'; +import { ReportLayoutModule } from '../../../../shared/report-layout/report-layout.module'; +import { DeltagareConfirmFormModule } from './components/deltagare-confirm-form/deltagare-confirm-form.module'; import { DeltagareFragorFormModule } from './components/deltagare-fragor-form/deltagare-fragor-form.module'; import { DeltagareOrsaksFormModule } from './components/deltagare-orsaks-form/deltagare-orsaks-form.module'; import { DeltagareTimePickerModule } from './components/deltagare-time-picker/deltagare-time-picker.module'; @@ -23,9 +27,13 @@ import { DeltagareAvvikelseComponent } from './deltagare-avvikelse.component'; DigiNgFormRadiobuttonGroupModule, DigiNgFormDatepickerModule, DigiNgFormTextareaModule, + DigiNgProgressProgressbarModule, DeltagareOrsaksFormModule, DeltagareFragorFormModule, - DeltagareTimePickerModule + DeltagareTimePickerModule, + DeltagareConfirmFormModule, + ReportLayoutModule, + ConfirmDialogModule ], exports: [DeltagareAvvikelseComponent] }) diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.html new file mode 100644 index 0000000..ecd8938 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.html @@ -0,0 +1,14 @@ + +

Är du säker på att du vill skicka in en {{itemToConfirm}}?

+
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.spec.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.spec.ts new file mode 100644 index 0000000..8d7c5c6 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.spec.ts @@ -0,0 +1,29 @@ +import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ConfirmDialogComponent } from './confirm-dialog.component'; + + +describe('DeltagareCreateAvvikelseComponent', () => { + let component: ConfirmDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [ConfirmDialogComponent], + imports: [DigiNgDialogModule] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ConfirmDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.ts new file mode 100644 index 0000000..c25e50e --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.component.ts @@ -0,0 +1,25 @@ +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { ConfirmDialog } from '@msfa-enums/confirm-dialog.enum'; + +@Component({ + selector: 'msfa-confirm-dialog', + templateUrl: './confirm-dialog.component.html', + styleUrls: ['./confirm-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ConfirmDialogComponent { + @Input() openConfirmDialog: boolean; + @Input() itemToConfirm: string; + @Output() confirmDialogChanged = new EventEmitter(); + + sendRequest(): void { + this.openConfirmDialog = false; + this.confirmDialogChanged.emit(ConfirmDialog.ACCEPTED); + } + + closeConfirmDialog(): void { + this.openConfirmDialog = false; + this.confirmDialogChanged.emit(ConfirmDialog.DISMISSED); + } + +} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.module.ts new file mode 100644 index 0000000..21b49e2 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/confirm-dialog/confirm-dialog.module.ts @@ -0,0 +1,14 @@ +import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog'; +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { ConfirmDialogComponent } from './confirm-dialog.component'; + + + +@NgModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [ConfirmDialogComponent], + imports: [CommonModule, DigiNgDialogModule], + exports: [ConfirmDialogComponent] +}) +export class ConfirmDialogModule { } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.html index bd3e913..751cf95 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.html @@ -1,58 +1,82 @@
- -

{{ reportTitle }}

-

{{description}}

-
-

{{reportSubTitle}}

-
{{contactInformation.fornamn + ' ' + contactInformation.efternamn}}
-
- Personnummer: - -
- Tjänst: KROM - - Startdatum: {{startDate}} - Slutdatum: {{endDate}} - - Avser period: {{startDate}} - {{endDate}} -
+ +

{{ reportTitle }}

+

{{description}}

+
+

{{reportSubTitle}}

+
{{contactInformation.fornamn + ' ' + contactInformation.efternamn}}
+
+ Personnummer: + +
+ Tjänst: KROM + + Startdatum: {{startDate}} + Slutdatum: {{endDate}} + + Avser period: {{startDate}} - {{endDate}} +
- +
+ +

Din {{reportName}} är nu inskickad till Arbetsförmedlingen.

+
-
- -
+ +

Vi kunde inte skicka in din {{reportName}}.

+
+
-
- - - Tillbaka - - - - - Nästa - - - - - Förhandsgranska - - - - - Skicka in - - -
-
-
\ No newline at end of file + + +
+ +
+ + + + diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.scss index d15c95a..a9428e1 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.scss +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.scss @@ -1,8 +1,5 @@ @import 'variables/gutters'; .report-layout { - &__description { - } - &____name { margin-top: 0; font-size: var(--digi--typography--font-size--s); @@ -25,6 +22,10 @@ margin-left: var(--digi--layout--gutter--s); } + &__notification-alert { + margin-bottom: $digi--layout--gutter--xl; + } + &__main-content { margin: $digi--layout--gutter--xl 0; } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.ts index bbee51f..1a6dcf0 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.ts @@ -1,5 +1,6 @@ -import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; import { ContactInformationCompact } from '@msfa-models/api/contact-information.response.model'; import { Observable } from 'rxjs'; import { switchMap } from 'rxjs/operators'; @@ -22,36 +23,50 @@ export class ReportLayoutComponent { @Input() isPeriodDate = false; @Input() totalAmountOfSteps = 3; @Input() currentStep = 1; + @Input() form: FormGroup | null = null; + @Input() reportName: string; + @Input() showSuccessNotification = false; + @Input() showDangerNotification = false; @Output() currentStepEvent = new EventEmitter(); @Output() sendRequestEvent = new EventEmitter(); contactInformation$: Observable = this.activatedRoute.params - .pipe( - switchMap(({ deltagareId }) => this.deltagareAvvikelseService.getContactInformationCompact$(deltagareId)) - ); + .pipe( + switchMap(({ deltagareId }) => this.deltagareAvvikelseService.getContactInformationCompact$(deltagareId)) + ); constructor( private deltagareAvvikelseService: DeltagareAvvikelseService, private activatedRoute: ActivatedRoute, + private router: Router ) { } - nextStep():void { - if(this.currentStep < this.totalAmountOfSteps) { + nextStep(): void { + console.log(this.form); + + if (this.form.valid && this.currentStep < this.totalAmountOfSteps) { this.currentStep++; this.currentStepEvent.emit(this.currentStep); } + this.form.markAllAsTouched(); } - previousStep():void { - if(this.currentStep > 1) { + previousStep(): void { + if (this.currentStep > 1) { this.currentStep--; this.currentStepEvent.emit(this.currentStep); + this.showSuccessNotification = false; + this.showDangerNotification = false; } - this.currentStep !== this.totalAmountOfSteps ? this.sendRequestEvent.emit(false): null; + this.currentStep !== this.totalAmountOfSteps ? this.sendRequestEvent.emit(false) : null; } - sendRequest():void { + sendRequest(): void { this.sendRequestEvent.emit(true); } + backToDeltagare(): void { + void this.router.navigate(['./deltagare', this.activatedRoute.snapshot.params['deltagareId']]); + } + } diff --git a/apps/mina-sidor-fa/src/app/shared/enums/confirm-dialog.enum.ts b/apps/mina-sidor-fa/src/app/shared/enums/confirm-dialog.enum.ts new file mode 100644 index 0000000..cf78972 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/enums/confirm-dialog.enum.ts @@ -0,0 +1,4 @@ +export enum ConfirmDialog { + ACCEPTED = 'ACCEPTED', + DISMISSED = 'DISMISSED' +} diff --git a/apps/mina-sidor-fa/src/app/shared/enums/franvaro-orsak-kod.enum.ts b/apps/mina-sidor-fa/src/app/shared/enums/franvaro-orsak-kod.enum.ts index 052b43a..7b2ffe3 100644 --- a/apps/mina-sidor-fa/src/app/shared/enums/franvaro-orsak-kod.enum.ts +++ b/apps/mina-sidor-fa/src/app/shared/enums/franvaro-orsak-kod.enum.ts @@ -3,6 +3,6 @@ export enum FranvaroOrsaksKodEnum { Arbete = 16, OkandOrsak = 17, AnnanKandOrsak = 18, - VAB = 26, - Utbildning = 27, + VAB = 23, + Utbildning = 24, } diff --git a/apps/mina-sidor-fa/src/app/shared/enums/report-type.enum.ts b/apps/mina-sidor-fa/src/app/shared/enums/report-type.enum.ts deleted file mode 100644 index eaed2bd..0000000 --- a/apps/mina-sidor-fa/src/app/shared/enums/report-type.enum.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum ReportType { - AVVIKELSERAPPORT = 'Avvikelserapport', - OKAND = 'Okänd', -} diff --git a/apps/mina-sidor-fa/src/app/shared/models/orsaks-koder-franvaro.model.ts b/apps/mina-sidor-fa/src/app/shared/models/orsaks-koder-franvaro.model.ts index 45700c9..38ae8bb 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/orsaks-koder-franvaro.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/orsaks-koder-franvaro.model.ts @@ -1,11 +1,10 @@ -import { AvvikelseOrsaksKodEnum } from '@msfa-enums/avvikelse-orsak-kod.enum'; -import { KandaOrsakerEnum } from '@msfa-enums/kanda-orsaker-kod.enum'; +import { FranvaroOrsaksKodEnum } from '@msfa-enums/franvaro-orsak-kod.enum'; import { KandaAvvikelseKoderResponse } from './api/kanda-avvikelse-koder.response.model'; import { OrsaksKoderFranvaroResponse } from './api/orsaks-koder-franvaro.response.model'; export interface OrsaksKoderFranvaro { name: string; - value: AvvikelseOrsaksKodEnum | KandaOrsakerEnum; + value: FranvaroOrsaksKodEnum; state: number; index?: number; }