feat(avrop): Implemented custom filters for avrop. (TV-344)
Squashed commit of the following: commit 4afa2445d552cb82ccc40a0e3ad706173ebc541f Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Thu Sep 16 16:55:46 2021 +0200 Fixade bugg som gjorde att inte selekteringar nollställdes ifall man stängde utan att spara commit ddda68558f3ba253e67a66b773f99ba781a3b46d Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 16 14:18:48 2021 +0200 Fixed issue with unavailable options commit 58bc4aa4f34ff7e2b13e8ea85182c31735df08a0 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 16 12:56:55 2021 +0200 Added margin to unavailable selected items commit 93e1b61bbbe1ec7a6e785ed468ba8648668f30c8 Author: Erik Tiekstra <erik.tiekstra@arbetsformedlingen.se> Date: Thu Sep 16 12:53:52 2021 +0200 Fixed issue where selected filters are not selected commit 582a89be65adb17811c6e14cedad327b6960b20c Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Thu Sep 16 11:54:17 2021 +0200 refactor commit ddc300d942b069d7440c0f24da8bcb917df65df7 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Thu Sep 16 11:52:58 2021 +0200 replace ng-uuid package with util function commit 976a78aa22a5abe587e0f33e4255f44521b5f5f6 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Thu Sep 16 11:47:53 2021 +0200 fix propagate commit dabe345243e0e5454ff9ef5af0ccff84b1fc4a09 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Thu Sep 16 11:22:58 2021 +0200 . commit e42c6e5588cd3cabd2cec3c10f363b193536ad7e Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Thu Sep 16 09:17:43 2021 +0200 Implemented ControlValueAccessor commit 045492202866de21dd0ed34803ab2f3bfc3bb8e3 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Sep 14 13:26:24 2021 +0200 refactor commit 574a3bc505b455bdb100a2e064ad235176545536 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Sep 14 13:21:53 2021 +0200 refactor commit 6ff07030584bb4d904a370f08817e246705af035 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Sep 14 13:17:06 2021 +0200 refactoring commit 365fc080a49dc487423048ed0dea3744be8dd0c5 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Sep 14 12:10:12 2021 +0200 styling och tillgänglighet commit f7e7f3ffa78c5328029513784114083a2a06cd9d Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Tue Sep 14 10:54:14 2021 +0200 refactor multiselect commit 91d0e832f6f79991b8577f5aaabd657a5f8bbba2 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Mon Sep 13 16:57:25 2021 +0200 replace temporary filter with new module commit 90829e451eebf98a63a5934066563028b80fbadb Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Mon Sep 13 16:33:14 2021 +0200 Add styling from tree-node-selector commit df84e3e75105ffe0c6459606c58684fab1411561 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Mon Sep 13 15:58:37 2021 +0200 feature(General): Added a generic dropdown component (TV-344) commit 9022427d59290dfd2b08c4a076d6b0690d44d926 Author: Daniel Appelgren <daniel.appelgren@arbetsformedlingen.se> Date: Mon Sep 13 13:25:05 2021 +0200 Update mock-apis
This commit is contained in:
@@ -2,8 +2,8 @@ import { Injectable } from '@angular/core';
|
||||
import { Params } from '@msfa-models/api/params.model';
|
||||
import { Avrop, AvropCompactData } from '@msfa-models/avrop.model';
|
||||
import { Handledare } from '@msfa-models/handledare.model';
|
||||
import { MultiselectFilterOption } from '@msfa-models/multiselect-filter-option';
|
||||
import { AvropApiService } from '@msfa-services/api/avrop-api.service';
|
||||
import { MultiselectFilterOption } from '@msfa-shared/components/multiselect/multiselect-filter-option';
|
||||
import { BehaviorSubject, combineLatest, Observable } from 'rxjs';
|
||||
import { filter, map, switchMap } from 'rxjs/operators';
|
||||
|
||||
@@ -50,24 +50,24 @@ export class AvropService {
|
||||
this._filteredKommuner$,
|
||||
this._page$,
|
||||
this._limit$,
|
||||
]).pipe(switchMap(() => this.avropApiService.fetchAvrop$(this._getParams('avrop'))));
|
||||
]).pipe(switchMap(() => this.avropApiService.fetchAvrop$(this.filtersForAvrop)));
|
||||
|
||||
public availableTjanster$: Observable<MultiselectFilterOption[]> = combineLatest([
|
||||
this._filteredUtforandeVerksamheter$,
|
||||
this._filteredKommuner$,
|
||||
]).pipe(switchMap(() => this.avropApiService.fetchAvailableTjanster$(this._getParams('tjanster'))));
|
||||
]).pipe(switchMap(() => this.avropApiService.fetchAvailableTjanster$(this.filtersForTjanster)));
|
||||
|
||||
public availableUtforandeVerksamheter$: Observable<MultiselectFilterOption[]> = combineLatest([
|
||||
this._filteredTjanster$,
|
||||
this._filteredKommuner$,
|
||||
]).pipe(
|
||||
switchMap(() => this.avropApiService.fetchAvailableUtforandeVerksamheter$(this._getParams('utforandeVerksamheter')))
|
||||
switchMap(() => this.avropApiService.fetchAvailableUtforandeVerksamheter$(this.filtersForUtforandeVerksamheter))
|
||||
);
|
||||
|
||||
public availableKommuner$: Observable<MultiselectFilterOption[]> = combineLatest([
|
||||
this._filteredTjanster$,
|
||||
this._filteredUtforandeVerksamheter$,
|
||||
]).pipe(switchMap(() => this.avropApiService.fetchAvailableKommuner$(this._getParams('kommuner'))));
|
||||
]).pipe(switchMap(() => this.avropApiService.fetchAvailableKommuner$(this.filtersForKommuner)));
|
||||
|
||||
private _lockedAvrop$: Observable<Avrop[]> = combineLatest([this.selectedAvrop$, this.avropIsLocked$]).pipe(
|
||||
map(([selectedAvrop, isLocked]) => (isLocked ? selectedAvrop : null))
|
||||
@@ -102,48 +102,57 @@ export class AvropService {
|
||||
return 1;
|
||||
}
|
||||
|
||||
private _getParams(type: 'avrop' | 'kommuner' | 'tjanster' | 'utforandeVerksamheter'): Params {
|
||||
const tjanstKoder = this._filteredTjanster$.getValue()?.length
|
||||
? { tjanstKoder: this._filteredTjanster$.getValue().map(tjanst => tjanst.id) }
|
||||
private get tjanstKoder(): { tjanstKoder: string[] } | null {
|
||||
return this._filteredTjanster$.value?.length
|
||||
? { tjanstKoder: this._filteredTjanster$.value.map(tjanst => tjanst.id) }
|
||||
: null;
|
||||
const kommunKoder = this._filteredKommuner$.getValue()?.length
|
||||
? { kommunKoder: this._filteredKommuner$.getValue().map(kommun => kommun.id) }
|
||||
}
|
||||
|
||||
private get kommunKoder(): { kommunKoder: string[] } | null {
|
||||
return this._filteredKommuner$.value?.length
|
||||
? { kommunKoder: this._filteredKommuner$.value.map(kommun => kommun.id) }
|
||||
: null;
|
||||
const utforandeverksamhetIds = this._filteredUtforandeVerksamheter$.getValue()?.length
|
||||
}
|
||||
|
||||
private get utforandeverksamhetIds(): { utforandeverksamhetIds: string[] } | null {
|
||||
return this._filteredUtforandeVerksamheter$.value?.length
|
||||
? {
|
||||
utforandeverksamhetIds: this._filteredUtforandeVerksamheter$
|
||||
.getValue()
|
||||
.map(utforandeVerksamhet => utforandeVerksamhet.id),
|
||||
utforandeverksamhetIds: this._filteredUtforandeVerksamheter$.value.map(
|
||||
utforandeVerksamhet => utforandeVerksamhet.id
|
||||
),
|
||||
}
|
||||
: null;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case 'avrop':
|
||||
return {
|
||||
...tjanstKoder,
|
||||
...kommunKoder,
|
||||
...utforandeverksamhetIds,
|
||||
page: this._page$.getValue().toString(),
|
||||
limit: this._limit$.getValue().toString(),
|
||||
};
|
||||
case 'kommuner':
|
||||
return {
|
||||
...tjanstKoder,
|
||||
...utforandeverksamhetIds,
|
||||
};
|
||||
case 'tjanster':
|
||||
return {
|
||||
...kommunKoder,
|
||||
...utforandeverksamhetIds,
|
||||
};
|
||||
case 'utforandeVerksamheter':
|
||||
return {
|
||||
...tjanstKoder,
|
||||
...kommunKoder,
|
||||
};
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
private get filtersForAvrop(): Params {
|
||||
return {
|
||||
...this.tjanstKoder,
|
||||
...this.kommunKoder,
|
||||
...this.utforandeverksamhetIds,
|
||||
page: this._page$.value.toString(),
|
||||
limit: this._limit$.value.toString(),
|
||||
};
|
||||
}
|
||||
|
||||
private get filtersForTjanster(): Params {
|
||||
return {
|
||||
...this.kommunKoder,
|
||||
...this.utforandeverksamhetIds,
|
||||
};
|
||||
}
|
||||
|
||||
private get filtersForUtforandeVerksamheter(): Params {
|
||||
return {
|
||||
...this.tjanstKoder,
|
||||
...this.kommunKoder,
|
||||
};
|
||||
}
|
||||
|
||||
private get filtersForKommuner(): Params {
|
||||
return {
|
||||
...this.tjanstKoder,
|
||||
...this.utforandeverksamhetIds,
|
||||
};
|
||||
}
|
||||
|
||||
public setSelectedAvrop(deltagare: Avrop[]): void {
|
||||
|
||||
Reference in New Issue
Block a user