diff --git a/apps/dafa-web/src/app/app.component.spec.ts b/apps/dafa-web/src/app/app.component.spec.ts
index ebbc5ac..2f7255f 100644
--- a/apps/dafa-web/src/app/app.component.spec.ts
+++ b/apps/dafa-web/src/app/app.component.spec.ts
@@ -1,3 +1,4 @@
+import { HttpClientTestingModule } from '@angular/common/http/testing';
import { TestBed } from '@angular/core/testing';
import { RouterTestingModule } from '@angular/router/testing';
import { AppComponent } from './app.component';
@@ -9,7 +10,7 @@ describe('AppComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [AppComponent],
- imports: [RouterTestingModule, SkipToContentModule, NavigationModule, SidebarModule],
+ imports: [RouterTestingModule, HttpClientTestingModule, SkipToContentModule, NavigationModule, SidebarModule],
}).compileComponents();
});
diff --git a/apps/dafa-web/src/app/components/navigation/navigation.component.html b/apps/dafa-web/src/app/components/navigation/navigation.component.html
index dd42507..8b48e1b 100644
--- a/apps/dafa-web/src/app/components/navigation/navigation.component.html
+++ b/apps/dafa-web/src/app/components/navigation/navigation.component.html
@@ -1,7 +1,7 @@
diff --git a/apps/dafa-web/src/app/data/models/api/employee-response.model.ts b/apps/dafa-web/src/app/data/models/api/employee-response.model.ts
index b8c3512..4767728 100644
--- a/apps/dafa-web/src/app/data/models/api/employee-response.model.ts
+++ b/apps/dafa-web/src/app/data/models/api/employee-response.model.ts
@@ -1,10 +1,26 @@
+export interface EmployeesApiResponse {
+ pxMore: string;
+ pxObjClass: string;
+ pxPageCount: string;
+ pxQueryTimeStamp: string;
+ pxResultCount: string;
+ pxTotalResultCount: string;
+ pyMaxRecords: string;
+ pyObjClass: string;
+ pxResults: EmployeeResponse[];
+ pzPerformanceSettings: string[];
+}
+
export interface EmployeeResponse {
+ pxInsHandle: string;
pxObjClass: string;
pyAccessGroup: string;
- pyLabel: string;
- pyPosition: string;
- pyReportTo: string;
+ pyFirstName: string;
+ pyLastName: string;
+ pyOrganization: string;
+ pyOrgDivision: string;
+ pyOrgUnit: string;
+ pyTelephone: string;
pyUserIdentifier: string;
pyUserName: string;
- pyWorkGroup: string;
}
diff --git a/apps/dafa-web/src/app/data/models/employee.model.ts b/apps/dafa-web/src/app/data/models/employee.model.ts
index cccdc8f..111053f 100644
--- a/apps/dafa-web/src/app/data/models/employee.model.ts
+++ b/apps/dafa-web/src/app/data/models/employee.model.ts
@@ -2,18 +2,22 @@ import { Agency } from '@dafa-models/agency.model';
import { EmployeeResponse } from './api/employee-response.model';
import { Participant } from './participant.model';
-export interface User {
+export interface Employee {
id: string;
- employeeId: string;
firstName: string;
lastName: string;
+ fullName: string;
+ organization: string;
+ organizationDivision: string;
+ organizationUnit: string;
+ phone: string;
+ email: string;
+ accessGroup: string;
utforandeverksamhet: string;
- active: boolean;
service: string;
- fullName?: string;
}
-export interface EmployeeDetail extends User {
+export interface EmployeeDetail extends Employee {
languages: string[];
outOfOffice: {
start: Date;
@@ -27,17 +31,19 @@ export interface EmployeeDetail extends User {
participants: Participant[];
}
-export function mapEmployeeReponseToEmployee(data: EmployeeResponse): User {
- const names = data.pyUserName.split(' ');
-
+export function mapEmployeeReponseToEmployee(data: EmployeeResponse): Employee {
return {
id: data.pyUserIdentifier,
- employeeId: data.pyUserIdentifier,
- lastName: names.pop() || 'Doe',
- firstName: names.join(' ') || 'John',
+ lastName: data.pyLastName,
+ firstName: data.pyFirstName,
+ fullName: `${data.pyFirstName} ${data.pyLastName}`,
+ organization: data.pyOrganization,
+ organizationDivision: data.pyOrgDivision,
+ organizationUnit: data.pyOrgUnit,
+ phone: data.pyTelephone,
+ email: '',
+ accessGroup: data.pyAccessGroup,
utforandeverksamhet: '',
- active: true,
service: '',
- fullName: data.pyUserName,
};
}
diff --git a/apps/dafa-web/src/app/data/models/sort-by.model.ts b/apps/dafa-web/src/app/data/models/sort-by.model.ts
index 585c36d..ea280b3 100644
--- a/apps/dafa-web/src/app/data/models/sort-by.model.ts
+++ b/apps/dafa-web/src/app/data/models/sort-by.model.ts
@@ -1,7 +1,7 @@
-import { User } from './employee.model';
+import { Employee } from './employee.model';
import { Participant } from './participant.model';
export interface SortBy {
- key: keyof Participant | keyof User;
+ key: keyof Participant | keyof Employee;
reverse: boolean;
}
diff --git a/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts
index 535af35..0ce8506 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts
+++ b/apps/dafa-web/src/app/pages/administration/pages/employee-card/employee-card.component.ts
@@ -1,7 +1,7 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { UnsubscribeDirective } from '@dafa-directives/unsubscribe.directive';
-import { User } from '@dafa-models/employee.model';
+import { Employee } from '@dafa-models/employee.model';
import { Participant } from '@dafa-models/participant.model';
import { EmployeeService } from '@dafa-services/api/employee.service';
import { BehaviorSubject, Observable } from 'rxjs';
@@ -13,7 +13,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class EmployeeCardComponent extends UnsubscribeDirective {
- detailedEmployeeData$: Observable;
+ detailedEmployeeData$: Observable;
private _pendingSelectedParticipants$ = new BehaviorSubject([]);
constructor(private activatedRoute: ActivatedRoute, private employeeService: EmployeeService) {
diff --git a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
index a588baf..7404aea 100644
--- a/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
+++ b/apps/dafa-web/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.ts
@@ -1,5 +1,5 @@
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
-import { User } from '@dafa-models/employee.model';
+import { Employee } from '@dafa-models/employee.model';
import { SortBy } from '@dafa-models/sort-by.model';
import { BehaviorSubject } from 'rxjs';
@@ -10,9 +10,9 @@ import { BehaviorSubject } from 'rxjs';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class EmployeesListComponent {
- @Input() employees: User[];
+ @Input() employees: Employee[];
@Input() sortBy: SortBy | null;
- @Output() sorted = new EventEmitter();
+ @Output() sorted = new EventEmitter();
private _currentPage$ = new BehaviorSubject(1);
private _employeesPerPage = 10;
@@ -27,7 +27,7 @@ export class EmployeesListComponent {
return Math.ceil(this.employees.length / this._employeesPerPage);
}
- get pagedEmployees(): User[] {
+ get pagedEmployees(): Employee[] {
return [...this.employees].slice(this.currentResultStart - 1, this.currentResultEnd - 1);
}
@@ -39,7 +39,7 @@ export class EmployeesListComponent {
return this.currentResultStart + this._employeesPerPage;
}
- handleSort(key: keyof User): void {
+ handleSort(key: keyof Employee): void {
this.sorted.emit(key);
}
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 edf6764..4189f63 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
@@ -1,6 +1,6 @@
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { IconType } from '@dafa-enums/icon-type.enum';
-import { User } from '@dafa-models/employee.model';
+import { Employee } from '@dafa-models/employee.model';
import { SortBy } from '@dafa-models/sort-by.model';
import { EmployeeService } from '@dafa-services/api/employee.service';
import { BehaviorSubject, Observable } from 'rxjs';
@@ -13,7 +13,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
})
export class EmployeesComponent {
private _searchValue$ = new BehaviorSubject('');
- filteredEmployees$: Observable = this.employeeService.filteredEmployees$;
+ filteredEmployees$: Observable = this.employeeService.filteredEmployees$;
employeesSortBy$: Observable = this.employeeService.employeesSortBy$;
iconType = IconType;
@@ -31,7 +31,7 @@ export class EmployeesComponent {
this._searchValue$.next($event.detail.target.value);
}
- handleEmployeesSort(key: keyof User): void {
+ handleEmployeesSort(key: keyof Employee): void {
this.employeeService.setEmployeesSortKey(key);
}
}
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 2b25713..7edeb07 100644
--- a/apps/dafa-web/src/app/services/api/employee.service.ts
+++ b/apps/dafa-web/src/app/services/api/employee.service.ts
@@ -1,14 +1,14 @@
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '@dafa-environment';
-import { EmployeeResponse } from '@dafa-models/api/employee-response.model';
-import { EmployeeDetail, mapEmployeeReponseToEmployee, User } from '@dafa-models/employee.model';
+import { EmployeesApiResponse } from '@dafa-models/api/employee-response.model';
+import { Employee, EmployeeDetail, mapEmployeeReponseToEmployee } from '@dafa-models/employee.model';
import { SortBy } from '@dafa-models/sort-by.model';
import { sort } from '@dafa-utils/sort.util';
import { BehaviorSubject, combineLatest, Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
-function filterEmployees(employees: User[], searchFilter: string): User[] {
+function filterEmployees(employees: Employee[], searchFilter: string): Employee[] {
return employees.filter(person => person.fullName.toLowerCase().includes(searchFilter.toLowerCase()));
}
@@ -16,23 +16,26 @@ function filterEmployees(employees: User[], searchFilter: string): User[] {
providedIn: 'root',
})
export class EmployeeService {
- private _employeesApiUrl = `${environment.apiBase}/D_pxOperatorsList`;
- private _allEmployees$: Observable = this.httpClient
- .get<{ pxResults: EmployeeResponse[] }>(this._employeesApiUrl, {
- headers: environment.apiHeaders,
- })
- .pipe(map(({ pxResults }) => pxResults.map(result => mapEmployeeReponseToEmployee(result))));
+ private _employeesApiUrl = `${environment.api.meet}/employees`;
+ private _employeesRawData: Observable = this.httpClient.get(
+ this._employeesApiUrl,
+ { headers: environment.api.headers }
+ );
+ private _allEmployees$: Observable = this._employeesRawData.pipe(
+ map(({ pxResults }) => pxResults.map(result => mapEmployeeReponseToEmployee(result)))
+ );
private _employeesSortBy$ = new BehaviorSubject({ key: 'fullName', reverse: false });
public employeesSortBy$: Observable = this._employeesSortBy$.asObservable();
private _searchFilter$ = new BehaviorSubject('');
public searchFilter$: Observable = this._searchFilter$.asObservable();
- private _filteredEmployees$: Observable = combineLatest([this._allEmployees$, this._searchFilter$]).pipe(
+ private _filteredEmployees$: Observable = combineLatest([this._allEmployees$, this._searchFilter$]).pipe(
map(([employees, searchFilter]) => filterEmployees(employees, searchFilter))
);
- public filteredEmployees$: Observable = combineLatest([
+ public resultCount$: Observable = this._employeesRawData.pipe(map(({ pxResultCount }) => +pxResultCount));
+ public filteredEmployees$: Observable = combineLatest([
this._filteredEmployees$,
this._employeesSortBy$,
]).pipe(
@@ -43,15 +46,15 @@ export class EmployeeService {
constructor(private httpClient: HttpClient) {}
- public getDetailedEmployeeData(id: string): Observable {
- return this.httpClient.get(`${this._employeesApiUrl}/${id}`, { params: { _embed: 'participants' } });
+ public getDetailedEmployeeData(id: string): Observable {
+ return this.httpClient.get(`${this._employeesApiUrl}/${id}`, { params: { _embed: 'participants' } });
}
public setSearchFilter(value: string) {
this._searchFilter$.next(value);
}
- public setEmployeesSortKey(key: keyof User) {
+ public setEmployeesSortKey(key: keyof Employee) {
const currentSortBy = this._employeesSortBy$.getValue();
const reverse = currentSortBy?.key === key ? !currentSortBy.reverse : false;
this._employeesSortBy$.next({ key, reverse });
diff --git a/apps/dafa-web/src/app/services/api/participants.service.ts b/apps/dafa-web/src/app/services/api/participants.service.ts
index 94ecc10..925753e 100644
--- a/apps/dafa-web/src/app/services/api/participants.service.ts
+++ b/apps/dafa-web/src/app/services/api/participants.service.ts
@@ -22,7 +22,7 @@ function filterParticipants(participants: Participant[], searchFilter: string):
})
export class ParticipantsService {
private _allParticipants$: Observable = this.httpClient.get(
- `${environment.apiBase}/participants`
+ `${environment.api.meet}/participants`
);
private _activeParticipantsSortBy$ = new BehaviorSubject({ key: 'handleBefore', reverse: false });
public activeParticipantsSortBy$: Observable = this._activeParticipantsSortBy$.asObservable();
diff --git a/apps/dafa-web/src/app/services/api/user.service.ts b/apps/dafa-web/src/app/services/api/user.service.ts
index 240f53e..5a49547 100644
--- a/apps/dafa-web/src/app/services/api/user.service.ts
+++ b/apps/dafa-web/src/app/services/api/user.service.ts
@@ -10,10 +10,10 @@ import { map } from 'rxjs/operators';
providedIn: 'root',
})
export class UserService {
- private _userApiUrl = `${environment.apiBase}/D_OperatorID`;
+ private _userApiUrl = `${environment.api.default}/D_OperatorID`;
public currentUser$: Observable = this.httpClient
.get(this._userApiUrl, {
- headers: environment.apiHeaders,
+ headers: environment.api.headers,
})
.pipe(map(response => mapUserReponseToUser(response)));
diff --git a/apps/dafa-web/src/assets/logo/fa-mina-sidor-dark.png b/apps/dafa-web/src/assets/logo/fa-mina-sidor-dark.png
deleted file mode 100644
index 946614f..0000000
Binary files a/apps/dafa-web/src/assets/logo/fa-mina-sidor-dark.png and /dev/null differ
diff --git a/apps/dafa-web/src/assets/logo/fa-mina-sidor-dark.svg b/apps/dafa-web/src/assets/logo/fa-mina-sidor-dark.svg
deleted file mode 100644
index ab684c2..0000000
--- a/apps/dafa-web/src/assets/logo/fa-mina-sidor-dark.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/apps/dafa-web/src/assets/logo/fa-mina-sidor-light.png b/apps/dafa-web/src/assets/logo/fa-mina-sidor-light.png
deleted file mode 100644
index 8b26148..0000000
Binary files a/apps/dafa-web/src/assets/logo/fa-mina-sidor-light.png and /dev/null differ
diff --git a/apps/dafa-web/src/assets/logo/fa-mina-sidor-light.svg b/apps/dafa-web/src/assets/logo/fa-mina-sidor-light.svg
deleted file mode 100644
index 3fec471..0000000
--- a/apps/dafa-web/src/assets/logo/fa-mina-sidor-light.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/apps/dafa-web/src/assets/logo/mina-sidor-fa-dark.svg b/apps/dafa-web/src/assets/logo/mina-sidor-fa-dark.svg
new file mode 100755
index 0000000..ec344d8
--- /dev/null
+++ b/apps/dafa-web/src/assets/logo/mina-sidor-fa-dark.svg
@@ -0,0 +1,17 @@
+
diff --git a/apps/dafa-web/src/assets/logo/mina-sidor-fa-light.svg b/apps/dafa-web/src/assets/logo/mina-sidor-fa-light.svg
new file mode 100755
index 0000000..72ef350
--- /dev/null
+++ b/apps/dafa-web/src/assets/logo/mina-sidor-fa-light.svg
@@ -0,0 +1,17 @@
+
diff --git a/apps/dafa-web/src/environments/environment.pega.ts b/apps/dafa-web/src/environments/environment.pega.ts
index 3276c6e..5cb0a02 100644
--- a/apps/dafa-web/src/environments/environment.pega.ts
+++ b/apps/dafa-web/src/environments/environment.pega.ts
@@ -1,7 +1,10 @@
export const environment = {
production: false,
- apiBase: 'https://dafa-utv.tocp.arbetsformedlingen.se/prweb/api/v1/data',
- apiHeaders: {
- Authorization: 'Basic dGVzdHVzZXIxOmRhZmFAMTIz', // user: testuser1, password: dafa@123
+ api: {
+ meet: 'https://dafa-utv.tocp.arbetsformedlingen.se/prweb/api/meettest/v1',
+ default: 'https://dafa-utv.tocp.arbetsformedlingen.se/prweb/api/v1/data',
+ headers: {
+ Authorization: 'Basic dGVzdHVzZXIxOmRhZmFAMTIz', // user: testuser1, password: dafa@123
+ },
},
};
diff --git a/apps/dafa-web/src/environments/environment.prod.ts b/apps/dafa-web/src/environments/environment.prod.ts
index eee0231..5e443c0 100644
--- a/apps/dafa-web/src/environments/environment.prod.ts
+++ b/apps/dafa-web/src/environments/environment.prod.ts
@@ -1,4 +1,8 @@
export const environment = {
production: true,
- apiBase: '/api',
+ api: {
+ meet: '/api',
+ default: '/api',
+ headers: {},
+ },
};
diff --git a/apps/dafa-web/src/environments/environment.ts b/apps/dafa-web/src/environments/environment.ts
index 6a90298..4000b68 100644
--- a/apps/dafa-web/src/environments/environment.ts
+++ b/apps/dafa-web/src/environments/environment.ts
@@ -1,5 +1,8 @@
export const environment = {
production: false,
- apiBase: '/api',
- apiHeaders: {},
+ api: {
+ meet: '/api',
+ default: '/api',
+ headers: {},
+ },
};
diff --git a/apps/dafa-web/src/index.html b/apps/dafa-web/src/index.html
index 4b2d2a4..9f04452 100644
--- a/apps/dafa-web/src/index.html
+++ b/apps/dafa-web/src/index.html
@@ -2,7 +2,7 @@
- FA Mina Sidor
+ Mina sidor FA