diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html index 5fba4f8..9351494 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.html @@ -21,35 +21,27 @@ +

Har den sökande fått arbete eller påbörjat studier?

+

Ange sysselsättning (obligatoriskt)

- - + -
Typ av sysselsättning
+
Sysselsättning
{{convertTypeValueToLabel(typeFormControl.value)}}
-
Omfattning
-
{{convertOmfattningValueToLabel(omfattningFormControl.value)}}
- -
Antal procent vid deltid
+ +
Omfattning i procent
{{percentFormControl.value}}%
Startdatum
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.scss index d1af455..8de32b5 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.scss +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.scss @@ -4,6 +4,10 @@ .signal-form { max-width: var(--digi--typography--text--max-width); + h2 { + margin-bottom: var(--digi--layout--gutter--s); + } + &__confirmation, &__warning, &__form { diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts index 5bca2a3..f7e7465 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.component.ts @@ -1,4 +1,3 @@ -import { SelectOption } from '@ui/select/select-option.model'; import { ChangeDetectionStrategy, Component } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { ActivatedRoute } from '@angular/router'; @@ -10,7 +9,7 @@ import { Radiobutton } from '@ui/radiobutton-group/radiobutton.model'; import { add } from 'date-fns'; import { BehaviorSubject, Observable } from 'rxjs'; import { map, shareReplay, switchMap, take } from 'rxjs/operators'; -import { SignalFormData, SignalFormKeys, SignalOmfattning, SignalType } from './signal-form.model'; +import { SignalFormData, SignalFormKeys, SignalType } from './signal-form.model'; import { SignalFormService } from './signal-form.service'; import { SignalFormValidator } from './signal-form.validator'; @@ -22,7 +21,6 @@ import { SignalFormValidator } from './signal-form.validator'; }) export class SignalFormComponent { readonly typeFormName: SignalFormKeys = 'type'; - readonly omfattningFormName: SignalFormKeys = 'omfattning'; readonly percentFormName: SignalFormKeys = 'percent'; readonly startDateFormName: SignalFormKeys = 'startDate'; @@ -31,7 +29,6 @@ export class SignalFormComponent { signalFormGroup = new FormGroup( { type: new FormControl(null), - omfattning: new FormControl(SignalOmfattning.Heltid), percent: new FormControl(50), startDate: new FormControl(new Date()), }, @@ -49,23 +46,17 @@ export class SignalFormComponent { shareReplay(1) ); - typeSelectItems: SelectOption[] = [ - { name: 'Arbete', value: SignalType.Arbete }, - { name: 'Utbildning', value: SignalType.Utbildning }, + typeRadioButtons: Radiobutton[] = [ + { label: 'Arbete heltid', value: SignalType.Arbete_Heltid }, + { label: 'Arbete deltid', value: SignalType.Arbete_Deltid }, + { label: 'Utbildning heltid', value: SignalType.Utbildning_Heltid }, + { label: 'Utbildning deltid', value: SignalType.Utbildning_Deltid }, ]; - omfattningRadioButtons: Radiobutton[] = [ - { label: 'Heltid', value: SignalOmfattning.Heltid }, - { label: 'Deltid', value: SignalOmfattning.Deltid }, - ]; - - constructor(private signalFormService: SignalFormService, private activatedRoute: ActivatedRoute) {} + constructor(private signalFormService: SignalFormService, private activatedRoute: ActivatedRoute) { } convertTypeValueToLabel(type: SignalType): string { - return this.typeSelectItems?.find(selectItem => selectItem.value === type)?.name; - } - convertOmfattningValueToLabel(type: SignalOmfattning): string { - return this.omfattningRadioButtons?.find(radiobuttons => radiobuttons.value === type)?.label; + return this.typeRadioButtons?.find(radiobuttons => radiobuttons.value === type)?.label; } get formErrors(): { [key: string]: string } { @@ -75,9 +66,7 @@ export class SignalFormComponent { get typeFormControl(): FormControl { return this.signalFormGroup.get(this.typeFormName) as FormControl; } - get omfattningFormControl(): FormControl { - return this.signalFormGroup.get(this.omfattningFormName) as FormControl; - } + get percentFormControl(): FormControl { return this.signalFormGroup.get(this.percentFormName) as FormControl; } @@ -85,14 +74,27 @@ export class SignalFormComponent { return this.signalFormGroup.get(this.startDateFormName) as FormControl; } - get showPercentFormControl(): boolean { - return this.omfattningFormControl.value === SignalOmfattning.Deltid; + get isDeltid(): boolean { + return this.typeFormControl.value === SignalType.Arbete_Deltid || this.typeFormControl.value === SignalType.Utbildning_Deltid; } get startDateFormValueAsDate(): Date { return new Date(this.startDateFormControl.value); } + get datePickerLabel(): string { + switch (this.typeFormControl.value) { + case SignalType.Arbete_Heltid: + case SignalType.Arbete_Deltid: + return 'Startdatum för arbete'; + case SignalType.Utbildning_Heltid: + case SignalType.Utbildning_Deltid: + return 'Startdatum för utbildning'; + default: + return 'Startdatum för arbete/utbildning'; + } + } + formControlIsInvalid(formControlName: string): boolean { return this.formErrors[formControlName] && this.shouldValidate$.getValue(); } @@ -117,36 +119,32 @@ export class SignalFormComponent { private typeToRequest(type: string): SignalRequestType { switch (type) { - case SignalType.Arbete: - return SignalRequestType.Work; - case SignalType.Utbildning: - return SignalRequestType.Education; - default: - return; - } - } - private omfattningToRequest(omfattning: string): SignalRequestOmfattning { - switch (omfattning) { - case 'heltid': - return SignalRequestOmfattning.Heltid; - case 'deltid': - return SignalRequestOmfattning.Deltid; + case SignalType.Arbete_Heltid: + return SignalRequestType.Arbete; + case SignalType.Arbete_Deltid: + return SignalRequestType.Arbete; + case SignalType.Utbildning_Heltid: + return SignalRequestType.Utbildning; + case SignalType.Utbildning_Deltid: + return SignalRequestType.Utbildning; default: return; } } private _formDataToRequest(genomforandereferens: number, formData: SignalFormData): SignalRequest { - const { type, omfattning, startDate, percent } = formData; + const { type, startDate, percent } = formData; const requestType: SignalRequestType = this.typeToRequest(type); - const requestOmfattning: SignalRequestOmfattning = this.omfattningToRequest(omfattning); + const requestOmfattning: SignalRequestOmfattning = (this.typeFormControl.value as string).includes(SignalRequestOmfattning.Heltid) + ? SignalRequestOmfattning.Heltid + : SignalRequestOmfattning.Deltid; return { genomforandereferens, type: requestType, omfattning: requestOmfattning, - omfattningPercent: requestOmfattning === SignalRequestOmfattning.Deltid ? percent : null, + omfattningPercent: requestOmfattning === SignalRequestOmfattning.Deltid ? percent : 100, startDate: formatDate(startDate), }; } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.model.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.model.ts index 121142d..f671926 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.model.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-forms/signal-form/signal-form.model.ts @@ -3,8 +3,10 @@ export enum SignalOmfattning { Deltid = 'deltid', } export enum SignalType { - Arbete = 'arbete', - Utbildning = 'utbildning', + Arbete_Heltid = 'arbete_heltid', + Arbete_Deltid = 'arbete_deltid', + Utbildning_Heltid = 'utbildning_heltid', + Utbildning_Deltid = 'utbildning_deltid', } export interface SignalFormData { diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-views/signal-view/signal-view.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-views/signal-view/signal-view.component.ts index 16e3e61..6e9ab43 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-views/signal-view/signal-view.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-details/pages/report-views/signal-view/signal-view.component.ts @@ -31,9 +31,9 @@ export class SignalViewComponent { ); typeToText(type: SignalResponseType): string { switch (type) { - case SignalResponseType.Work: + case SignalResponseType.Arbete: return 'Arbete'; - case SignalResponseType.Education: + case SignalResponseType.Utbildning: return 'Utbildning'; default: return 'Okänd'; diff --git a/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts b/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts index 759c548..0df97c6 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/api/signal.request.model.ts @@ -1,6 +1,6 @@ export enum SignalRequestType { - Work = 'work', - Education = 'education', + Arbete = 'arbete', + Utbildning = 'utbildning', } export enum SignalRequestOmfattning { diff --git a/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts b/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts index aabe2ef..5656891 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/api/signal.response.model.ts @@ -1,6 +1,6 @@ export enum SignalResponseType { - Work = 'work', - Education = 'education', + Arbete = 'arbete', + Utbildning = 'utbildning', } export enum SignalResponseOmfattning {