Skip to content

Commit 90d8760

Browse files
author
*rkeita31*
committed
Merge branch 'master' into localRama2
2 parents 4c9b323 + 885690c commit 90d8760

12 files changed

+149
-86
lines changed

src/app/components/offre/offre.component.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ export class OffreComponent implements OnInit {
1313

1414
offre: Offre = new Offre();
1515

16+
selectedFiles?: FileList;
17+
currentFileUpload?: File;
1618
offres!: any[];
1719
users!: any[];
1820

@@ -33,13 +35,16 @@ export class OffreComponent implements OnInit {
3335
this.utilisateurService.findAll().subscribe(data => { this.users = data; });
3436
}
3537

36-
saveOffre() {
37-
this.offreService.save(this.offre).subscribe(
38-
() => {
39-
this.findAllOffre();
40-
this.offre = new Offre();
41-
}
42-
)
38+
selectFile(event: any) {
39+
this.selectedFiles = event.target.files;
40+
}
41+
save() {
42+
this.currentFileUpload = this.selectedFiles?.item(0) as File;
43+
this.offreService.save(this.currentFileUpload, this.offre).subscribe(() => {
44+
this.findAllUtilisateurs();
45+
this.offre = new Offre();
46+
this.selectedFiles = undefined;
47+
})
4348
}
4449
deleteOffre(id: number) {
4550
this.offreService.delete(id).subscribe(

src/app/icons/icons.component.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ export class IconsComponent {
2727
}
2828

2929
findAllUtilisateurs() {
30-
// Utilisation de l'expression lambde dans le subscribe
31-
// data => {this.users = data}
3230
this.utilisateurService.findAll().subscribe(data => { this.users = data; });
3331
}
3432

src/app/mdp/mdp.component.html

100644100755
File mode changed.

src/app/mdp/mdp.component.scss

100644100755
File mode changed.

src/app/mdp/mdp.component.spec.ts

100644100755
File mode changed.

src/app/mdp/mdp.component.ts

100644100755
File mode changed.

src/app/services/offre.service.ts

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { HttpClient } from '@angular/common/http';
1+
import { HttpClient, HttpRequest } from '@angular/common/http';
22
import { Injectable } from '@angular/core';
3-
import { Observable } from 'rxjs';
3+
import { Offre } from 'app/model/offre';
4+
import { catchError, Observable, throwError } from 'rxjs';
45

56
@Injectable({
67
providedIn: 'root'
@@ -9,21 +10,38 @@ export class OffreService {
910

1011
private BASE_URL = "http://localhost:8080/offres"
1112

12-
constructor(private httpClient:HttpClient) { }
13-
14-
public findAll() : Observable<any>
15-
{ return this.httpClient.get(this.BASE_URL);}
16-
17-
public save(offre:any) : Observable<any>
18-
{ return this.httpClient.post(this.BASE_URL, offre); }
13+
constructor(private httpClient: HttpClient) { }
14+
15+
public findAll(): Observable<any> { return this.httpClient.get(this.BASE_URL); }
16+
17+
public save(image: File, offre: Offre): Observable<Object> {
18+
const formData = new FormData();
19+
formData.append('adresseFront', offre.adresseOffre);
20+
formData.append('villeFront', offre.ville);
21+
formData.append('prixFront', offre.prixOffre.toString());
22+
formData.append('surfaceFront', offre.surfaceOffre.toString());
23+
formData.append('descriptionFront', offre.description);
24+
formData.append('imageFront', image);
25+
formData.append('disponibiliteFront', offre.disponibiliteOffre.toString());
26+
formData.append('orientationFront', offre.orientationOffre);
27+
formData.append('etatFront', offre.etatOffre.toString());
28+
formData.append('typeFront', offre.typeOffre);
29+
const requestHttp = new HttpRequest('POST', this.BASE_URL, formData, {
30+
reportProgress: true, responseType: 'json'
31+
});
32+
return this.httpClient.request(requestHttp).pipe(
33+
catchError((error) => {
34+
console.error(error);
35+
return throwError(error);
36+
})
37+
);
38+
}
1939

20-
public delete(id:number) : Observable<any>
21-
{ return this.httpClient.delete(this.BASE_URL +"/" + id); }
40+
public delete(id: number): Observable<any> { return this.httpClient.delete(this.BASE_URL + "/" + id); }
2241

23-
public findOne(id:number) : Observable<any>
24-
{ return this.httpClient.get(this.BASE_URL + "/" + id); }
42+
public findOne(id: number): Observable<any> { return this.httpClient.get(this.BASE_URL + "/" + id); }
2543

26-
public update(offre:any):Observable<any>{
44+
public update(offre: any): Observable<any> {
2745
var offreJSON = JSON.parse(offre);
2846
return this.httpClient.put(this.BASE_URL + "/" + offreJSON.idoffre, offreJSON);
2947
}

src/app/services/utilisateur.service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ export class UtilisateurService {
5454
}
5555
// put --> verbe http : PUT --> URL : BASE_URL/id et dans le body l'objet utilisateur
5656
public update(utilisateur: any): Observable<any> {
57-
var utilisateurJSON = JSON.parse(utilisateur); // conversion de string vers format JSON
58-
return this.httpClient.put(this.BASE_URL + "/" + utilisateurJSON.idUtilisateur, utilisateurJSON);
57+
//var utilisateurJSON = JSON.parse(utilisateur); // conversion de string vers format JSON
58+
// return this.httpClient.put(this.BASE_URL + "/" + utilisateurJSON.idUtilisateur, utilisateurJSON);
59+
return this.httpClient.put(this.BASE_URL + "/" + utilisateur.idUtilisateur, utilisateur);
5960
}
6061

6162
}

src/app/table-list/table-list.component.html

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,39 +79,44 @@ <h4 class="card-title"></h4>
7979
<div class="col">
8080
<div class="card shadow">
8181
<div class="card-header border-0">
82-
<h3 class="mb-0">List des offres</h3>
82+
<h3 class="mb-0">Liste des offres</h3>
8383
</div>
8484
<div class="table-responsive">
85-
<table class="table align-items-center table-flush">
86-
<thead class="thead-light">
85+
<table class="table table-striped align-items-center table-flush">
86+
<thead class="thead-dark">
8787
<tr>
88-
<th scope="col">imageOffre</th>
89-
<th scope="col">description</th>
90-
<th scope="col">ville</th>
91-
<th scope="col">adresse</th>
92-
<th scope="col">surfaceOffre</th>
93-
<th scope="col">orientationOffre</th>
94-
<th scope="col">etatOffre</th>
95-
<th scope="col">typeOffre</th>
96-
<th scope="col">prixOffre</th>
97-
<th scope="col">disponibiliteOffre</th>
98-
<!-- <th style="text-align: center;" scope="col">Action</th> -->
88+
<th class="text-center text-nowrap" scope="col">Image</th>
89+
<th class="text-center text-nowrap" scope="col">Description
90+
</th>
91+
<th class="text-center text-nowrap" scope="col">Ville</th>
92+
<th class="text-center text-nowrap" scope="col">Adresse</th>
93+
<th class="text-center text-nowrap" scope="col">Surface</th>
94+
<th class="text-center text-nowrap" scope="col">Orientation
95+
</th>
96+
<th class="text-center text-nowrap" scope="col">Etat</th>
97+
<th class="text-center text-nowrap" scope="col">Type</th>
98+
<th class="text-center text-nowrap" scope="col">Prix</th>
99+
<th class="text-center text-nowrap" scope="col">
100+
Disponibilité</th>
99101
</tr>
100102
</thead>
101103
<tbody>
102104
<tr *ngFor="let o of offres">
103-
<td>{{o.imageOffre}}</td>
104-
<td>{{o.description}}</td>
105-
<td>{{o.ville}}</td>
106-
<td>{{o.adresse}}</td>
107-
<td>{{o.surfaceOffre}}</td>
108-
<td>{{o.orientationOffre}}</td>
109-
<td>{{o.etatOffre}}</td>
110-
<td>{{o.typeOffre}}</td>
111-
<td>{{o.prixOffre}}</td>
112-
<td>{{o.disponibiliteOffre}}</td>
105+
<td class="text-center"><img src="data:image/jpeg;base64,{{o.imageOffre}}"
106+
height="120" width="120" /></td>
107+
<td class="text-center">{{o.description}}</td>
108+
<td class="text-center">{{o.ville}}</td>
109+
<td class="text-center">{{o.adresse}}</td>
110+
<td class="text-center">{{o.surfaceOffre}}</td>
111+
<td class="text-center">{{o.orientationOffre}}</td>
112+
<td class="text-center">{{o.etatOffre}}</td>
113+
<td class="text-center">{{o.typeOffre}}</td>
114+
<td class="text-center">{{o.prixOffre}}</td>
115+
<td class="text-center">{{o.disponibiliteOffre}}</td>
113116
</tr>
114117
</tbody>
118+
119+
115120
</table>
116121
</div>
117122
</div>

src/app/typography/typography.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export class TypographyComponent implements OnInit {
1313
// Déclaration d'un tableau d'utilisateur
1414
// any : n'importe quel type de données
1515
// ! ==> le tableau n'est pas initialisé
16+
currentFileUpload?: File;
1617
offres!: any[];
1718
offre: Offre = new Offre();
1819
etatOffre: enumEtatOffre;
@@ -29,7 +30,7 @@ export class TypographyComponent implements OnInit {
2930
}
3031

3132
saveOffre() {
32-
this.offreService.save(this.offre).subscribe(
33+
this.offreService.save(this.currentFileUpload, this.offre).subscribe(
3334
() => {
3435
this.findAllOffre();
3536
this.offre = new Offre();
Lines changed: 54 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,58 @@
1-
<div class="main-content">
2-
<div class="container-fluid">
3-
<div class="row">
4-
<div class="card">
5-
<div class="card-header card-header-danger">
6-
<h4 class="card-title">Mon profil</h4>
7-
<p class="card-category">Vous pouvez modifier certaines de vos informations suite à des changements au cours
8-
de votre vie (changement de téléphone, d'adresse mail, etc.)</p>
9-
</div>
10-
<div class="card-chart">
11-
<p>Nom : {{user.nomUtilisateur}}
12-
<input #myTxt type="text" required minlength="1" [(ngModel)]="user.nomUtilisateur">
13-
<button type="submit" (click)="updateProfil(myTxt.value)">Modifier</button>
14-
</p>
15-
<p>Prénom : {{user.prenomUtilisateur}}</p>
16-
<p>Date de Naissance : {{user.nomUtilisateur}}</p>
17-
<p>Adresse E-mail : {{user.emailUtilisateur}}</p>
18-
<p>Numéro de telephone : {{user.numTelUtilisateur}}</p>
19-
1+
<!-- Formulaire d'ajout début-->
2+
<div class="container-fluid mt--7">
3+
<div class="col-xl-12 order-xl-1">
4+
<div class="card bg-secondary shadow">
5+
<div class="card-header bg-white border-0">
6+
<div class="row align-items-center">
7+
<div class="col-8">
8+
<h3 class="mb-0">Mon espace perso :</h3>
9+
</div>
2010
</div>
2111
</div>
12+
<div class="card-body">
13+
<form (ngSubmit)="updateUtilisateur()">
14+
<h6 class="text-muted mb-4">Informations de l'utilisateur</h6>
15+
<div class="form-group row">
16+
<label for="input-first-name" class="col-sm-3 col-form-label">Nom</label>
17+
<div class="col-sm-9">
18+
<input type="text" [(ngModel)]="user.nomUtilisateur" name="nomUtilisateur" id="input-first-name"
19+
class="form-control">
20+
</div>
21+
</div>
22+
<div class="form-group row">
23+
<label for="input-last-name" class="col-sm-3 col-form-label">Prénom</label>
24+
<div class="col-sm-9">
25+
<input type="text" [(ngModel)]="user.prenomUtilisateur" name="prenomUtilisateur" id="input-last-name"
26+
class="form-control">
27+
</div>
28+
</div>
29+
<div class="form-group row">
30+
<label for="input-last-name" class="col-sm-3 col-form-label">Date de naissance</label>
31+
<div class="col-sm-9">
32+
<input type="date" [(ngModel)]="user.dateNaissanceUtilisateur" name="date de naissance"
33+
id="input-last-name" class="form-control">
34+
</div>
35+
</div>
36+
<div class="form-group row">
37+
<label for="input-last-name" class="col-sm-3 col-form-label">Email</label>
38+
<div class="col-sm-9">
39+
<input type="email" [(ngModel)]="user.emailUtilisateur" name="email" id="input-last-name"
40+
class="form-control">
41+
</div>
42+
</div>
43+
<div class="form-group row">
44+
<label for="input-last-name" class="col-sm-3 col-form-label">Numero de telephone</label>
45+
<div class="col-sm-9">
46+
<input type="text" [(ngModel)]="user.numTelUtilisateur" name="numero de telephone" id="input-last-name"
47+
class="form-control">
48+
</div>
49+
</div>
50+
<div class="form-group text-center">
51+
<button class="btn btn-primary" type="submit">Modifier</button>
52+
</div>
53+
</form>
54+
</div>
2255
</div>
2356
</div>
24-
</div>
57+
</div>
58+
<!--Formulaire d'ajout fin-->
Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { HttpClient, HttpRequest } from '@angular/common/http';
22
import { Component, OnInit } from '@angular/core';
3+
import { FormBuilder, FormGroup } from '@angular/forms';
34
import { Router } from '@angular/router';
45
import { AppService } from 'app/app.service';
56
import { Utilisateur } from 'app/model/utilisateur';
@@ -16,14 +17,14 @@ export class UserProfileComponent implements OnInit {
1617

1718
private BASE_URL = "http://localhost:8080/utilisateurs";
1819
users!: any[];
19-
roles!: any[];
2020
utilisateur: Utilisateur = new Utilisateur();
2121

2222
// Step 3
2323
idUser: any;
24+
editForm: FormGroup;
2425
user: Utilisateur = new Utilisateur();
2526

26-
constructor(private appService: AppService, private utilisateurService: UtilisateurService, private roleService: RoleService, private httpClient: HttpClient, private router: Router) {
27+
constructor(private appService: AppService, private utilisateurService: UtilisateurService, private formBuilder: FormBuilder, private httpClient: HttpClient, private router: Router) {
2728

2829
}
2930
// Step 5
@@ -35,27 +36,27 @@ export class UserProfileComponent implements OnInit {
3536
this.idUser = this.appService.idUser;
3637
console.log("user profile " + this.idUser);
3738
this.findOne(this.idUser);
38-
this.findAllUtilisateurs();
39-
this.findAllRole();
39+
// this.findAllUtilisateurs();
40+
//this.updateUtilisateur();
4041
}
4142

4243
findAllUtilisateurs() {
4344
this.utilisateurService.findAll().subscribe(data => { this.users = data; });
4445
}
4546

46-
findAllRole() {
47-
this.roleService.findAll().subscribe(data => { this.roles = data; });
48-
}
49-
50-
deleteUtilisateur(id: number) {
51-
this.utilisateurService.delete(id).subscribe(
47+
updateUtilisateur() {
48+
console.log("update utilisateur", this.user);
49+
this.utilisateurService.save(this.user).subscribe(
5250
() => {
53-
this.findAllUtilisateurs();
51+
console.log("Update ok");
5452
}
5553
)
5654
}
57-
58-
updateProfil(value) {
59-
console.log(value);
60-
}
61-
}
55+
// this.utilisateurService.update(this.utilisateur).subscribe(
56+
// () => {
57+
// this.findAllUtilisateurs(); // MAJ la lise des utilisateurs
58+
// this.utilisateur = new Utilisateur(); // Vider le formulaire
59+
// }
60+
// )
61+
// }
62+
}

0 commit comments

Comments
 (0)