diff --git a/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.component.html b/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.component.html index 06a072d..f1db860 100644 --- a/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.component.html +++ b/apps/mina-sidor-fa/src/app/pages/deltagare/deltagare.component.html @@ -3,16 +3,17 @@

Deltagarlista

- Här ser du en lista på de deltagare du är tilldelad. Klicka på deltagarens namn för att öppna och se mer - information om deltagarna. + Här ser du en lista på de deltagare som tillhör din organisation. Klicka på deltagarens namn för att öppna och + se mer information om deltagarna.

- +
+ +
= this.deltagareService.allDeltagareData$; sort$: Observable> = this.deltagareService.sort$; + onlyMyDeltagare$: Observable = this.deltagareService.onlyMyDeltagare$; constructor(private deltagareService: DeltagareService) {} @@ -20,6 +21,10 @@ export class DeltagareComponent { this.deltagareService.setSort(key); } + setOnlyMyDeltagare(checked: boolean): void { + this.deltagareService.setOnlyMyDeltagare(checked); + } + setNewPage(page: number): void { this.deltagareService.setPage(page); } diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/deltagare.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/deltagare.service.ts index ded3e0e..a53f7cf 100644 --- a/apps/mina-sidor-fa/src/app/shared/services/api/deltagare.service.ts +++ b/apps/mina-sidor-fa/src/app/shared/services/api/deltagare.service.ts @@ -44,6 +44,8 @@ export class DeltagareService extends UnsubscribeDirective { private _page$ = new BehaviorSubject(1); private _sort$ = new BehaviorSubject>({ key: 'fullName', order: SortOrder.ASC }); public sort$: Observable> = this._sort$.asObservable(); + private _onlyMyDeltagare$ = new BehaviorSubject(false); + public onlyMyDeltagare$: Observable = this._onlyMyDeltagare$.asObservable(); constructor(private httpClient: HttpClient, private errorService: ErrorService) { super(); @@ -66,7 +68,10 @@ export class DeltagareService extends UnsubscribeDirective { this._limit$, this._page$, this._sort$, - ]).pipe(switchMap(([limit, page, sort]) => this._fetchAllDeltagare$(limit, page, sort))); + this._onlyMyDeltagare$, + ]).pipe( + switchMap(([limit, page, sort, onlyMyDeltagare]) => this._fetchAllDeltagare$(limit, page, sort, onlyMyDeltagare)) + ); public setSort(newSortKey: keyof DeltagareCompact): void { const currentSort = this._sort$.getValue(); @@ -83,7 +88,8 @@ export class DeltagareService extends UnsubscribeDirective { private _fetchAllDeltagare$( limit: number, page: number, - sort: Sort + sort: Sort, + onlyMyDeltagare?: boolean ): Observable { const params: Params = { sort: sort.key as string, @@ -92,6 +98,9 @@ export class DeltagareService extends UnsubscribeDirective { page: page.toString(), }; + if (onlyMyDeltagare) { + params.onlyMyDeltagare = onlyMyDeltagare.toString(); + } return this.httpClient .get(this._apiBaseUrl, { params, @@ -108,6 +117,10 @@ export class DeltagareService extends UnsubscribeDirective { this._currentDeltagareId$.next(currentDeltagareId); } + public setOnlyMyDeltagare(value: boolean): void { + this._onlyMyDeltagare$.next(value); + } + private _fetchContactInformation$(id: string): Observable> { return this.httpClient.get<{ data: ContactInformationResponse }>(`${this._apiBaseUrl}/${id}/contact`).pipe( map(({ data }) => mapResponseToContactInformation(data)), diff --git a/mock-api/mina-sidor-fa/scripts/avrop.js b/mock-api/mina-sidor-fa/scripts/avrop.js index ff9205c..99e83fa 100644 --- a/mock-api/mina-sidor-fa/scripts/avrop.js +++ b/mock-api/mina-sidor-fa/scripts/avrop.js @@ -45,7 +45,7 @@ function generateAvrop(amount = 10, deltagare, handledare) { ordernummer: `AKTTEST-${faker.datatype.number({ min: 10000, max: 99999 })}`, bokningsId: faker.datatype.number({ min: 100000, max: 999999 }), personnummer: currentDeltagare.personnummer, - sokandeId: currentDeltagare.id, + sokandeId: currentDeltagare.sokandeId, tjanstekod: tjanst.id, tjansteNamn: tjanst.label, deltagandeGrad: FREKVENSER[Math.floor(Math.random() * FREKVENSER.length)], diff --git a/mock-api/mina-sidor-fa/scripts/deltagare.js b/mock-api/mina-sidor-fa/scripts/deltagare.js index ee0fe66..5f70403 100644 --- a/mock-api/mina-sidor-fa/scripts/deltagare.js +++ b/mock-api/mina-sidor-fa/scripts/deltagare.js @@ -46,6 +46,7 @@ function generateDeltagare(amount = 10) { const deltagare = { id, + sokandeId: id, contact: { fornamn, efternamn, diff --git a/mock-api/mina-sidor-fa/scripts/generate-api.js b/mock-api/mina-sidor-fa/scripts/generate-api.js index 5a76b15..a73e594 100644 --- a/mock-api/mina-sidor-fa/scripts/generate-api.js +++ b/mock-api/mina-sidor-fa/scripts/generate-api.js @@ -8,11 +8,12 @@ import handledare from './handledare.js'; import languages from './languages.js'; import participants from './participants.js'; import tjanster from './tjanster.js'; +import chooseRandom from './utils/choose-random.util.js'; const generatedEmployees = employees.generate(50); const generatedDeltagare = deltagare.generate(50); const generatedHandledare = handledare.generate(generatedEmployees.slice(0, 6)); -const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 10), generatedHandledare); +const generatedAvrop = avrop.generate(10, generatedDeltagare.slice(0, 25), generatedHandledare); const generatedTjanster = tjanster.generate(); const avropTjanster = []; const utforandeVerksamheter = []; @@ -98,6 +99,7 @@ const apiData = { currentUser: currentUser.generate(), getTokenFullAccess: authTokens.auth_code_from_CIAM_with_all_permissions, invites: [], + minaDeltagare: chooseRandom(generatedAvrop, 3), }; fs.writeFileSync('api.json', JSON.stringify(apiData, null, '\t')); diff --git a/mock-api/mina-sidor-fa/server.js b/mock-api/mina-sidor-fa/server.js index b8f324c..fb1aa60 100644 --- a/mock-api/mina-sidor-fa/server.js +++ b/mock-api/mina-sidor-fa/server.js @@ -28,10 +28,12 @@ server.use( '/avrop/utforandeverksamheter*': '/utforandeVerksamheter$1', '/avrop/kommuner*': '/kommuner$1', '/avrop*utforandeverksamhetId*': '/avrop$1utforandeVerksamhetId$2', + '/deltagare*onlyMyDeltagare=*': '/minaDeltagare', '/avrop*tjanstKod*': '/avrop$1tjanstekod$2', '/deltagare?*': '/avrop?$1', '/deltagare/:sokandeId/avrop': '/avrop?sokandeId=:sokandeId', '/deltagare/:sokandeId/*': '/deltagare/:sokandeId', + '/employees/invite': '/invites', '*page=*': '$1_page=$2', '*limit=*': '$1_limit=$2', '*sort=*': '$1_sort=$2',