diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index f33fc52..4587264 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -10,6 +10,7 @@ import { PageDashboardComponent } from './pages/page-dashboard/page-dashboard.co import { PageDeleteMemberComponent } from './pages/page-delete-member/page-delete-member.component'; import { PageForgotPasswordComponent } from './pages/page-forgot-password/page-forgot-password.component'; import { PageMenuSemaineComponent } from './pages/page-menu-semaine/page-menu-semaine.component'; +import { PageModifierContactComponent } from './pages/page-modifier-contact/page-modifier-contact.component'; import { PageNotFoundComponent } from './pages/page-not-found/page-not-found.component'; import { PageRepertoireComponent } from './pages/page-repertoire/page-repertoire.component'; import { PageResetPasswordComponent } from './pages/page-reset-password/page-reset-password.component'; @@ -19,6 +20,7 @@ import { PageUpdateMemberComponent } from './pages/page-update-member/page-updat const routes: Routes = [ { path: '', redirectTo: 'accueil', pathMatch: 'full' }, + { path: 'modifier-contact/:id', component: PageModifierContactComponent }, { path: 'compte', component: PageAccountComponent }, { path: 'accueil', component: PageAccueilComponent }, { path: 'ajout-membre', component: PageAddMemberComponent }, @@ -33,8 +35,7 @@ const routes: Routes = [ { path: 'to-do-list', component: PageToDoListComponent }, { path: 'modifier-membre', component: PageUpdateMemberComponent }, { path: 'ajouter-contact', component: PageAjoutContactComponent }, - { path: 'modifier-contact', component: PageAjoutContactComponent }, - { path: 'creation-team', component : PageCreationTeamComponent}, + { path: 'creation-team', component: PageCreationTeamComponent }, { path: '**', component: PageNotFoundComponent }, ]; diff --git a/src/app/components/fiche-contact/fiche-contact.component.html b/src/app/components/fiche-contact/fiche-contact.component.html index 5672e50..1d4eb48 100644 --- a/src/app/components/fiche-contact/fiche-contact.component.html +++ b/src/app/components/fiche-contact/fiche-contact.component.html @@ -1,7 +1,7 @@
-
diff --git a/src/app/models/contact.ts b/src/app/models/contact.ts index 2c632a4..539aab3 100644 --- a/src/app/models/contact.ts +++ b/src/app/models/contact.ts @@ -1,8 +1,10 @@ export interface Contact { + id: string; nom: string; prenom: string; telephone: string; email: string; adresse: string; dateNaissance: Date; + team: any; } diff --git a/src/app/pages/page-ajout-contact/page-ajout-contact.component.html b/src/app/pages/page-ajout-contact/page-ajout-contact.component.html index 30c5a21..981a9c2 100644 --- a/src/app/pages/page-ajout-contact/page-ajout-contact.component.html +++ b/src/app/pages/page-ajout-contact/page-ajout-contact.component.html @@ -73,7 +73,7 @@
- diff --git a/src/app/pages/page-ajout-contact/page-ajout-contact.component.scss b/src/app/pages/page-ajout-contact/page-ajout-contact.component.scss index ca7893e..0f5ceb6 100644 --- a/src/app/pages/page-ajout-contact/page-ajout-contact.component.scss +++ b/src/app/pages/page-ajout-contact/page-ajout-contact.component.scss @@ -24,3 +24,8 @@ border-bottom-right-radius: 0; border-bottom-left-radius: 0; } + +.btn-secondary { + color: #fff; + background-color: #5a1e63 !important; +} diff --git a/src/app/pages/page-ajout-contact/page-ajout-contact.component.ts b/src/app/pages/page-ajout-contact/page-ajout-contact.component.ts index 2bb57b1..d99669d 100644 --- a/src/app/pages/page-ajout-contact/page-ajout-contact.component.ts +++ b/src/app/pages/page-ajout-contact/page-ajout-contact.component.ts @@ -26,7 +26,7 @@ export class PageAjoutContactComponent implements OnInit { } ngOnInit(): void { - // *********************************pensser a changer group car déprécié******************************** + // *********************************pensser à changer group car déprécié******************************** this.ajoutContactForm = this.fb.group({ lastNameFc: new FormControl('', [Validators.required]), firstNameFc: new FormControl('', [Validators.required]), @@ -52,12 +52,14 @@ export class PageAjoutContactComponent implements OnInit { const adresseValue = this.ajoutContactForm.value['adresseFc']; const contact: Contact = { + id: '', nom: lastNameValue, prenom: firstNameValue, telephone: telephoneValue, email: emailValue, dateNaissance: dateNaissanceValue, adresse: adresseValue, + team: { id: '1' }, // changer l'id quand la personne est logé => recuperer l'id de la team du membre }; if (contact.nom !== '') { diff --git a/src/app/pages/page-modifier-contact/page-modifier-contact.component.html b/src/app/pages/page-modifier-contact/page-modifier-contact.component.html index f63276c..5ac961b 100644 --- a/src/app/pages/page-modifier-contact/page-modifier-contact.component.html +++ b/src/app/pages/page-modifier-contact/page-modifier-contact.component.html @@ -1 +1,83 @@ -

page-modifier-contact works!

+
+ + +
+ +
+
+
+

Modifier ce contact

+ + +
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + +
+
+
\ No newline at end of file diff --git a/src/app/pages/page-modifier-contact/page-modifier-contact.component.scss b/src/app/pages/page-modifier-contact/page-modifier-contact.component.scss index e69de29..6709ac8 100644 --- a/src/app/pages/page-modifier-contact/page-modifier-contact.component.scss +++ b/src/app/pages/page-modifier-contact/page-modifier-contact.component.scss @@ -0,0 +1,31 @@ +.login-form { + height: 100vh; + padding-top: 40px; + background-color: #f5f5f5; +} + +.form-modifContact { + width: 100%; + max-width: 330px; + padding: 15px; + margin: auto; +} + +.form-modifContact .checkbox { + font-weight: 400; +} + +.form-modifContact .form-floating:focus-within { + z-index: 2; +} + +.form-modifContact input[type="email"] { + margin-bottom: -1px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-secondary { + color: #fff; + background-color: #5a1e63 !important; +} diff --git a/src/app/pages/page-modifier-contact/page-modifier-contact.component.ts b/src/app/pages/page-modifier-contact/page-modifier-contact.component.ts index b5c46df..0cfa9d9 100644 --- a/src/app/pages/page-modifier-contact/page-modifier-contact.component.ts +++ b/src/app/pages/page-modifier-contact/page-modifier-contact.component.ts @@ -1,15 +1,98 @@ import { Component, OnInit } from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Contact } from '../../models/contact'; +import { RepertoireService } from '../../services/repertoire.service'; @Component({ selector: 'app-page-modifier-contact', templateUrl: './page-modifier-contact.component.html', - styleUrls: ['./page-modifier-contact.component.scss'] + styleUrls: ['./page-modifier-contact.component.scss'], }) export class PageModifierContactComponent implements OnInit { + public modifContactForm: FormGroup; + public contactInfo: FormGroup; + public listContactInfo: any; + public personneid: any; - constructor() { } - - ngOnInit(): void { + constructor( + private repertoireService: RepertoireService, + private router: Router, + private fb: FormBuilder, + private route: ActivatedRoute + ) { + this.modifContactForm = new FormGroup({}); + this.contactInfo = this.initForm(); + this.listContactInfo = ''; } + ngOnInit(): void { + this.personneid = this.route.snapshot.paramMap.get('id'); // récupère l'id du contact à modifier + console.log(this.personneid); + + this.repertoireService + .getContactById(this.personneid) + .subscribe((listContactInfo: any) => { + console.log(listContactInfo); + this.listContactInfo = listContactInfo; + }); + + // *********************************pensser à changer group car déprécié******************************** + this.modifContactForm = this.fb.group({ + lastNameFc: new FormControl('', [Validators.required]), + firstNameFc: new FormControl('', [Validators.required]), + telephoneFc: new FormControl('', [Validators.required]), + emailFc: new FormControl('', [ + Validators.email, + Validators.required, + Validators.pattern(/^([\w\.\-_]+)?\w+@[\w-_]+(\.\w+){1,}/gim), + ]), // chercher une meilleure regex + dateNaissanceFc: new FormControl('', [Validators.required]), + adresseFc: new FormControl('', [Validators.required]), + }); + } + + //Méthode qui initialise les champs du formulaire avec les infos de la BDD + private initForm(contact?: Contact): FormGroup { + return this.fb.group({ + firstName: [contact ? contact.nom : ''], + lastName: [contact ? contact.prenom : ''], + telephone: [contact ? contact.telephone : ''], + email: [contact ? contact.email : ''], + dateNaissance: [contact ? contact.dateNaissance : ''], + adresse: [contact ? contact.adresse : ''], + }); + } + + //Méthode qui envoie les champs modifiés pour mise à jour + public onSubmit(): void { + console.log('value : ', this.modifContactForm.value); + console.log('form : ', this.modifContactForm); + const firstNameValue = this.modifContactForm.value['firstNameFc']; + const lastNameValue = this.modifContactForm.value['lastNameFc']; + const telephoneValue = this.modifContactForm.value['telephoneFc']; + const emailValue = this.modifContactForm.value['emailFc']; + const dateNaissanceValue = this.modifContactForm.value['dateNaissanceFc']; + const adresseValue = this.modifContactForm.value['adresseFc']; + + const contact: Contact = { + id: this.personneid, + nom: lastNameValue, + prenom: firstNameValue, + telephone: telephoneValue, + email: emailValue, + dateNaissance: dateNaissanceValue, + adresse: adresseValue, + team: { id: this.listContactInfo.team.id }, + }; + + this.repertoireService.updateContact(contact).subscribe((resp) => { + this.router.navigate(['repertoire/']); + }); + } } diff --git a/src/app/pages/page-not-found/page-not-found.component.html b/src/app/pages/page-not-found/page-not-found.component.html index be7d620..575a83b 100644 --- a/src/app/pages/page-not-found/page-not-found.component.html +++ b/src/app/pages/page-not-found/page-not-found.component.html @@ -1,11 +1,11 @@
- +

Page introuvable



Je retourne à l'accueil











- +
diff --git a/src/app/pages/page-repertoire/page-repertoire.component.ts b/src/app/pages/page-repertoire/page-repertoire.component.ts index c4fff1b..b7a1859 100644 --- a/src/app/pages/page-repertoire/page-repertoire.component.ts +++ b/src/app/pages/page-repertoire/page-repertoire.component.ts @@ -1,4 +1,6 @@ import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { Contact } from 'src/app/models/contact'; import { RepertoireService } from 'src/app/services/repertoire.service'; @Component({ @@ -9,12 +11,19 @@ import { RepertoireService } from 'src/app/services/repertoire.service'; export class PageRepertoireComponent implements OnInit { public listContact: any[]; public listFull: any[]; + public listContactInfo: any; + public personneid: any; keyword: any; openDetails: any; - constructor(private repertoireService: RepertoireService) { + constructor( + private repertoireService: RepertoireService, + private router: Router, + private route: ActivatedRoute + ) { this.listContact = []; this.listFull = []; + this.listContactInfo = ''; } ngOnInit(): void { @@ -23,6 +32,16 @@ export class PageRepertoireComponent implements OnInit { this.listContact = listContact; this.listFull = listContact; }); + + this.personneid = this.route.snapshot.paramMap.get('id'); + console.log(this.personneid); + + this.repertoireService + .getContactById(this.personneid) + .subscribe((listContactInfo: any) => { + console.log(listContactInfo); + this.listContactInfo = listContactInfo; + }); } // Méthode pour récuper ce qui est saisi dans l'input @@ -47,4 +66,8 @@ export class PageRepertoireComponent implements OnInit { console.log(personne); this.openDetails = personne; } + + // this.repertoireService.deleteContact(contact).subscribe((resp) => { + // this.router.navigate(['repertoire/']); + // }); } diff --git a/src/app/services/repertoire.service.ts b/src/app/services/repertoire.service.ts index eb07eda..a452854 100644 --- a/src/app/services/repertoire.service.ts +++ b/src/app/services/repertoire.service.ts @@ -21,17 +21,21 @@ export class RepertoireService { return this.http.get(`${this.apiUrl}/contacts/team/1`); } + getContactById(id: any): Observable { + return this.http.get(`${this.apiUrl}/contacts/` + id); + } + addContact(contact: Contact): Observable { console.log(contact); return this.http.post(`${this.apiUrl}/contacts/add`, contact); } - deleteContact() { - return this.http.delete(`${this.apiUrl}/contacts/delete`); + deleteContact(contact: Contact): Observable { + return this.http.delete(`${this.apiUrl}/contacts/delete/1`); } - // updateContact(){ - // return this.http.put(`${this.apiUrl}/contacts/update/1`); - // } + updateContact(contact: Contact): Observable { + return this.http.put(`${this.apiUrl}/contacts/update/1`, contact); + } } diff --git a/src/assets/images/adresse.jpg b/src/assets/images/adresse.jpg deleted file mode 100644 index deca31c..0000000 Binary files a/src/assets/images/adresse.jpg and /dev/null differ