From 6127980db9bc441e482b3139855f055a5a3e3fb5 Mon Sep 17 00:00:00 2001 From: Clement FERRERE Date: Tue, 19 Apr 2022 11:55:35 +0200 Subject: [PATCH] =?UTF-8?q?Passage=20des=20collaborateurs=20avec=20ngForms?= =?UTF-8?q?,=20afin=20d'avoir=20les=20champs=20obligatoires=20fonctionnels?= =?UTF-8?q?.=20Il=20reste=20encore=20des=20d=C3=A9tails=20=C3=A0=20corrige?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.module.ts | 2 - .../businessunit-edit.component.ts | 1 - .../collaborateur-detail.component.html | 102 ------------ .../collaborateur-detail.component.scss | 1 - .../collaborateur-detail.component.ts | 65 -------- .../collaborateur-edit.component.html | 149 +++++++++++++++++- .../collaborateur-edit.component.ts | 79 +++++++++- .../collaborateur.component.html | 147 ++++++++++++++++- .../collaborateur/collaborateur.component.ts | 67 +++++++- src/app/services/agence.service.ts | 2 +- src/app/services/businessunit.service.ts | 2 +- src/app/services/collaborateur.service.ts | 2 +- 12 files changed, 432 insertions(+), 187 deletions(-) delete mode 100644 src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html delete mode 100644 src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.scss delete mode 100644 src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 27744e2..80a8990 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -11,7 +11,6 @@ import { AppRoutingModule } from './app-routing.module'; import { HomeComponent } from './components/home/home.component'; import { AgenceComponent } from './components/agence/agence.component'; import { AgenceEditComponent } from './components/agence/agence-edit/agence-edit.component'; -import { CollaborateurDetailComponent } from './components/collaborateur/collaborateur-detail/collaborateur-detail.component'; import { BusinessunitComponent } from './components/businessunit/businessunit.component'; import { BusinessunitEditComponent } from './components/businessunit/businessunit-edit/businessunit-edit.component'; @@ -23,7 +22,6 @@ import { BusinessunitEditComponent } from './components/businessunit/businessuni HomeComponent, AgenceComponent, AgenceEditComponent, - CollaborateurDetailComponent, BusinessunitComponent, BusinessunitEditComponent, diff --git a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts index ba03376..64703dc 100644 --- a/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts +++ b/src/app/components/businessunit/businessunit-edit/businessunit-edit.component.ts @@ -16,7 +16,6 @@ export class BusinessunitEditComponent implements OnInit { businessunit = {} as Businessunit ; agences : Agence[] = []; - agence = {} as Agence ; registerForm!: FormGroup; diff --git a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html deleted file mode 100644 index 1843802..0000000 --- a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.html +++ /dev/null @@ -1,102 +0,0 @@ -
- -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
-
- -
- -
- - -
- -
- - -
- -
- - -
-
- -
- -
- - -
- -
- - -
-
- - -
- - *Tous les champs sont obligatoires - -
diff --git a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.scss b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.scss deleted file mode 100644 index 8b13789..0000000 --- a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.scss +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts b/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts deleted file mode 100644 index 192d667..0000000 --- a/src/app/components/collaborateur/collaborateur-detail/collaborateur-detail.component.ts +++ /dev/null @@ -1,65 +0,0 @@ -import {Component, Input, OnInit} from '@angular/core'; -import {Collaborateur} from "../../../interfaces/collaborateur"; -import {HttpClient} from "@angular/common/http"; -import {CollaborateurService} from "../../../services/collaborateur.service"; -import {BusinessunitService} from "../../../services/businessunit.service"; -import {Businessunit} from "../../../interfaces/businessunit"; -@Component({ - selector: 'app-collaborateur-detail', - templateUrl: './collaborateur-detail.component.html', - styleUrls: ['./collaborateur-detail.component.scss'] -}) -export class CollaborateurDetailComponent implements OnInit { - - businessunits : Businessunit[] = []; - collaborateurs : Collaborateur[] = []; - rDate : String = ""; - bDate : String = ""; - - @Input() - collaborateur = {} as Collaborateur; - - constructor( - private http : HttpClient, - private collaborateurService: CollaborateurService, - private businessunitService: BusinessunitService - ) {} - - - ngOnInit(): void { - this.getCollaborateurs(); - this.getBusinessunits(); - if (this.collaborateur.resignationDate) { - this.rDate = new Date(this.collaborateur.resignationDate).toISOString().split('T')[0]; - console.log(this.rDate) - } - if (this.collaborateur.birthDate) { - this.bDate = new Date(this.collaborateur.birthDate).toISOString().split('T')[0]; - console.log(this.bDate) - } - } - - getCollaborateurs():void { - this.collaborateurService.getCollaborateurs() - .subscribe(collaborateurs => this.collaborateurs = collaborateurs); - } - - getBusinessunits():void { - this.businessunitService.getBusinessunits() - .subscribe(businessunits => this.businessunits = businessunits); - } - - onResignationDateChange($event: any):void { - console.log($event.target) - this.collaborateur.resignationDate = new Date($event.target.value); - console.log(this.rDate) - console.log(this.collaborateur.resignationDate) - } - - onBirthDateChange($event: any):void { - console.log($event.target) - this.collaborateur.birthDate = new Date($event.target.value); - console.log(this.bDate) - console.log(this.collaborateur.birthDate) - } -} diff --git a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html index 4370f05..ff4a762 100644 --- a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html +++ b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.html @@ -5,9 +5,150 @@
{{collaborateur.id}}
- +
+ +
+ +
+ + +
+
Le nom d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Le prénom d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
La date de naissance d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Vous devez préciser le genre du collaborateur
+
+
+ +
+ +
+ +
+ + +
+
Vous devez préciser le statut du collaborateur
+
+
+ +
+ + +
+
Le nombre d'enfant d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
L'adresse d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Le numéro de téléphone d'un collaborateur est obligatoire
+
+
+
+ +
+ +
+ + +
+
Le mail personnel d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Le mail Apside d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
La date de départ d'un collaborateur est obligatoire
+
+
+ +
+ +
+ +
+ + +
+
Vous devez préciser le référent du collaborateur
+
+
+ +
+ + +
+
Vous devez préciser la Business Unit du collaborateur
+
+
+ +
+ +
+ + + + +
+
- - - diff --git a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts index d35a5d2..9852e21 100644 --- a/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts +++ b/src/app/components/collaborateur/collaborateur-edit/collaborateur-edit.component.ts @@ -3,6 +3,9 @@ import {Collaborateur} from "../../../interfaces/collaborateur"; import { ActivatedRoute } from '@angular/router'; import { Location } from '@angular/common'; import { CollaborateurService} from "../../../services/collaborateur.service"; +import {BusinessunitService} from "../../../services/businessunit.service"; +import {FormBuilder, FormGroup, Validators} from "@angular/forms"; +import {Businessunit} from "../../../interfaces/businessunit"; @Component({ selector: 'app-collaborateur-edit', @@ -10,16 +13,55 @@ import { CollaborateurService} from "../../../services/collaborateur.service"; styleUrls: ['./collaborateur-edit.component.scss'] }) export class CollaborateurEditComponent implements OnInit { - collaborateur : Collaborateur | undefined; + collaborateur = {} as Collaborateur; + collaborateurs : Collaborateur[] = []; + businessUnits : Businessunit[] = []; + businessUnit = {} as Businessunit ; + + rDate : String = ""; + bDate : String = ""; + + registerForm!: FormGroup; + submitted = false; constructor( private route: ActivatedRoute, private collaborateurService: CollaborateurService, - private location: Location + private businessunitService: BusinessunitService, + private location: Location, + private formBuilder: FormBuilder ) { } ngOnInit(): void { - this.getCollaborateur() + this.getCollaborateurs() + this.getCollaborateur(); + this.getBusinessunits(); + this.registerForm = this.formBuilder.group({ + name: ['', Validators.required], + firstName: ['', Validators.required], + birthDate: ['', Validators.required], + gender: ['', Validators.required], + status: ['', Validators.required], + childrenNumber: ['', Validators.required], + address: ['', Validators.required], + telephone: ['', Validators.required], + personalMail: ['', Validators.required], + apsideMail: ['', Validators.required], + resignationDate: ['', Validators.required], + referrerId: ['', Validators.required], + businessUnitId: ['', Validators.required], + }); + if (this.collaborateur.resignationDate) { + this.rDate = new Date(this.collaborateur.resignationDate).toISOString().split('T')[0]; + } + if (this.collaborateur.birthDate) { + this.bDate = new Date(this.collaborateur.birthDate).toISOString().split('T')[0]; + } + } + + getCollaborateurs():void { + this.collaborateurService.getCollaborateurs() + .subscribe(collaborateurs => this.collaborateurs = collaborateurs); } getCollaborateur(): void { @@ -28,13 +70,17 @@ export class CollaborateurEditComponent implements OnInit { .subscribe(collaborateur => this.collaborateur = collaborateur); } + getBusinessunits():void { + this.businessunitService.getBusinessunits() + .subscribe(businessunits => this.businessUnits = businessunits); + } + goBack(): void { this.location.back(); } save():void{ if (this.collaborateur){ - console.log("SAVE",this.collaborateur.resignationDate) this.collaborateurService.updateCollaborateur(this.collaborateur) .subscribe(()=>this.goBack()); } @@ -46,4 +92,29 @@ export class CollaborateurEditComponent implements OnInit { .subscribe(()=>this.goBack()); } } + + onSubmit() { + this.submitted = true; + + if (this.registerForm.invalid) { + return; + } + this.collaborateur = this.registerForm.value + this.save() + } + + get f() { return this.registerForm.controls; } + + onReset() { + this.submitted = false; + this.registerForm.reset(); + } + + onResignationDateChange($event: any):void { + this.collaborateur.resignationDate = new Date($event.target.value); + } + + onBirthDateChange($event: any):void { + this.collaborateur.birthDate = new Date($event.target.value); + } } diff --git a/src/app/components/collaborateur/collaborateur.component.html b/src/app/components/collaborateur/collaborateur.component.html index 361a4bf..eb08cda 100644 --- a/src/app/components/collaborateur/collaborateur.component.html +++ b/src/app/components/collaborateur/collaborateur.component.html @@ -2,11 +2,150 @@

Ajouter un collaborateur :

- +
+ +
+ +
+ + +
+
Le nom d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Le prénom d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
La date de naissance d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Vous devez préciser le genre du collaborateur
+
+
+ +
+ +
+ +
+ + +
+
Vous devez préciser le statut du collaborateur
+
+
+ +
+ + +
+
Le nombre d'enfant d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
L'adresse d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Le numéro de téléphone d'un collaborateur est obligatoire
+
+
+
+ +
+ +
+ + +
+
Le mail personnel d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
Le mail Apside d'un collaborateur est obligatoire
+
+
+ +
+ + +
+
La date de départ d'un collaborateur est obligatoire
+
+
+ +
+ +
+ +
+ + +
+
Vous devez préciser le référent du collaborateur
+
+
+ +
+ + +
+
Vous devez préciser la Business Unit du collaborateur
+
+
+ +
+ +
+ + +
+
-

Collaborateurs

diff --git a/src/app/components/collaborateur/collaborateur.component.ts b/src/app/components/collaborateur/collaborateur.component.ts index 1210271..6cb4eb6 100644 --- a/src/app/components/collaborateur/collaborateur.component.ts +++ b/src/app/components/collaborateur/collaborateur.component.ts @@ -2,6 +2,9 @@ import { Component, OnInit } from '@angular/core'; import {HttpClient} from "@angular/common/http"; import {CollaborateurService} from "../../services/collaborateur.service"; import {Collaborateur} from "../../interfaces/collaborateur"; +import {FormBuilder, FormGroup, Validators} from "@angular/forms"; +import {Businessunit} from "../../interfaces/businessunit"; +import {BusinessunitService} from "../../services/businessunit.service"; @Component({ selector: 'app-collaborateur', @@ -10,15 +13,47 @@ import {Collaborateur} from "../../interfaces/collaborateur"; }) export class CollaborateurComponent implements OnInit { collaborateurs : Collaborateur[] = []; - collaborateur = {} as Collaborateur ; + collaborateur = {} as Collaborateur; + businessUnits : Businessunit[] = []; + businessUnit = {} as Businessunit ; + + rDate : String = ""; + bDate : String = ""; + + registerForm!: FormGroup; + submitted = false; constructor( private http : HttpClient, + private businessunitService: BusinessunitService, private collaborateurService: CollaborateurService, + private formBuilder: FormBuilder ) { } ngOnInit(): void { this.getCollaborateurs(); + this.getBusinessunits(); + this.registerForm = this.formBuilder.group({ + name: ['', Validators.required], + firstName: ['', Validators.required], + birthDate: ['', Validators.required], + gender: ['', Validators.required], + status: ['', Validators.required], + childrenNumber: ['', Validators.required], + address: ['', Validators.required], + telephone: ['', Validators.required], + personalMail: ['', Validators.required], + apsideMail: ['', Validators.required], + resignationDate: ['', Validators.required], + referrerId: ['', Validators.required], + businessUnitId: ['', Validators.required], + }); + if (this.collaborateur.resignationDate) { + this.rDate = new Date(this.collaborateur.resignationDate).toISOString().split('T')[0]; + } + if (this.collaborateur.birthDate) { + this.bDate = new Date(this.collaborateur.birthDate).toISOString().split('T')[0]; + } } getCollaborateurs():void { @@ -26,6 +61,11 @@ export class CollaborateurComponent implements OnInit { .subscribe(collaborateurs => this.collaborateurs = collaborateurs); } + getBusinessunits():void { + this.businessunitService.getBusinessunits() + .subscribe(businessunits => this.businessUnits = businessunits); + } + add(collaborateur: Collaborateur): void { this.collaborateurService.addCollaborateur(collaborateur) .subscribe(collaborateur => { @@ -33,4 +73,29 @@ export class CollaborateurComponent implements OnInit { }); } + onSubmit() { + this.submitted = true; + + if (this.registerForm.invalid) { + return; + } + this.collaborateur = this.registerForm.value + this.add(this.collaborateur) + } + + get f() { return this.registerForm.controls; } + + onReset() { + this.submitted = false; + this.registerForm.reset(); + } + + onResignationDateChange($event: any):void { + this.collaborateur.resignationDate = new Date($event.target.value); + } + + onBirthDateChange($event: any):void { + this.collaborateur.birthDate = new Date($event.target.value); + } + } diff --git a/src/app/services/agence.service.ts b/src/app/services/agence.service.ts index a92030f..64c87e0 100644 --- a/src/app/services/agence.service.ts +++ b/src/app/services/agence.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import {HttpClient, HttpHeaders} from "@angular/common/http"; import {Observable} from "rxjs"; import {Agence} from "../interfaces/agence"; -import {agencesUrl} from "../../ressources/routes/routesPreprod"; +import {agencesUrl} from "../../ressources/routes/routes"; @Injectable({ providedIn: 'root' diff --git a/src/app/services/businessunit.service.ts b/src/app/services/businessunit.service.ts index 2c96ef2..bd17c09 100644 --- a/src/app/services/businessunit.service.ts +++ b/src/app/services/businessunit.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import {HttpClient, HttpHeaders} from "@angular/common/http"; import {Observable} from "rxjs"; import {Businessunit} from "../interfaces/businessunit"; -import {businessunitsUrl} from "../../ressources/routes/routesPreprod"; +import {businessunitsUrl} from "../../ressources/routes/routes"; @Injectable({ providedIn: 'root' diff --git a/src/app/services/collaborateur.service.ts b/src/app/services/collaborateur.service.ts index 2b58b98..f410852 100644 --- a/src/app/services/collaborateur.service.ts +++ b/src/app/services/collaborateur.service.ts @@ -2,7 +2,7 @@ import {Collaborateur} from "../interfaces/collaborateur"; import {Injectable} from '@angular/core'; import {Observable} from "rxjs"; import {HttpClient, HttpHeaders} from "@angular/common/http"; -import {collaborateursUrl} from "../../ressources/routes/routesPreprod"; +import {collaborateursUrl} from "../../ressources/routes/routes"; @Injectable({providedIn: 'root'})