diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index f33fc52..4cbae19 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'; @@ -33,8 +34,8 @@ 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: 'modifier-contact', component: PageModifierContactComponent }, { 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..42ae5da 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/pages/page-modifier-contact/page-modifier-contact.component.html b/src/app/pages/page-modifier-contact/page-modifier-contact.component.html index f63276c..c5b4b08 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,82 @@ -

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..b3720e0 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,26 @@ +.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; +} 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..7b1d5e1 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,88 @@ import { Component, OnInit } from '@angular/core'; +import { + FormBuilder, + FormControl, + FormGroup, + Validators, +} from '@angular/forms'; +import { 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; - constructor() { } + constructor( + private repertoireService: RepertoireService, + private router: Router, + private fb: FormBuilder + ) { + this.modifContactForm = new FormGroup({}); + this.contactInfo = this.initForm(); - ngOnInit(): void { + // this.repertoireService.getContactById()?.subscribe((contact: Contact) => { + // this.contactInfo = this.initForm(contact); + // }); } + ngOnInit(): void { + // *********************************pensser a 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]), + }); + } + + 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 : ''], + }); + } + + 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 = { + nom: lastNameValue, + prenom: firstNameValue, + telephone: telephoneValue, + email: emailValue, + dateNaissance: dateNaissanceValue, + adresse: adresseValue, + }; + + if (contact.nom !== '') { + this.repertoireService.updateContact(contact).subscribe((resp) => { + this.router.navigate(['repertoire/']); + }); + } else { + // affichage erreur + } + } } diff --git a/src/app/services/repertoire.service.ts b/src/app/services/repertoire.service.ts index eb07eda..1b1713a 100644 --- a/src/app/services/repertoire.service.ts +++ b/src/app/services/repertoire.service.ts @@ -21,6 +21,10 @@ export class RepertoireService { return this.http.get(`${this.apiUrl}/contacts/team/1`); } + getContactById(contact: Contact): Observable { + return this.http.get(`${this.apiUrl}/contacts/{id}`); + } + addContact(contact: Contact): Observable { console.log(contact); @@ -31,7 +35,7 @@ export class RepertoireService { return this.http.delete(`${this.apiUrl}/contacts/delete`); } - // updateContact(){ - // return this.http.put(`${this.apiUrl}/contacts/update/1`); - // } + updateContact(contact: Contact): Observable { + return this.http.put(`${this.apiUrl}/contacts/update/1`, contact); + } }