diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html
index b605d31..0f32eea 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.html
@@ -99,7 +99,19 @@
-
+
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.spec.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.spec.ts
index 97d1ebe..82c5b43 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.spec.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.spec.ts
@@ -8,8 +8,8 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { TreeNodesSelectorModule } from '@msfa-shared/components/tree-nodes-selector/tree-nodes-selector.module';
-
import { EditEmployeeFormComponent } from './edit-employee-form.component';
describe('EditEmployeeFormComponent', () => {
@@ -29,6 +29,7 @@ describe('EditEmployeeFormComponent', () => {
DigiNgFormCheckboxModule,
HttpClientTestingModule,
TreeNodesSelectorModule,
+ RouterTestingModule,
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
}).compileComponents();
@@ -37,6 +38,22 @@ describe('EditEmployeeFormComponent', () => {
beforeEach(() => {
fixture = TestBed.createComponent(EditEmployeeFormComponent);
component = fixture.componentInstance;
+ component.employee = {
+ id: 'string',
+ firstName: 'string',
+ lastName: 'string',
+ fullName: 'string',
+ email: 'string',
+ ssn: 'string',
+ roles: [],
+ tjanster: [],
+ allaUtforandeVerksamheter: false,
+ utforandeVerksamheter: [],
+
+ tjanstCodes: [],
+ utforandeVerksamhetIds: [],
+ utforandeAdressIds: [],
+ };
fixture.detectChanges();
});
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts
index d28a11f..b5aa3b6 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/edit-employee-form/edit-employee-form.component.ts
@@ -13,6 +13,7 @@ import {
import { AbstractControl, FormControl, FormGroup } from '@angular/forms';
import { EmployeeEditRequest } from '@msfa-models/api/employee-edit.request.model';
import { Employee } from '@msfa-models/employee.model';
+import { CustomError } from '@msfa-models/error/custom-error';
import { Role } from '@msfa-models/role.model';
import { Tjanst } from '@msfa-models/tjanst.model';
import {
@@ -46,8 +47,10 @@ export class EditEmployeeFormComponent implements OnInit, OnChanges {
@Input() availableRoles: Role[];
@Input() availableTjanster: Tjanst[];
@Input() availableUtforandeVerksamheter: UtforandeVerksamhet[];
+ @Input() errorWhileUpdating: CustomError;
@Output() tjansterSelected = new EventEmitter();
+ @Output() closeError = new EventEmitter();
@Output() formSubmitted = new EventEmitter();
readonly ButtonVariation = ButtonVariation;
@@ -226,4 +229,8 @@ export class EditEmployeeFormComponent implements OnInit, OnChanges {
Object.fromEntries([[this.toggleAllUtforandeVerksamhetFormControlName, hasSelectedAllLeafNodes]])
);
}
+
+ emitCloseError(): void {
+ this.closeError.emit();
+ }
}
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.html
index f469d57..b1fbab5 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.html
@@ -1,6 +1,6 @@
-
+
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.ts
index 9bfcf9a..969dc00 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employee-form/employee-form.component.ts
@@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { EmployeeEditRequest } from '@msfa-models/api/employee-edit.request.model';
import { Employee } from '@msfa-models/employee.model';
+import { CustomError } from '@msfa-models/error/custom-error';
import { Role } from '@msfa-models/role.model';
import { Tjanst } from '@msfa-models/tjanst.model';
import { EmployeeService } from '@msfa-services/api/employee.service';
@@ -22,6 +23,8 @@ import { filter, switchMap } from 'rxjs/operators';
export class EmployeeFormComponent implements OnInit {
private _employeeId$ = new BehaviorSubject(this.activatedRoute.snapshot.params['employeeId']);
private _selectedTjanstIds$ = new BehaviorSubject(null);
+ private _errorWhileUpdating$ = new BehaviorSubject(null);
+ errorWhileUpdating$: Observable = this._errorWhileUpdating$.asObservable();
employee$ = this.employeeService.employee$;
tjanster$: Observable = this.tjanstService.tjanster$;
availableUtforandeVerksamheter$: Observable = this._selectedTjanstIds$.pipe(
@@ -54,6 +57,9 @@ export class EmployeeFormComponent implements OnInit {
next: () => {
void this.router.navigateByUrl(`/administration/personal/${this.employeeId}`);
},
+ error: error => {
+ this._errorWhileUpdating$.next(error);
+ },
complete: () => {
updateEmployeeSubscription.unsubscribe();
},
@@ -66,4 +72,8 @@ export class EmployeeFormComponent implements OnInit {
setEmployeeToDelete(employee: Employee): void {
this.employeeService.setEmployeeToDelete(employee);
}
+
+ closeError(): void {
+ this._errorWhileUpdating$.next(null);
+ }
}
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 a18f423..3979b9b 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
@@ -82,29 +82,6 @@ export class EmployeeService extends UnsubscribeDirective {
.subscribe(employee => {
this._employee$.next(employee as Employee);
})
- // this._currentEmployeeId$
- // .pipe(
- // filter(currentEmployeeId => !!currentEmployeeId),
- // switchMap(currentEmployeeId =>
- // combineLatest([this._fetchEmployee$(currentEmployeeId), this.tjanstService.tjanster$]).pipe(
- // filter(([employee, allTjanster]) => !!(employee && allTjanster?.length)),
- // map(([employee, allTjanster]) => {
- // const tjanster = [];
- // employee.tjanstCodes?.forEach(code => {
- // const currentTjanst = allTjanster.find(tjanst => tjanst.code === code);
-
- // if (currentTjanst) {
- // tjanster.push(currentTjanst);
- // }
- // });
- // return { ...employee, tjanster };
- // })
- // )
- // )
- // )
- // .subscribe(employee => {
- // this._employee$.next(employee as Employee);
- // })
);
}
@@ -215,7 +192,7 @@ export class EmployeeService extends UnsubscribeDirective {
map(({ data }) => data),
catchError(error => {
this.errorService.add(errorToCustomError(error));
- return of(null);
+ return throwError(errorToCustomError(error));
})
);
}
@@ -229,8 +206,7 @@ export class EmployeeService extends UnsubscribeDirective {
}),
map(() => true),
catchError(error => {
- this.errorService.add(errorToCustomError(error));
- return of(false);
+ return throwError(errorToCustomError(error));
})
);
}