From 83d148593c27386b42184baa22771cbc166fff04 Mon Sep 17 00:00:00 2001 From: Vincent BENOIT Date: Thu, 24 Mar 2022 17:36:18 +0100 Subject: [PATCH] =?UTF-8?q?Fin=20du=20cours=20n=C2=B04=20avec=20les=20Even?= =?UTF-8?q?tEmitter,=20Input,=20Output=20entre=20les=20composants=20hierar?= =?UTF-8?q?chis=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.module.ts | 4 ++- .../employee-item/employee-item.component.css | 0 .../employee-item.component.html | 16 +++++++++++ .../employee-item.component.spec.ts | 25 +++++++++++++++++ .../employee-item/employee-item.component.ts | 28 +++++++++++++++++++ .../employees-list.component.html | 18 ++---------- .../employees-list.component.ts | 15 ++-------- 7 files changed, 77 insertions(+), 29 deletions(-) create mode 100644 src/app/components/employees/employees-list/employee-item/employee-item.component.css create mode 100644 src/app/components/employees/employees-list/employee-item/employee-item.component.html create mode 100644 src/app/components/employees/employees-list/employee-item/employee-item.component.spec.ts create mode 100644 src/app/components/employees/employees-list/employee-item/employee-item.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index a6d0f3e..ea83233 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -12,6 +12,7 @@ import { EmployeeAddComponent } from './components/employee-add/employee-add.com import { EmployeeEditComponent } from './components/employee-edit/employee-edit.component'; import { EmployeesNavbarComponent } from './components/employees/employees-navbar/employees-navbar.component'; import { EmployeesListComponent } from './components/employees/employees-list/employees-list.component'; +import { EmployeeItemComponent } from './components/employees/employees-list/employee-item/employee-item.component'; @NgModule({ declarations: [ @@ -22,7 +23,8 @@ import { EmployeesListComponent } from './components/employees/employees-list/em EmployeeAddComponent, EmployeeEditComponent, EmployeesNavbarComponent, - EmployeesListComponent + EmployeesListComponent, + EmployeeItemComponent ], imports: [ BrowserModule, diff --git a/src/app/components/employees/employees-list/employee-item/employee-item.component.css b/src/app/components/employees/employees-list/employee-item/employee-item.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/employees/employees-list/employee-item/employee-item.component.html b/src/app/components/employees/employees-list/employee-item/employee-item.component.html new file mode 100644 index 0000000..b6db945 --- /dev/null +++ b/src/app/components/employees/employees-list/employee-item/employee-item.component.html @@ -0,0 +1,16 @@ + + {{employee.id}} + {{employee.nom}} + {{employee.prenom}} + {{employee.role}} + + + + + + + diff --git a/src/app/components/employees/employees-list/employee-item/employee-item.component.spec.ts b/src/app/components/employees/employees-list/employee-item/employee-item.component.spec.ts new file mode 100644 index 0000000..e2a5eea --- /dev/null +++ b/src/app/components/employees/employees-list/employee-item/employee-item.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EmployeeItemComponent } from './employee-item.component'; + +describe('EmployeeItemComponent', () => { + let component: EmployeeItemComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ EmployeeItemComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(EmployeeItemComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/employees/employees-list/employee-item/employee-item.component.ts b/src/app/components/employees/employees-list/employee-item/employee-item.component.ts new file mode 100644 index 0000000..471af71 --- /dev/null +++ b/src/app/components/employees/employees-list/employee-item/employee-item.component.ts @@ -0,0 +1,28 @@ +import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { Employee } from '../../../../model/employee.model'; +import { AppDataState, DataStateEnum, EmployeeActionsTypes, ActEvent } from '../../../../state/employee.state'; + +@Component({ + selector: 'app-employee-item', + templateUrl: './employee-item.component.html', + styleUrls: ['./employee-item.component.css'] +}) +export class EmployeeItemComponent implements OnInit { + @Input() employee?:Employee; + @Output() evtEmit:EventEmitter=new EventEmitter(); + constructor() { } + + ngOnInit(): void { } + + onDelete(val:Employee) { + this.evtEmit.emit({ + type:EmployeeActionsTypes.DELETE_EMPLOYEE, payload:val + }); + } + + onEdit(val:Employee) { + this.evtEmit.emit({ + type:EmployeeActionsTypes.EDIT_EMPLOYEE, payload:val + }); + } +} diff --git a/src/app/components/employees/employees-list/employees-list.component.html b/src/app/components/employees/employees-list/employees-list.component.html index 759d1d2..051965c 100644 --- a/src/app/components/employees/employees-list/employees-list.component.html +++ b/src/app/components/employees/employees-list/employees-list.component.html @@ -16,22 +16,8 @@ - - {{p.id}} - {{p.nom}} - {{p.prenom}} - {{p.role}} - - - - - - - + + diff --git a/src/app/components/employees/employees-list/employees-list.component.ts b/src/app/components/employees/employees-list/employees-list.component.ts index 1b9e097..405c2ec 100644 --- a/src/app/components/employees/employees-list/employees-list.component.ts +++ b/src/app/components/employees/employees-list/employees-list.component.ts @@ -15,18 +15,9 @@ export class EmployeesListComponent implements OnInit { constructor() { } - ngOnInit(): void { - } + ngOnInit(): void { } - onDelete(val:Employee) { - this.evtEmit.emit({ - type:EmployeeActionsTypes.DELETE_EMPLOYEE, payload:val - }); - } - - onEdit(val:Employee) { - this.evtEmit.emit({ - type:EmployeeActionsTypes.EDIT_EMPLOYEE, payload:val - }); + onActionEvent($event:ActEvent) { + this.evtEmit.emit($event); } }