diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
index 73c2ba7..6f7b7bc 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.component.html
@@ -22,7 +22,6 @@
-
Redigera |
@@ -45,8 +44,9 @@
-
-
+
+
+ Ta bort konto
|
@@ -54,6 +54,22 @@
+
+
+
+ Är du säker på att du vill ta bort personalkontot för {{employee?.fullName}}?
+
+
+
1"
class="employees-list__pagination"
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 e91907a..7d7053d 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,9 +1,13 @@
-import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
+import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';
import { SortOrder } from '@msfa-enums/sort-order.enum';
+import { DeleteEmployeeMockApiResponse } from '@msfa-models/api/delete-employee.response.model';
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';
+import { EmployeeService } from '@msfa-services/api/employee.service';
+import { BehaviorSubject, Observable, Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
@Component({
selector: 'msfa-employees-list',
@@ -11,12 +15,19 @@ import { Sort } from '@msfa-models/sort.model';
styleUrls: ['./employees-list.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
})
-export class EmployeesListComponent {
+export class EmployeesListComponent implements OnDestroy {
@Input() employees: EmployeeCompact[];
@Input() paginationMeta: PaginationMeta;
@Input() sort: Sort;
@Output() sorted = new EventEmitter();
@Output() paginated = new EventEmitter();
+ @Output() deletedEmployee = new EventEmitter(null);
+ private componentDestroyed$ = new Subject();
+ private _employeeSelected$ = new BehaviorSubject(null);
+ employeeSelected$: Observable = this._employeeSelected$.asObservable();
+ showDialog: boolean;
+
+ constructor(private employeeService: EmployeeService) { }
columnHeaders: { label: string; key: keyof EmployeeCompactResponse }[] = [
{ label: 'Namn', key: 'name' },
@@ -60,4 +71,38 @@ export class EmployeesListComponent {
setNewPage(page: number): void {
this.paginated.emit(page);
}
+
+ onDeleteEmployee(employee: EmployeeCompact): void {
+ this.employeeService.deleteEmployee(employee.id)
+ .pipe(takeUntil(this.componentDestroyed$))
+ .subscribe({
+ next: (res: DeleteEmployeeMockApiResponse) => {
+ if (res.status === 200) {
+ this.employees = this.employees ? this.employees.filter(e => e.id !== employee.id) : [];
+ this.deletedEmployee.emit(employee);
+ }
+ },
+ complete: () => {
+ this.showDialog = false;
+ },
+ error: err => {
+ console.log(err);
+ }
+ });
+ }
+
+
+ openDialog(val: boolean, employee: EmployeeCompact): void {
+ if (!val) {
+ this.showDialog = false;
+ return;
+ }
+ this.showDialog = val;
+ this._employeeSelected$.next(employee);
+ }
+
+ ngOnDestroy(): void {
+ this.componentDestroyed$.next();
+ this.componentDestroyed$.complete();
+ }
}
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts
index 40d0470..88b9fff 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/components/employees-list/employees-list.module.ts
@@ -1,3 +1,4 @@
+import { DigiNgDialogModule } from '@af/digi-ng/_dialog/dialog';
import { CommonModule } from '@angular/common';
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
@@ -6,7 +7,7 @@ import { EmployeesListComponent } from './employees-list.component';
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [EmployeesListComponent],
- imports: [CommonModule, RouterModule],
+ imports: [CommonModule, RouterModule, DigiNgDialogModule],
exports: [EmployeesListComponent],
})
export class EmployeesListModule {}
diff --git a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html
index 043f080..bcbf588 100644
--- a/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html
+++ b/apps/mina-sidor-fa/src/app/pages/administration/pages/employees/employees.component.html
@@ -12,6 +12,22 @@
+
+
+
+ {{deletedEmployee?.fullName + (deletedEmployee?.fullName[deletedEmployee?.fullName.length -1] === 's' ? '' :
+ 's') }} personalkonto är borttaget.
+
+
+
+
Personallista