Skip to content

Commit a9868ba

Browse files
committed
liste des offres et espace perso fonctionnel
1 parent b61cddf commit a9868ba

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
@@ -15,39 +15,44 @@
1515
<div class="col">
1616
<div class="card shadow">
1717
<div class="card-header border-0">
18-
<h3 class="mb-0">List des offres</h3>
18+
<h3 class="mb-0">Liste des offres</h3>
1919
</div>
2020
<div class="table-responsive">
21-
<table class="table align-items-center table-flush">
22-
<thead class="thead-light">
21+
<table class="table table-striped align-items-center table-flush">
22+
<thead class="thead-dark">
2323
<tr>
24-
<th scope="col">imageOffre</th>
25-
<th scope="col">description</th>
26-
<th scope="col">ville</th>
27-
<th scope="col">adresse</th>
28-
<th scope="col">surfaceOffre</th>
29-
<th scope="col">orientationOffre</th>
30-
<th scope="col">etatOffre</th>
31-
<th scope="col">typeOffre</th>
32-
<th scope="col">prixOffre</th>
33-
<th scope="col">disponibiliteOffre</th>
34-
<!-- <th style="text-align: center;" scope="col">Action</th> -->
24+
<th class="text-center text-nowrap" scope="col">Image</th>
25+
<th class="text-center text-nowrap" scope="col">Description
26+
</th>
27+
<th class="text-center text-nowrap" scope="col">Ville</th>
28+
<th class="text-center text-nowrap" scope="col">Adresse</th>
29+
<th class="text-center text-nowrap" scope="col">Surface</th>
30+
<th class="text-center text-nowrap" scope="col">Orientation
31+
</th>
32+
<th class="text-center text-nowrap" scope="col">Etat</th>
33+
<th class="text-center text-nowrap" scope="col">Type</th>
34+
<th class="text-center text-nowrap" scope="col">Prix</th>
35+
<th class="text-center text-nowrap" scope="col">
36+
Disponibilité</th>
3537
</tr>
3638
</thead>
3739
<tbody>
3840
<tr *ngFor="let o of offres">
39-
<td>{{o.imageOffre}}</td>
40-
<td>{{o.description}}</td>
41-
<td>{{o.ville}}</td>
42-
<td>{{o.adresse}}</td>
43-
<td>{{o.surfaceOffre}}</td>
44-
<td>{{o.orientationOffre}}</td>
45-
<td>{{o.etatOffre}}</td>
46-
<td>{{o.typeOffre}}</td>
47-
<td>{{o.prixOffre}}</td>
48-
<td>{{o.disponibiliteOffre}}</td>
41+
<td class="text-center"><img src="data:image/jpeg;base64,{{o.imageOffre}}"
42+
height="120" width="120" /></td>
43+
<td class="text-center">{{o.description}}</td>
44+
<td class="text-center">{{o.ville}}</td>
45+
<td class="text-center">{{o.adresse}}</td>
46+
<td class="text-center">{{o.surfaceOffre}}</td>
47+
<td class="text-center">{{o.orientationOffre}}</td>
48+
<td class="text-center">{{o.etatOffre}}</td>
49+
<td class="text-center">{{o.typeOffre}}</td>
50+
<td class="text-center">{{o.prixOffre}}</td>
51+
<td class="text-center">{{o.disponibiliteOffre}}</td>
4952
</tr>
5053
</tbody>
54+
55+
5156
</table>
5257
</div>
5358
</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)