Added text if no deltagare could be found
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
<div class="deltagare-list">
|
<div class="deltagare-list">
|
||||||
<digi-table af-variation="secondary">
|
<digi-table af-variation="secondary">
|
||||||
<table class="deltagare-list__table">
|
<table class="deltagare-list__table">
|
||||||
<caption class="msfa__a11y-sr-only">Tabell med de deltagare som tillhör organistaionen.</caption>
|
<caption class="msfa__a11y-sr-only">
|
||||||
|
Tabell med de deltagare som tillhör organistaionen.
|
||||||
|
</caption>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col" class="deltagare-list__column-head" *ngFor="let column of columnHeaders">
|
<th scope="col" class="deltagare-list__column-head" *ngFor="let column of columnHeaders">
|
||||||
@@ -66,9 +68,7 @@
|
|||||||
[afPrimaryButtonText]="'Stäng'"
|
[afPrimaryButtonText]="'Stäng'"
|
||||||
id="deltagareHandelser"
|
id="deltagareHandelser"
|
||||||
>
|
>
|
||||||
<msfa-deltagare-list-handelser-dialog
|
<msfa-deltagare-list-handelser-dialog [deltagare]="deltagare"></msfa-deltagare-list-handelser-dialog>
|
||||||
[deltagare]="deltagare"
|
|
||||||
></msfa-deltagare-list-handelser-dialog>
|
|
||||||
</digi-ng-dialog>
|
</digi-ng-dialog>
|
||||||
|
|
||||||
<digi-navigation-pagination
|
<digi-navigation-pagination
|
||||||
|
|||||||
@@ -17,14 +17,18 @@
|
|||||||
></digi-form-checkbox>
|
></digi-form-checkbox>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<ng-container *ngIf="allDeltagareData$ | async as allDeltagareData; else loadingRef">
|
||||||
|
<ng-container *ngIf="(deltagareLoading$ | async) === false; else loadingRef">
|
||||||
<msfa-deltagare-list
|
<msfa-deltagare-list
|
||||||
*ngIf="allDeltagareData$ | async as allDeltagareData; else loadingRef"
|
*ngIf="allDeltagareData.data.length; else noDeltagare"
|
||||||
[deltagare]="allDeltagareData.data"
|
[deltagare]="allDeltagareData.data"
|
||||||
[paginationMeta]="allDeltagareData.meta"
|
[paginationMeta]="allDeltagareData.meta"
|
||||||
[sort]="sort$ | async"
|
[sort]="sort$ | async"
|
||||||
(sorted)="handleDeltagareSort($event)"
|
(sorted)="handleDeltagareSort($event)"
|
||||||
(paginated)="setNewPage($event)"
|
(paginated)="setNewPage($event)"
|
||||||
></msfa-deltagare-list>
|
></msfa-deltagare-list>
|
||||||
|
</ng-container>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
<ng-template #loadingRef>
|
<ng-template #loadingRef>
|
||||||
<digi-ng-skeleton-base [afCount]="3" afText="Laddar deltagare"></digi-ng-skeleton-base>
|
<digi-ng-skeleton-base [afCount]="3" afText="Laddar deltagare"></digi-ng-skeleton-base>
|
||||||
@@ -32,3 +36,10 @@
|
|||||||
</section>
|
</section>
|
||||||
</digi-typography>
|
</digi-typography>
|
||||||
</msfa-layout>
|
</msfa-layout>
|
||||||
|
|
||||||
|
<ng-template #noDeltagare>
|
||||||
|
<p>
|
||||||
|
Inga deltagare hittades{{(onlyMyDeltagare$ | async) ? '. Bocka ur "Visa endast mina tilldelade deltagare" för att se
|
||||||
|
deltagare som tillhör din organisation.' : ' som tillhör din organisation.' }}
|
||||||
|
</p>
|
||||||
|
</ng-template>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export class DeltagareComponent {
|
|||||||
allDeltagareData$: Observable<DeltagareCompactData> = this.deltagareService.allDeltagareData$;
|
allDeltagareData$: Observable<DeltagareCompactData> = this.deltagareService.allDeltagareData$;
|
||||||
sort$: Observable<Sort<keyof DeltagareCompact>> = this.deltagareService.sort$;
|
sort$: Observable<Sort<keyof DeltagareCompact>> = this.deltagareService.sort$;
|
||||||
onlyMyDeltagare$: Observable<boolean> = this.deltagareService.onlyMyDeltagare$;
|
onlyMyDeltagare$: Observable<boolean> = this.deltagareService.onlyMyDeltagare$;
|
||||||
|
deltagareLoading$: Observable<boolean> = this.deltagareService.deltagareLoading$;
|
||||||
|
|
||||||
constructor(private deltagareService: DeltagareService) {}
|
constructor(private deltagareService: DeltagareService) {}
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import { ReportsData } from '@msfa-models/reports.model';
|
|||||||
import { Sort } from '@msfa-models/sort.model';
|
import { Sort } from '@msfa-models/sort.model';
|
||||||
import { mapResponseToWorkExperience, WorkExperience } from '@msfa-models/work-experience.model';
|
import { mapResponseToWorkExperience, WorkExperience } from '@msfa-models/work-experience.model';
|
||||||
import { sortFromToDates } from '@msfa-utils/sort.util';
|
import { sortFromToDates } from '@msfa-utils/sort.util';
|
||||||
import { Observable, of } from 'rxjs';
|
import { BehaviorSubject, Observable, of } from 'rxjs';
|
||||||
import { catchError, map } from 'rxjs/operators';
|
import { catchError, map } from 'rxjs/operators';
|
||||||
|
|
||||||
@Injectable({
|
@Injectable({
|
||||||
@@ -32,6 +32,8 @@ import { catchError, map } from 'rxjs/operators';
|
|||||||
})
|
})
|
||||||
export class DeltagareApiService {
|
export class DeltagareApiService {
|
||||||
private _apiBaseUrl = `${environment.api.url}/deltagare`;
|
private _apiBaseUrl = `${environment.api.url}/deltagare`;
|
||||||
|
private _deltagareLoading$ = new BehaviorSubject<boolean>(false);
|
||||||
|
public deltagareLoading$: Observable<boolean> = this._deltagareLoading$.asObservable();
|
||||||
|
|
||||||
constructor(private httpClient: HttpClient) {}
|
constructor(private httpClient: HttpClient) {}
|
||||||
|
|
||||||
@@ -51,12 +53,16 @@ export class DeltagareApiService {
|
|||||||
if (onlyMyDeltagare) {
|
if (onlyMyDeltagare) {
|
||||||
params.onlyMyDeltagare = onlyMyDeltagare.toString();
|
params.onlyMyDeltagare = onlyMyDeltagare.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._deltagareLoading$.next(true);
|
||||||
|
|
||||||
return this.httpClient
|
return this.httpClient
|
||||||
.get<DeltagareCompactApiResponse>(this._apiBaseUrl, {
|
.get<DeltagareCompactApiResponse>(this._apiBaseUrl, {
|
||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
.pipe(
|
.pipe(
|
||||||
map(({ data, meta }) => {
|
map(({ data, meta }) => {
|
||||||
|
this._deltagareLoading$.next(false);
|
||||||
return { data: data.map(deltagare => mapResponseToDeltagareCompact(deltagare)), meta };
|
return { data: data.map(deltagare => mapResponseToDeltagareCompact(deltagare)), meta };
|
||||||
}),
|
}),
|
||||||
catchError((error: Error) => {
|
catchError((error: Error) => {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export class DeltagareService {
|
|||||||
public sort$: Observable<Sort<keyof DeltagareCompact>> = this._sort$.asObservable();
|
public sort$: Observable<Sort<keyof DeltagareCompact>> = this._sort$.asObservable();
|
||||||
private _onlyMyDeltagare$ = new BehaviorSubject<boolean>(false);
|
private _onlyMyDeltagare$ = new BehaviorSubject<boolean>(false);
|
||||||
public onlyMyDeltagare$: Observable<boolean> = this._onlyMyDeltagare$.asObservable();
|
public onlyMyDeltagare$: Observable<boolean> = this._onlyMyDeltagare$.asObservable();
|
||||||
|
public deltagareLoading$: Observable<boolean> = this.deltagareApiService.deltagareLoading$;
|
||||||
public allDeltagareData$: Observable<DeltagareCompactData> = combineLatest([
|
public allDeltagareData$: Observable<DeltagareCompactData> = combineLatest([
|
||||||
this._limit$,
|
this._limit$,
|
||||||
this._page$,
|
this._page$,
|
||||||
|
|||||||
Reference in New Issue
Block a user