diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts index f6a2987..34b0675 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts @@ -1,4 +1,4 @@ -import { ButtonSize, ButtonType, ButtonVariation } from '@af/digi-ng/_button/button'; +import { ButtonSize, ButtonType } from '@af/digi-ng/_button/button'; import { FormSelectItem } from '@af/digi-ng/_form/form-select'; import { ChangeDetectionStrategy, diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.html new file mode 100644 index 0000000..4e0f62a --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.html @@ -0,0 +1,33 @@ +
+

+ Genomförandereferens: {{deltagare?.genomforandeReferens}} +

+ + + + + + + + + + + + + + + + + + + + + + + +
Lista med alla händelser för {{deltagare?.fullName}}
InkomHändelseDatum för händelseDatum förklaring
{{handelse.receivedDate | date}} + {{handelse.description}}{{handelse.tidpunkt | date }}{{handelse.tidpunktDescription}} + + {{handelse.description}}
+
+
diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.scss b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.scss new file mode 100644 index 0000000..8123921 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.scss @@ -0,0 +1,26 @@ +.deltagare-list-handelser { + + &__heading-row { + white-space: nowrap; + } + + + &__table-cell { + white-space: nowrap; + } + + &__avbrott-cell { + color: var(--digi--ui--color--danger); + } +} + +// DA: Digins maxbredd är hårt satt till 540px (!?) Bör vara auto tycker jag. +// Vi kanske bör ersätta med egen dialog längre fram? +::ng-deep .digi-ng-dialog-base__content { + width: auto; + max-width: 90vw !important; +} +::ng-deep .digi-ng-dialog__inner { + width: auto !important; + max-width: 90vw !important; +} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.spec.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.spec.ts new file mode 100644 index 0000000..9b56114 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.spec.ts @@ -0,0 +1,28 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DeltagareListHandelserDialogComponent } from './deltagare-list-handelser-dialog.component'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; + +describe('DeltagareListHandelserDialogComponent', () => { + let component: DeltagareListHandelserDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + schemas: [CUSTOM_ELEMENTS_SCHEMA], + imports: [HttpClientTestingModule], + declarations: [DeltagareListHandelserDialogComponent], + }).compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DeltagareListHandelserDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.ts new file mode 100644 index 0000000..1ac4328 --- /dev/null +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component.ts @@ -0,0 +1,28 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { DeltagareHandelserApiService } from '@msfa-services/api/deltagare-handelser-api.service'; +import { DeltagareHandelse } from '@msfa-models/deltagare-handelse.model'; +import { Observable } from 'rxjs'; +import { IconType } from '@msfa-enums/icon-type.enum'; +import { DeltagareCompact } from '@msfa-models/deltagare.model'; + +@Component({ + selector: 'msfa-deltagare-list-handelser-dialog', + templateUrl: './deltagare-list-handelser-dialog.component.html', + styleUrls: ['./deltagare-list-handelser-dialog.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class DeltagareListHandelserDialogComponent implements OnInit { + @Input() deltagare: DeltagareCompact; + iconType = IconType; + deltagareHandelser$: Observable; + + constructor(private deltagareHandelserApiService: DeltagareHandelserApiService) {} + + ngOnInit(): void { + if (this.deltagare) { + this.deltagareHandelser$ = this.deltagareHandelserApiService.fetchDeltagareHandelser( + this.deltagare.genomforandeReferens + ); + } + } +} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.component.html index bc2a3f7..731d9dd 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.component.html @@ -1,41 +1,76 @@
- +
+ - - - + + + - - - - - + + + + + + + +
Tabell med de deltagare som tillhör organistaionen.
- -
+ +
- {{ singleDeltagare.fullName }} - {{ singleDeltagare.tjanst }}{{ singleDeltagare.utforandeVerksamhet }}
+ {{ singleDeltagare.fullName }} + {{ singleDeltagare.tjanst }}{{ singleDeltagare.utforandeVerksamhet }}{{ singleDeltagare.startdatumAvrop | date }} + {{ singleDeltagare.slutdatumAvrop | date }} +
+ + Avbrott +
+
+ + + Visa händelser + +
+ + + + ; @Output() sorted = new EventEmitter(); @Output() paginated = new EventEmitter(); + handelserDialogDeltagare$ = new BehaviorSubject(null); + + handelserDialogIsOpen$ = this.handelserDialogDeltagare$.pipe(map(genomforandereferens => !!genomforandereferens)); + + iconType = IconType; + errorSeverity = ErrorSeverity; columnHeaders: { label: string; key: keyof DeltagareCompact }[] = [ { label: 'Namn', key: 'fullName' }, @@ -27,6 +37,18 @@ export class DeltagareListComponent { label: 'Utförande verksamhet', key: 'utforandeVerksamhet', }, + { + label: 'Startdatum', + key: 'startdatumAvrop', + }, + { + label: 'Slutdatum', + key: 'slutdatumAvrop', + }, + { + label: 'Status', + key: 'genomforandeReferens', + }, ]; orderType = SortOrder; @@ -59,4 +81,12 @@ export class DeltagareListComponent { setNewPage(page: number): void { this.paginated.emit(page); } + + openHandelser(deltagareCompact: DeltagareCompact): void { + this.handelserDialogDeltagare$.next(deltagareCompact); + } + + closeHandelser(): void { + this.handelserDialogDeltagare$.next(null); + } } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.module.ts index ce8cf49..df3879a 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/components/deltagare-list/deltagare-list.module.ts @@ -2,11 +2,14 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { DeltagareListComponent } from './deltagare-list.component'; +import { IconModule } from '@msfa-shared/components/icon/icon.module'; +import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog'; +import { DeltagareListHandelserDialogComponent } from './deltagare-list-handelser-dialog/deltagare-list-handelser-dialog.component'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], - declarations: [DeltagareListComponent], - imports: [CommonModule, RouterModule], + declarations: [DeltagareListComponent, DeltagareListHandelserDialogComponent], + imports: [CommonModule, RouterModule, IconModule, DigiNgDialogModule], exports: [DeltagareListComponent], }) export class DeltagareListModule {} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.module.ts index dbc5e8d..2a2a29d 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.module.ts @@ -4,10 +4,11 @@ import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; import { DeltagareListModule } from './components/deltagare-list/deltagare-list.module'; import { DeltagareRoutingModule } from './deltagare-routing.module'; import { DeltagareComponent } from './deltagare.component'; +import { DigiNgSkeletonBaseModule } from '@af/digi-ng/_skeleton/skeleton-base'; @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [DeltagareComponent], - imports: [CommonModule, DeltagareRoutingModule, LayoutModule, DeltagareListModule], + imports: [CommonModule, DeltagareRoutingModule, LayoutModule, DeltagareListModule, DigiNgSkeletonBaseModule], }) export class DeltagareModule {} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.component.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.component.ts index 58adf3a..7229eda 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.component.ts @@ -1,18 +1,12 @@ -import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core'; +import { Component, ChangeDetectionStrategy } from '@angular/core'; @Component({ selector: 'msfa-periodisk-redovisning', templateUrl: './periodisk-redovisning.component.html', styleUrls: ['./periodisk-redovisning.component.scss'], - changeDetection: ChangeDetectionStrategy.OnPush + changeDetection: ChangeDetectionStrategy.OnPush, }) -export class PeriodiskRedovisningComponent implements OnInit { +export class PeriodiskRedovisningComponent { currentStep = 1; sendRequest = false; - - constructor() { } - - ngOnInit(): void { - } - } diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.module.ts index 2439aec..7aa8e03 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.module.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/pages/deltagare-report/pages/periodisk-redovisning/periodisk-redovisning.module.ts @@ -3,10 +3,9 @@ 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 { ReportLayoutModule } from '../../../../shared/report-layout/report-layout-module'; +import { ReportLayoutModule } from '../../../../shared/report-layout/report-layout.module'; import { PeriodiskRedovisningComponent } from './periodisk-redovisning.component'; - @NgModule({ schemas: [CUSTOM_ELEMENTS_SCHEMA], declarations: [PeriodiskRedovisningComponent], @@ -15,8 +14,8 @@ import { PeriodiskRedovisningComponent } from './periodisk-redovisning.component RouterModule.forChild([{ path: '', component: PeriodiskRedovisningComponent }]), LayoutModule, ReactiveFormsModule, - ReportLayoutModule + ReportLayoutModule, ], - exports: [PeriodiskRedovisningComponent] + exports: [PeriodiskRedovisningComponent], }) -export class PeriodiskRedovisningModule { } +export class PeriodiskRedovisningModule {} diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.spec.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.spec.ts index b2809a2..897ed41 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.spec.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.component.spec.ts @@ -1,6 +1,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; - import { ReportLayoutComponent } from './report-layout.component'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { ReportLayoutModule } from './report-layout.module'; +import { RouterTestingModule } from '@angular/router/testing'; describe('ReportLayoutComponent', () => { let component: ReportLayoutComponent; @@ -8,9 +10,8 @@ describe('ReportLayoutComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - declarations: [ ReportLayoutComponent ] - }) - .compileComponents(); + imports: [ReportLayoutModule, RouterTestingModule, HttpClientTestingModule], + }).compileComponents(); }); beforeEach(() => { diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout-module.ts b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.module.ts similarity index 59% rename from apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout-module.ts rename to apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.module.ts index 5d34f04..e45f5e4 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout-module.ts +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/shared/report-layout/report-layout.module.ts @@ -4,11 +4,12 @@ import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; import { ReportLayoutComponent } from './report-layout.component'; import { DigiNgProgressProgressbarModule } from '@af/digi-ng/_progress/progressbar'; import { HideTextModule } from '@msfa-shared/components/hide-text/hide-text.module'; +import { RouterModule } from '@angular/router'; @NgModule({ - schemas: [CUSTOM_ELEMENTS_SCHEMA], - declarations: [ReportLayoutComponent], - imports: [CommonModule, LayoutModule, DigiNgProgressProgressbarModule, HideTextModule], - exports: [ReportLayoutComponent] - }) - export class ReportLayoutModule {} \ No newline at end of file + schemas: [CUSTOM_ELEMENTS_SCHEMA], + declarations: [ReportLayoutComponent], + imports: [CommonModule, RouterModule, LayoutModule, DigiNgProgressProgressbarModule, HideTextModule], + exports: [ReportLayoutComponent], +}) +export class ReportLayoutModule {} diff --git a/apps/mina-sidor-fa/src/app/shared/components/multiselect/multiselect.component.ts b/apps/mina-sidor-fa/src/app/shared/components/multiselect/multiselect.component.ts index 7344eea..1e5162c 100644 --- a/apps/mina-sidor-fa/src/app/shared/components/multiselect/multiselect.component.ts +++ b/apps/mina-sidor-fa/src/app/shared/components/multiselect/multiselect.component.ts @@ -9,7 +9,6 @@ import { Output, Renderer2, ViewChild, - ChangeDetectorRef, } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { DropdownTriggerForDirective } from '@msfa-shared/components/dropdown/dropdown-trigger-for.directive'; @@ -55,7 +54,7 @@ export class MultiselectComponent implements AfterViewInit, ControlValueAccessor private propagateChange: PropagateChangeFn; private propagateTouched: PropagateTouchedFn; - constructor(private renderer: Renderer2, private changeDetectionRef: ChangeDetectorRef) {} + constructor(private renderer: Renderer2) {} // Allows Angular to update the model. // Update the model and changes needed for the view here. diff --git a/apps/mina-sidor-fa/src/app/shared/models/api/deltagare.response.model.ts b/apps/mina-sidor-fa/src/app/shared/models/api/deltagare.response.model.ts index a06db41..414386f 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/api/deltagare.response.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/api/deltagare.response.model.ts @@ -16,6 +16,10 @@ export interface DeltagareCompactResponse { tjanst: string; utforandeVerksamhet: string; utforandeAdress: string; + hasAvbrott: boolean; + genomforandeReferens: string; + startdatumAvrop: Date; + slutdatumAvrop: Date; } export interface DeltagareResponse { diff --git a/apps/mina-sidor-fa/src/app/shared/models/deltagare-handelse.model.ts b/apps/mina-sidor-fa/src/app/shared/models/deltagare-handelse.model.ts new file mode 100644 index 0000000..1f0a48e --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/models/deltagare-handelse.model.ts @@ -0,0 +1,11 @@ +export interface DeltagareHandelse { + description: string; + receivedDate: Date; + isAvbrott: boolean; + tidpunkt: Date; + tidpunktDescription: string; +} + +export interface DeltagareHandelseApiResponse { + data: DeltagareHandelse[]; +} diff --git a/apps/mina-sidor-fa/src/app/shared/models/deltagare.model.ts b/apps/mina-sidor-fa/src/app/shared/models/deltagare.model.ts index 4c6cba9..47a19dc 100644 --- a/apps/mina-sidor-fa/src/app/shared/models/deltagare.model.ts +++ b/apps/mina-sidor-fa/src/app/shared/models/deltagare.model.ts @@ -18,6 +18,10 @@ export interface DeltagareCompact { tjanst: string; utforandeVerksamhet: string; utforandeAdress: string; + hasAvbrott: boolean; + genomforandeReferens: string; + startdatumAvrop: Date; + slutdatumAvrop: Date; } export interface Deltagare { @@ -45,7 +49,18 @@ export interface DeltagareCompactData { } export function mapResponseToDeltagareCompact(data: DeltagareCompactResponse): DeltagareCompact { - const { sokandeId, fornamn, efternamn, tjanst, utforandeVerksamhet, utforandeAdress } = data; + const { + sokandeId, + fornamn, + efternamn, + tjanst, + utforandeVerksamhet, + utforandeAdress, + hasAvbrott, + genomforandeReferens, + startdatumAvrop, + slutdatumAvrop, + } = data; return { id: sokandeId.toString(), firstName: fornamn, @@ -54,6 +69,10 @@ export function mapResponseToDeltagareCompact(data: DeltagareCompactResponse): D tjanst, utforandeVerksamhet, utforandeAdress, + hasAvbrott, + genomforandeReferens, + startdatumAvrop, + slutdatumAvrop, }; } diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/deltagare-handelser-api.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/deltagare-handelser-api.service.ts new file mode 100644 index 0000000..1d1c80c --- /dev/null +++ b/apps/mina-sidor-fa/src/app/shared/services/api/deltagare-handelser-api.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { HttpClient } from '@angular/common/http'; +import { DeltagareHandelse, DeltagareHandelseApiResponse } from '@msfa-models/deltagare-handelse.model'; +import { environment } from '@msfa-environment'; + +@Injectable({ + providedIn: 'root', +}) +export class DeltagareHandelserApiService { + private _apiBaseUrl = `${environment.api.url}/deltagareHandelser`; + constructor(private httpClient: HttpClient) {} + + fetchDeltagareHandelser(genomforandereferens: string): Observable { + return this.httpClient + .get(`${this._apiBaseUrl}?genomforandereferens=${genomforandereferens}`) + .pipe( + map(({ data }) => { + if (data) { + return data; + } + }) + ); + } +} diff --git a/mock-api/mina-sidor-fa/scripts/avrop.js b/mock-api/mina-sidor-fa/scripts/avrop.js index 99e83fa..862523e 100644 --- a/mock-api/mina-sidor-fa/scripts/avrop.js +++ b/mock-api/mina-sidor-fa/scripts/avrop.js @@ -58,6 +58,7 @@ function generateAvrop(amount = 10, deltagare, handledare) { sparNamn: track.name, handledareCiamUserId: null, recievedTimestamp: faker.date.recent(), + hasAvbrott: currentDeltagare.hasAvbrott, }); } diff --git a/mock-api/mina-sidor-fa/scripts/deltagare-handelser.js b/mock-api/mina-sidor-fa/scripts/deltagare-handelser.js new file mode 100644 index 0000000..2a09b4d --- /dev/null +++ b/mock-api/mina-sidor-fa/scripts/deltagare-handelser.js @@ -0,0 +1,36 @@ +import faker from 'faker'; +faker.locale = 'sv'; + +const HANDELSER = [ + 'Gemensam planering inkommen', + 'Gemensam planering godkänd', + 'Slutredovisning inkommen', + 'Slutredovisning godkänd', + 'Slutredovisning ej godkänd', + 'Avbrott handläggs', + 'Avbrott bifall', + 'Avbrott avslag', + 'Byte av leverantör bifall', +]; + +const TIDPUNKT_DESCRIPTION = ['Handläggning startad', 'Inrapporteringsdatum slutredovisning']; + +function generateHandelser(amount = 10) { + const handelser = []; + + for (let id = 1; id <= amount; ++id) { + const handelse = HANDELSER[Math.floor(Math.random() * HANDELSER.length)]; + handelser.push({ + description: handelse, + receivedDate: faker.date.recent(), + isAvbrott: handelse.indexOf('Avbrott') >= 0, + tidpunkt: faker.date.recent(), + tidpunktDescription: TIDPUNKT_DESCRIPTION[Math.floor(Math.random() * TIDPUNKT_DESCRIPTION.length)], + }); + } + return handelser; +} + +export default { + generate: generateHandelser, +}; diff --git a/mock-api/mina-sidor-fa/scripts/deltagare.js b/mock-api/mina-sidor-fa/scripts/deltagare.js index 5f70403..bd2c14e 100644 --- a/mock-api/mina-sidor-fa/scripts/deltagare.js +++ b/mock-api/mina-sidor-fa/scripts/deltagare.js @@ -111,6 +111,7 @@ function generateDeltagare(amount = 10) { workExperiences: { arbetslivserfarenheter: chooseRandom(WORK_EXPERIENCES, faker.datatype.number(WORK_EXPERIENCES.length)), }, + hasAvbrott: Math.random() < 0.2, }; if (Math.random() > 0.8) { deltagare.contact.adresser.push({ diff --git a/mock-api/mina-sidor-fa/scripts/generate-api.js b/mock-api/mina-sidor-fa/scripts/generate-api.js index 0a17809..3913356 100644 --- a/mock-api/mina-sidor-fa/scripts/generate-api.js +++ b/mock-api/mina-sidor-fa/scripts/generate-api.js @@ -4,6 +4,7 @@ import avrop from './avrop.js'; import currentUser from './current-user.js'; import userinfo from './userinfo.js'; import deltagare from './deltagare.js'; +import deltagareHandelser from './deltagare-handelser.js'; import employees from './employees.js'; import handledare from './handledare.js'; import languages from './languages.js'; @@ -21,6 +22,7 @@ const AUTHORIZATIONS = ['Hantera användare', 'Hantera origisation', 'Hantera ek const generatedEmployees = employees.generate(50); const generatedDeltagare = deltagare.generate(50); +const generatedDeltagareHandelser = deltagareHandelser.generate(10); const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6)); const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare); const generatedTjanster = tjanster.generate(); @@ -111,6 +113,7 @@ const apiData = { utforandeVerksamheter, kommuner: avropKommuner, deltagare: generatedDeltagare, + deltagareHandelser: generatedDeltagareHandelser, handledare: generatedHandledare, participants: participants.generate(50).map(participant => ({ ...participant, diff --git a/mock-api/mina-sidor-fa/server.js b/mock-api/mina-sidor-fa/server.js index 012bf0d..8b53b0e 100644 --- a/mock-api/mina-sidor-fa/server.js +++ b/mock-api/mina-sidor-fa/server.js @@ -123,14 +123,32 @@ router.render = (req, res) => { } if (pathname === '/deltagare') { - data = data.map(({ sokandeId, fornamn, efternamn, tjansteNamn, utforandeverksamhet, adress }) => ({ - sokandeId: sokandeId.toString(), - fornamn, - efternamn, - tjanst: tjansteNamn, - utforandeVerksamhet: utforandeverksamhet, - utforandeAdress: adress, - })); + // NOTE: this is reading from avrop.js + data = data.map( + ({ + sokandeId, + fornamn, + efternamn, + tjansteNamn, + utforandeverksamhet, + adress, + startdatumAvrop, + slutdatumAvrop, + hasAvbrott, + genomforandeReferens, + }) => ({ + sokandeId: sokandeId.toString(), + fornamn, + efternamn, + tjanst: tjansteNamn, + utforandeVerksamhet: utforandeverksamhet, + utforandeAdress: adress, + startdatumAvrop, + slutdatumAvrop, + hasAvbrott, + genomforandeReferens, + }) + ); } res.jsonp({