Skip to content

Commit 90d8760

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

File tree

12 files changed

+149
-86
lines changed

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();

0 commit comments

Comments
 (0)