diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html
index 7320fd8..1209fc5 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html
+++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.html
@@ -14,11 +14,11 @@
Personallista
-
diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts
index 47a1c66..8535df4 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts
+++ b/apps/dafa-web/src/app/pages/administration/pages/employees/employees.component.ts
@@ -23,11 +23,11 @@ export class EmployeesComponent {
return this._searchValue$.getValue();
}
- handleSearchSubmit(): void {
+ setSearchFilter(): void {
this.employeeService.setSearchFilter(this.searchValue);
}
- handleSearchInput($event: CustomEvent): void {
+ setSearchValue($event: CustomEvent): void {
this._searchValue$.next($event.detail.target.value);
}
diff --git a/apps/dafa-web/src/app/services/api/employee.service.ts b/apps/dafa-web/src/app/services/api/employee.service.ts
index 9b6670c..a8e0b15 100644
--- a/apps/dafa-web/src/app/services/api/employee.service.ts
+++ b/apps/dafa-web/src/app/services/api/employee.service.ts
@@ -27,18 +27,28 @@ export class EmployeeService {
private _sort$ = new BehaviorSubject>({ key: 'fullName', order: SortOrder.ASC });
public sort$: Observable> = this._sort$.asObservable();
private _searchFilter$ = new BehaviorSubject('');
- public searchFilter$: Observable = this._searchFilter$.asObservable();
- private _fetchEmployees$(limit: number, page: number, sort: Sort): Observable {
+ private _fetchEmployees$(
+ limit: number,
+ page: number,
+ sort: Sort,
+ searchFilter: string
+ ): Observable {
+ const params: { [param: string]: string | string[] } = {
+ sort: sort.key as string,
+ order: sort.order as string,
+ limit: limit.toString(),
+ page: page.toString(),
+ };
+
+ if (searchFilter) {
+ params.search = searchFilter;
+ }
+
return this.httpClient
.get(this._apiUrl, {
...API_HEADERS,
- params: {
- sort: sort.key,
- order: sort.order,
- limit: limit.toString(),
- page: page.toString(),
- },
+ params,
})
.pipe(
map(({ data, meta }) => {
@@ -47,9 +57,12 @@ export class EmployeeService {
);
}
- public employeesData$: Observable = combineLatest([this._limit$, this._page$, this._sort$]).pipe(
- switchMap(([limit, page, sort]) => this._fetchEmployees$(limit, page, sort))
- );
+ public employeesData$: Observable = combineLatest([
+ this._limit$,
+ this._page$,
+ this._sort$,
+ this._searchFilter$,
+ ]).pipe(switchMap(([limit, page, sort, searchFilter]) => this._fetchEmployees$(limit, page, sort, searchFilter)));
public fetchDetailedEmployeeData$(id: string): Observable {
return this.httpClient
diff --git a/mock-api/dafa-web/scripts/employees.js b/mock-api/dafa-web/scripts/employees.js
index ee6be00..7a89e0f 100644
--- a/mock-api/dafa-web/scripts/employees.js
+++ b/mock-api/dafa-web/scripts/employees.js
@@ -28,6 +28,7 @@ function generateEmployees(amount = 10) {
createdAt: Date.now(),
};
+ person.fullName = `${person.firstName} ${person.lastName}`;
employees.push(person);
}
diff --git a/mock-api/dafa-web/server.js b/mock-api/dafa-web/server.js
index f04cc1d..115ed63 100644
--- a/mock-api/dafa-web/server.js
+++ b/mock-api/dafa-web/server.js
@@ -11,7 +11,7 @@ server.use(
'/api/*': '/$1',
'*sort=services*': '$1sort=services[0].name$2',
'*sort=organizations*': '$1sort=organizations[0].address.city$2',
- '*sort=fullName*': '$1sort=firstName,lastName$2',
+ '/employee*search=*': '/employee$1fullName_like=$2',
'/employee*': '/employees$1',
'/participants': '/participants?_embed=employees',
'/participant/:id': '/participants/:id?_embed=employees',
@@ -24,10 +24,9 @@ server.use(
);
router.render = (req, res) => {
-
// all paths except getToken requires Authorization header.
if (!req._parsedUrl.pathname.includes('getToken') && !req.headers.authorization) {
- return res.status(401).jsonp({ error: "No valid access-token" });
+ return res.status(401).jsonp({ error: 'No valid access-token' });
}
const params = new URLSearchParams(req._parsedUrl.query);