recup du stach et fonctionalitée modifier contact
This commit is contained in:
		
							parent
							
								
									ef3418b45c
								
							
						
					
					
						commit
						0390c45886
					
				
					 6 changed files with 195 additions and 10 deletions
				
			
		|  | @ -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 }, | ||||
| ]; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| <div class="container"> | ||||
|     <div class="row"> | ||||
|         <div class="col-sm">   | ||||
|             <button class="w-100 btn btn-lg btn-rounded btn-secondary"> | ||||
|             <button routerLink="../modifier-contact"  class="w-100 btn btn-lg btn-rounded btn-secondary"> | ||||
|                 Modifier | ||||
|             </button> | ||||
|         </div> | ||||
|  |  | |||
|  | @ -1 +1,82 @@ | |||
| <p>page-modifier-contact works!</p> | ||||
| <div> | ||||
|     <app-header></app-header> | ||||
|     <app-side-bar></app-side-bar> | ||||
| </div> | ||||
| <div class="modifContact-form text-center"> | ||||
|     <main class="form-modifContact"> | ||||
|         <form  (ngSubmit)="onSubmit()" [formGroup]="modifContactForm"> | ||||
|             <h1>Modifier ce contact</h1> | ||||
| 
 | ||||
| 
 | ||||
|             <div class="form-floating"> | ||||
|                 <input type="text"  | ||||
|                         class="form-control"  | ||||
|                         id="floatingInputlastName"  | ||||
|                         placeholder=""  | ||||
|                         name="lastName"  | ||||
|                         formControlName="lastNameFc"> | ||||
|                 <label for="floatingInputlastName">Nom</label> | ||||
| 
 | ||||
| 
 | ||||
|             </div> | ||||
|             <div class="form-floating"> | ||||
|                 <input type="text"  | ||||
|                         class="form-control"  | ||||
|                         id="floatingInputfirstName"  | ||||
|                         placeholder=""  | ||||
|                         name="firstName"  | ||||
|                         formControlName="firstNameFc"> | ||||
|                 <label for="floatingInputfirstName">Prénom</label> | ||||
| 
 | ||||
| 
 | ||||
|             </div> | ||||
|             <div class="form-floating"> | ||||
|                 <input type="text"  | ||||
|                         class="form-control"  | ||||
|                         id="floatingInputTelephone"  | ||||
|                         placeholder=""  | ||||
|                         name="telephone"  | ||||
|                         formControlName="telephoneFc"> | ||||
|                 <label for="floatingInputfirstName">Téléphone</label> | ||||
| 
 | ||||
| 
 | ||||
|             </div> | ||||
|             <div class="form-floating"> | ||||
|                 <input type="email"  | ||||
|                         class="form-control"  | ||||
|                         id="floatingInput"  | ||||
|                         placeholder=""  | ||||
|                         name="email"  | ||||
|                         formControlName="emailFc"> | ||||
|                 <label for="floatingInput">Adresse email</label> | ||||
|             </div> | ||||
| 
 | ||||
| 
 | ||||
|             <div class="form-floating"> | ||||
|                 <input type="date"  | ||||
|                         class="form-control"  | ||||
|                         id="floatingInputdateNaissance"  | ||||
|                         placeholder=""  | ||||
|                         name="dateNaissance"  | ||||
|                         formControlName="dateNaissanceFc"> | ||||
|                 <label for="floatingInputfirstName">Date de naissance</label> | ||||
|             </div> | ||||
| 
 | ||||
| 
 | ||||
|             <div class="form-floating"> | ||||
|                 <input type="text"  | ||||
|                         class="form-control"  | ||||
|                         id="floatingInputAdresse"  | ||||
|                         placeholder=""  | ||||
|                         name="adresse"  | ||||
|                         formControlName="adresseFc"> | ||||
|                 <label for="floatingInputfirstName">Adresse</label> | ||||
|             </div> | ||||
| 
 | ||||
|             <button class="w-100 btn btn-lg btn-success"  | ||||
|                     type="submit"  | ||||
|                     [disabled]="modifContactForm.invalid">Valider</button> | ||||
| 
 | ||||
|         </form> | ||||
|     </main> | ||||
| </div>  | ||||
|  | @ -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; | ||||
| } | ||||
|  | @ -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
 | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -21,6 +21,10 @@ export class RepertoireService { | |||
|     return this.http.get(`${this.apiUrl}/contacts/team/1`); | ||||
|   } | ||||
| 
 | ||||
|   getContactById(contact: Contact): Observable<any> { | ||||
|     return this.http.get(`${this.apiUrl}/contacts/{id}`); | ||||
|   } | ||||
| 
 | ||||
|   addContact(contact: Contact): Observable<any> { | ||||
|     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<any> { | ||||
|     return this.http.put(`${this.apiUrl}/contacts/update/1`, contact); | ||||
|   } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 AlineRinquin
						AlineRinquin