From aa55ee80f4e3389831e9975b9832a4eb320640ff Mon Sep 17 00:00:00 2001 From: Erik Tiekstra Date: Wed, 18 Aug 2021 14:55:41 +0200 Subject: [PATCH] Fixed issue with sorting --- .../employees-list/employees-list.component.ts | 15 ++++++++------- .../pages/employees/employees.component.ts | 7 ++++--- .../app/shared/services/api/employee.service.ts | 15 +++++++++------ mock-api/mina-sidor-fa/server.js | 5 ++--- 4 files changed, 23 insertions(+), 19 deletions(-) diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts index 1bfccda..e91907a 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts @@ -1,5 +1,6 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core'; import { SortOrder } from '@msfa-enums/sort-order.enum'; +import { EmployeeCompactResponse } from '@msfa-models/api/employee.response.model'; import { EmployeeCompact } from '@msfa-models/employee.model'; import { PaginationMeta } from '@msfa-models/pagination-meta.model'; import { Sort } from '@msfa-models/sort.model'; @@ -13,19 +14,19 @@ import { Sort } from '@msfa-models/sort.model'; export class EmployeesListComponent { @Input() employees: EmployeeCompact[]; @Input() paginationMeta: PaginationMeta; - @Input() sort: Sort; - @Output() sorted = new EventEmitter(); + @Input() sort: Sort; + @Output() sorted = new EventEmitter(); @Output() paginated = new EventEmitter(); - columnHeaders: { label: string; key: keyof EmployeeCompact }[] = [ - { label: 'Namn', key: 'fullName' }, + columnHeaders: { label: string; key: keyof EmployeeCompactResponse }[] = [ + { label: 'Namn', key: 'name' }, { label: 'Tjänst', - key: 'tjanster', + key: 'tjanst', }, { label: 'Utförandeverksamheter', - key: 'utforandeVerksamheter', + key: 'utforandeVerksamhet', }, ]; @@ -52,7 +53,7 @@ export class EmployeesListComponent { return end < this.count ? end : this.count; } - handleSort(key: keyof EmployeeCompact): void { + handleSort(key: keyof EmployeeCompactResponse): void { this.sorted.emit(key); } diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts index 8d2f5aa..e4c3f35 100644 --- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.ts @@ -1,6 +1,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { IconType } from '@msfa-enums/icon-type.enum'; -import { EmployeeCompact, EmployeesData } from '@msfa-models/employee.model'; +import { EmployeeCompactResponse } from '@msfa-models/api/employee.response.model'; +import { EmployeesData } from '@msfa-models/employee.model'; import { Sort } from '@msfa-models/sort.model'; import { EmployeeService } from '@msfa-services/api/employee.service'; import { BehaviorSubject, Observable } from 'rxjs'; @@ -15,7 +16,7 @@ export class EmployeesComponent { private _searchValue$ = new BehaviorSubject(''); private _onlyEmployeesWithoutAuthorization$ = new BehaviorSubject(false); employeesData$: Observable = this.employeeService.employeesData$; - sort$: Observable> = this.employeeService.sort$; + sort$: Observable> = this.employeeService.sort$; iconType = IconType; constructor(private employeeService: EmployeeService) {} @@ -32,7 +33,7 @@ export class EmployeesComponent { this._searchValue$.next($event.detail.target.value); } - handleEmployeesSort(key: keyof EmployeeCompact): void { + handleEmployeesSort(key: keyof EmployeeCompactResponse): void { this.employeeService.setSort(key); } diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts index f35237f..86fe930 100644 --- a/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts +++ b/apps/mina-sidor-fa/src/app/shared/services/api/employee.service.ts @@ -4,11 +4,14 @@ import { ErrorType } from '@msfa-enums/error-type.enum'; import { SortOrder } from '@msfa-enums/sort-order.enum'; import { environment } from '@msfa-environment'; import { EmployeeInviteMockApiResponse } from '@msfa-models/api/employee-invite.response.model'; -import { EmployeeResponse, EmployeesApiResponse } from '@msfa-models/api/employee.response.model'; +import { + EmployeeCompactResponse, + EmployeeResponse, + EmployeesApiResponse, +} from '@msfa-models/api/employee.response.model'; import { EmployeeInviteMockaData } from '@msfa-models/employee-invite-mock-data.model'; import { Employee, - EmployeeCompact, EmployeesData, mapEmployeeToRequestData, mapResponseToEmployee, @@ -27,8 +30,8 @@ export class EmployeeService { private _apiUrl = `${environment.api.url}/users`; private _limit$ = new BehaviorSubject(20); private _page$ = new BehaviorSubject(1); - private _sort$ = new BehaviorSubject>({ key: 'fullName', order: SortOrder.ASC }); - public sort$: Observable> = this._sort$.asObservable(); + private _sort$ = new BehaviorSubject>({ key: 'name', order: SortOrder.ASC }); + public sort$: Observable> = this._sort$.asObservable(); private _searchFilter$ = new BehaviorSubject(''); private _onlyEmployeesWithoutAuthorization$ = new BehaviorSubject(false); @@ -47,7 +50,7 @@ export class EmployeeService { private _fetchEmployees$( limit: number, page: number, - sort: Sort, + sort: Sort, searchFilter: string, onlyEmployeesWithoutAuthorization?: boolean ): Observable { @@ -94,7 +97,7 @@ export class EmployeeService { this._onlyEmployeesWithoutAuthorization$.next(value); } - public setSort(newSortKey: keyof EmployeeCompact): void { + public setSort(newSortKey: keyof EmployeeCompactResponse): void { const currentSort = this._sort$.getValue(); const order = currentSort.key === newSortKey && currentSort.order === SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC; diff --git a/mock-api/mina-sidor-fa/server.js b/mock-api/mina-sidor-fa/server.js index a121cdd..a4e640c 100644 --- a/mock-api/mina-sidor-fa/server.js +++ b/mock-api/mina-sidor-fa/server.js @@ -9,9 +9,8 @@ server.use(middlewares); server.use( jsonServer.rewriter({ '/api/*': '/$1', - '*sort=fullName*': '$1sort=name$2', - '*sort=utforandeVerksamheter*': '$1sort=utforandeVerksamhet[0]$2', - '*sort=tjanster*': '$1sort=tjanst[0]$2', + '*sort=utforandeVerksamhet*': '$1sort=utforandeVerksamhet[0]$2', + '*sort=tjanst*': '$1sort=tjanst[0]$2', '/users/:id': '/employees?ciamUserId=:id', '/users*': '/employees$1', '/employees*search=*': '/employees$1fullName_like=$2',