diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare-routing.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare-routing.module.ts index 5d6eec3..d5f3f36 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare-routing.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare-routing.module.ts @@ -17,6 +17,14 @@ const routes: Routes = [ data: { title: 'Skapa rapport' }, loadChildren: () => import('./pages/deltagare-report/deltagare-report.module').then(m => m.DeltagareReportModule), }, + { + path: 'planering/:deltagareId', + data: { title: 'Skapa gemensam planering' }, + loadChildren: () => + import('./pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.module').then( + m => m.DeltagareGemensamPlaneringModule + ), + }, ]; @NgModule({ diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.html index f1ba03b..4732acc 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.html @@ -195,18 +195,18 @@

Här kan du skicka rapporter om deltagaren till arbetsförmedlingen.

Du måste välja en rapporttyp @@ -215,8 +215,7 @@
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.ts index c437044..31edd1b 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-card/deltagare-card.component.ts @@ -1,7 +1,7 @@ import { FormSelectItem } from '@af/digi-ng/_form/form-select'; import { ChangeDetectionStrategy, Component } from '@angular/core'; import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { IconType } from '@msfa-enums/icon-type.enum'; import { Deltagare } from '@msfa-models/deltagare.model'; import { ReportsData } from '@msfa-models/reports.model'; @@ -20,14 +20,17 @@ export class DeltagareCardComponent { deltagare$: Observable = this.deltagareService.deltagare$; reportsData$: Observable = this.deltagareService.reportsData$; - readonly avvikelseFormControlName = 'avvikelse'; + readonly reportsFormControlName = 'reports'; reportPickerFormGroup: FormGroup = this.formBuilder.group({ - // eslint-disable-next-line @typescript-eslint/unbound-method - avvikelse: this.formBuilder.control('', [Validators.required]), + // eslint-disable-next-line @typescript-eslint/unbound-method + reports: this.formBuilder.control('', [Validators.required]), }); - selectableReportTypes: Array = [{ name: 'Avvikelse', value: 'avvikelse' }]; + selectableReportTypes: Array = [ + { name: 'Avvikelse', value: 'avvikelse' }, + { name: 'Gemensam Planering', value: 'planering' }, + ]; selectedReportType: FormSelectItem; firstVisibleWorkExperiences$: Observable = this.deltagare$.pipe( @@ -43,12 +46,14 @@ export class DeltagareCardComponent { constructor( private activatedRoute: ActivatedRoute, private deltagareService: DeltagareService, - private formBuilder: FormBuilder) { + private formBuilder: FormBuilder, + private router: Router + ) { this.deltagareService.setCurrentDeltagareId(this.activatedRoute.snapshot.params.deltagareId); } - get avvikelseFormControl(): AbstractControl | null { - return this.reportPickerFormGroup?.get(this.avvikelseFormControlName); + get reportsFormControl(): AbstractControl | null { + return this.reportPickerFormGroup?.get(this.reportsFormControlName); } toggleAccordionExpanded(): void { @@ -59,18 +64,29 @@ export class DeltagareCardComponent { this.deltagareService.setPage(page); } - onFormSubmitted(event: Event): void { + onFormSubmitted(event: Event, reportType: string, deltagareId: string): void { event.preventDefault(); - this.avvikelseFormControl.markAsTouched(); + switch (reportType) { + case 'planering': + this.reportsFormControl.valid ? this.router.navigate(['/deltagare/planering', deltagareId]) : null; + break; + case 'avvikelse': + this.reportsFormControl.valid ? this.router.navigate(['/deltagare/rapportera', deltagareId]) : null; + break; + default: + return; + } + + this.reportsFormControl.markAsTouched(); if (!this.selectableReportTypes || this.reportPickerFormGroup.invalid) { return; } const selectedReportType = this.selectableReportTypes.find(report => { - return report.value === this.avvikelseFormControl.value; - }) + return report.value === this.reportsFormControl.value; + }); this.deltagareService.setReportType(selectedReportType); } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.html new file mode 100644 index 0000000..dcc7423 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.html @@ -0,0 +1,3 @@ + +

deltagare-gemensam-planering works!

+
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.spec.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.spec.ts new file mode 100644 index 0000000..510ef80 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.spec.ts @@ -0,0 +1,29 @@ +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { LayoutComponent } from '@msfa-shared/components/layout/layout.component'; +import { DeltagareGemensamPlaneringComponent } from './deltagare-gemensam-planering.component'; + +describe('DeltagareGemensamPlaneringComponent', () => { + let component: DeltagareGemensamPlaneringComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [DeltagareGemensamPlaneringComponent, LayoutComponent], + imports: [RouterTestingModule, HttpClientTestingModule], + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DeltagareGemensamPlaneringComponent); + 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/deltagare-gemensam-planering/deltagare-gemensam-planering.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.ts new file mode 100644 index 0000000..39984b1 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.component.ts @@ -0,0 +1,9 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +@Component({ + selector: 'msfa-deltagare-gemensam-planering', + templateUrl: './deltagare-gemensam-planering.component.html', + styleUrls: ['./deltagare-gemensam-planering.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class DeltagareGemensamPlaneringComponent {} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.module.ts new file mode 100644 index 0000000..3f900ca --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/deltagare-gemensam-planering/deltagare-gemensam-planering.module.ts @@ -0,0 +1,17 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; +import { DeltagareGemensamPlaneringComponent } from './deltagare-gemensam-planering.component'; + +@NgModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [DeltagareGemensamPlaneringComponent], + imports: [ + CommonModule, + RouterModule.forChild([{ path: '', component: DeltagareGemensamPlaneringComponent }]), + LayoutModule, + ], + exports: [DeltagareGemensamPlaneringComponent], +}) +export class DeltagareGemensamPlaneringModule {}