Compare commits

...

10 Commits

Author SHA1 Message Date
Sana EL HIRI adfd1db2ff correction jeremy 2022-03-22 14:54:07 +01:00
HarmandI d09b147af2
Merge pull request #8 from HarmandI/feature/supprimer
Feature/supprimer
2022-03-22 12:55:35 +01:00
HarmandI 4aced57191 der des der? 2022-03-22 12:54:31 +01:00
Vincent Ramiere a2ddf52c88 lien Page administrateur dans navbar 2022-03-22 12:52:32 +01:00
Vincent Ramiere 200221dc5c lien admin dans navbar 2022-03-22 12:49:35 +01:00
Sana 4f5e6cd180
Merge pull request #7 from HarmandI/css
css
2022-03-22 12:38:08 +01:00
Sana EL HIRI 33c431921d css 2022-03-22 12:36:25 +01:00
Vincent Ramiere bd4468a9d6 Merge branch 'main' of https://github.com/HarmandI/Admin-La-Belle-Plante
pull
2022-03-22 12:14:04 +01:00
Vincent Ramiere 983533e4e1 Merge branch 'main' into feature/supprimer 2022-03-22 12:11:34 +01:00
HarmandI a2cf4f55ed
Merge pull request #6 from HarmandI/feature/ajouter
Feature/ajouter
2022-03-22 12:09:42 +01:00
11 changed files with 167 additions and 140 deletions

189
db.json
View File

@ -1,107 +1,104 @@
{ {
"list_products": [ "list_products": [
{
"id": "801427",
"product_name": "Strelitzia Nicolai : D.21-H.75",
"product_price": "59,99",
"product_instock": "disponible",
"product_discount_code": "",
"product_color": "Blanc",
"product_unitprice_ati": "59.99",
"product_unitprice_tf": "54.5",
"product_discount_tf": "0.00",
"product_discount_ati": "0.00",
"product_qty": 0,
"product_rating": 3,
"product_breadcrumb_label": "plantes fleuries",
"product_url_page": "https://www.truffaut.com/strelitzia-nicolai-d-21-h-75-801427.html",
"product_url_picture": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0801000/801427_001.jpg",
"product_shipping_method": null,
"product_image_source": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0801000/801427_001.jpg",
"product_seller": "market place",
"product_web_only": "non"
},
{ {
"id": "910744", "id": "910744",
"product_name": "Spathiphyllum 'Sweet Lauretta' Pot déco foncé D24cm", "product_name": "bibi",
"product_price": "84,99", "product_price": "5",
"product_instock": "disponible", "product_qty": 5,
"product_rating": 5,
"product_breadcrumb_label": "plantes fleuries",
"product_instock": [
[
[
[
"disponible"
]
]
]
],
"product_url_picture": "https//picsum.photos/id/18/200/300",
"product_discount_code": "", "product_discount_code": "",
"product_color": "", "product_color": "",
"product_unitprice_ati": "84.99", "product_unitprice_ati": "",
"product_unitprice_tf": "77.3", "product_unitprice_tf": "",
"product_discount_tf": "0.00", "product_discount_tf": "",
"product_discount_ati": "0.00", "product_discount_ati": "",
"product_qty": 0, "product_url_page": "",
"product_rating": 3,
"product_breadcrumb_label": "plantes fleuries",
"product_url_page": "https://www.truffaut.com/spathiphyllum-sweet-lauretta-pot-deco-fonce-d24cm-910744.html",
"product_url_picture": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0910000/910744_001.jpg",
"product_shipping_method": null, "product_shipping_method": null,
"product_image_source": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0910000/910744_001.jpg", "product_image_source": "",
"product_seller": "market place", "product_seller": "market place",
"product_web_only": "non" "product_web_only": "non"
}, },
{ {
"id": "910743", "id": "910743",
"product_name": "Spathiphyllum 'Sweet Lauretta' Pot déco clair D24cm", "product_name": "Baba",
"product_price": "84,99", "product_price": "5",
"product_instock": "disponible", "product_qty": 5,
"product_rating": 5,
"product_breadcrumb_label": "plantes fleuries",
"product_instock": [
[
"disponible"
]
],
"product_url_picture": "https//picsum.photos/id/18/200/300",
"product_discount_code": "", "product_discount_code": "",
"product_color": "", "product_color": "",
"product_unitprice_ati": "84.99", "product_unitprice_ati": "",
"product_unitprice_tf": "77.3", "product_unitprice_tf": "",
"product_discount_tf": "0.00", "product_discount_tf": "",
"product_discount_ati": "0.00", "product_discount_ati": "",
"product_qty": 0, "product_url_page": "",
"product_rating": 3,
"product_breadcrumb_label": "plantes fleuries",
"product_url_page": "https://www.truffaut.com/spathiphyllum-sweet-lauretta-pot-deco-clair-d24cm-910743.html",
"product_url_picture": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0910000/910743_001.jpg",
"product_shipping_method": null, "product_shipping_method": null,
"product_image_source": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0910000/910743_001.jpg", "product_image_source": "",
"product_seller": "market place", "product_seller": "market place",
"product_web_only": "non" "product_web_only": "non"
}, },
{ {
"id": "63158", "id": "63158",
"product_name": "Spathiphyllum: d.14cm, pot grand modèle", "product_name": "boubou",
"product_price": "7,95", "product_price": "5",
"product_instock": "disponible", "product_qty": 5,
"product_rating": 5,
"product_breadcrumb_label": "cactus et plantes grasses",
"product_instock": [
"partiellement disponible"
],
"product_url_picture": "https//picsum.photos/id/18/200/300",
"product_discount_code": "", "product_discount_code": "",
"product_color": "Blanc", "product_color": "",
"product_unitprice_ati": "7.95", "product_unitprice_ati": "",
"product_unitprice_tf": "7.2", "product_unitprice_tf": "",
"product_discount_tf": "0.00", "product_discount_tf": "",
"product_discount_ati": "0.00", "product_discount_ati": "",
"product_qty": 1, "product_url_page": "",
"product_rating": 3,
"product_breadcrumb_label": "plantes fleuries",
"product_url_page": "https://www.truffaut.com/spathiphyllum-d-14cm-pot-grand-modele-63158.html",
"product_url_picture": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0063000/63158_005.jpg",
"product_shipping_method": null, "product_shipping_method": null,
"product_image_source": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0063000/63158_005.jpg", "product_image_source": "",
"product_seller": "Truffaut", "product_seller": "market place",
"product_web_only": "oui" "product_web_only": "non"
}, },
{ {
"id": "910674", "id": "910674",
"product_name": "Spathiphyllum 'Sweet Lauretta' pot D24cm", "product_name": "Spathiphyllum 'Sweet Lauretta' pot D24cm",
"product_price": "69,99", "product_price": "69,99",
"product_instock": "disponible", "product_qty": 3,
"product_rating": 4,
"product_breadcrumb_label": "plantes fleuries",
"product_instock": [
[
"disponible"
]
],
"product_url_picture": "https//picsum.photos/id/18/200/300",
"product_discount_code": "", "product_discount_code": "",
"product_color": "", "product_color": "",
"product_unitprice_ati": "69.99", "product_unitprice_ati": "",
"product_unitprice_tf": "63.6", "product_unitprice_tf": "",
"product_discount_tf": "0.00", "product_discount_tf": "",
"product_discount_ati": "0.00", "product_discount_ati": "",
"product_qty": 0, "product_url_page": "",
"product_rating": 3,
"product_breadcrumb_label": "plantes fleuries",
"product_url_page": "https://www.truffaut.com/spathiphyllum-sweet-lauretta-pot-d24cm-910674.html",
"product_url_picture": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0910000/910674_001.jpg",
"product_shipping_method": null, "product_shipping_method": null,
"product_image_source": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0910000/910674_001.jpg", "product_image_source": "",
"product_seller": "market place", "product_seller": "market place",
"product_web_only": "non" "product_web_only": "non"
}, },
@ -109,20 +106,22 @@
"id": "801429", "id": "801429",
"product_name": "Strelitzia Nicolai Cache-pot Anthracite: D.21-H.75", "product_name": "Strelitzia Nicolai Cache-pot Anthracite: D.21-H.75",
"product_price": "64,99", "product_price": "64,99",
"product_instock": "disponible", "product_qty": 5,
"product_discount_code": "", "product_rating": 4.5,
"product_color": "Blanc",
"product_unitprice_ati": "64.99",
"product_unitprice_tf": "59.1",
"product_discount_tf": "0.00",
"product_discount_ati": "0.00",
"product_qty": 0,
"product_rating": 3,
"product_breadcrumb_label": "plantes fleuries", "product_breadcrumb_label": "plantes fleuries",
"product_url_page": "https://www.truffaut.com/strelitzia-nicolai-cache-pot-gris-d-21-h-75-801429.html", "product_instock": [
"product_url_picture": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0801000/801429_001.jpg", "disponible"
],
"product_url_picture": "https//picsum.photos/id/18/200/300",
"product_discount_code": "",
"product_color": "",
"product_unitprice_ati": "",
"product_unitprice_tf": "",
"product_discount_tf": "",
"product_discount_ati": "",
"product_url_page": "",
"product_shipping_method": null, "product_shipping_method": null,
"product_image_source": "https://images.truffaut.com/media/catalog/product/cdn:///Articles/jpg/0801000/801429_001.jpg", "product_image_source": "",
"product_seller": "market place", "product_seller": "market place",
"product_web_only": "non" "product_web_only": "non"
}, },
@ -5986,13 +5985,16 @@
"product_web_only": "oui" "product_web_only": "oui"
}, },
{ {
"product_name": "Belle plante", "id": "JbdahUA",
"product_price": "35", "product_name": "bibi",
"product_qty": 1, "product_price": "8",
"product_rating": 3, "product_qty": 5,
"product_breadcrumb_label": "orchides", "product_rating": 5,
"product_breadcrumb_label": "plantes fleuries",
"product_instock": [ "product_instock": [
"non disponible" [
"non disponible"
]
], ],
"product_url_picture": "https//picsum.photos/id/18/200/300", "product_url_picture": "https//picsum.photos/id/18/200/300",
"product_discount_code": "", "product_discount_code": "",
@ -6005,8 +6007,7 @@
"product_shipping_method": null, "product_shipping_method": null,
"product_image_source": "", "product_image_source": "",
"product_seller": "market place", "product_seller": "market place",
"product_web_only": "non", "product_web_only": "non"
"id": "Fcq4EWk"
} }
], ],
"users": [ "users": [

View File

@ -21,6 +21,7 @@
<a class="nav-link disabled" *ngIf="likeCounter == 0"> Pas de plante likée</a> <a class="nav-link disabled" *ngIf="likeCounter == 0"> Pas de plante likée</a>
<a class="nav-link disabled" *ngIf="likeCounter == 1">Plante likée : {{ likeCounter }}</a> <a class="nav-link disabled" *ngIf="likeCounter == 1">Plante likée : {{ likeCounter }}</a>
<a class="nav-link disabled" *ngIf="likeCounter > 1">Plantes likées : {{ likeCounter }}</a> <a class="nav-link disabled" *ngIf="likeCounter > 1">Plantes likées : {{ likeCounter }}</a>
<a routerLink="admin" routerLinkActive="active-custom" class="nav-link">Page administrateur</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -13,8 +13,8 @@
margin-right: auto; margin-right: auto;
border: solid 1px; border: solid 1px;
border-radius: 10px; border-radius: 10px;
background-color: #64c982; background-color: #306340;
border-color: #64c982; border-color: #306340;
} }
.form-plant .checkbox { .form-plant .checkbox {
@ -70,6 +70,6 @@
.btn-outline-success { .btn-outline-success {
margin-top: 10px; margin-top: 10px;
background-color: #ffff; background-color: #ffff;
color: #64c982 !important; color: #306340 !important;
border-color: #64c982 !important; border-color: #306340 !important;
} }

View File

@ -1,5 +1,3 @@
import { Category } from "./category";
export class Plant { export class Plant {
constructor( constructor(
public name: string='', public name: string='',
@ -9,6 +7,6 @@ export class Plant {
public category:string[]=['plantes fleuries','orchides','cactus et plantes grasses','bonsas','plantes vertes','palmier dintrieur'], public category:string[]=['plantes fleuries','orchides','cactus et plantes grasses','bonsas','plantes vertes','palmier dintrieur'],
public urlPicture: string = "https//picsum.photos/id/18/200/300", public urlPicture: string = "https//picsum.photos/id/18/200/300",
public rating: number = 0, public rating: number = 0,
public id?: string public id: string = ''
){} ){}
} }

View File

@ -1,4 +1,6 @@
h1{ h1{
display: flex;
justify-content: center;
color: rgba(0, 0, 0, 0.658); color: rgba(0, 0, 0, 0.658);
font-size: 28px; font-size: 28px;
margin-top: 20px; margin-top: 20px;

View File

@ -60,7 +60,8 @@ export class PageAjouterComponent implements OnInit {
}; };
this.adminService.addPlant(plante)?.subscribe((resp)=>{ this.adminService.addPlant(plante)?.subscribe((resp)=>{
this.router.navigate(['admin']);
}) })
this.router.navigate(['admin']);
} }
} }

View File

@ -1,4 +1,6 @@
h1{ h1{
display: flex;
justify-content: center;
color: rgba(0, 0, 0, 0.658); color: rgba(0, 0, 0, 0.658);
font-size: 28px; font-size: 28px;
margin-top: 20px; margin-top: 20px;

View File

@ -1,30 +1,35 @@
<table class="table" *ngIf="subCollection$ | async as collection"> <div id="container">
<thead class="thead-dark"> <div id="button">
<tr> <button class="w-100 btn btn-lg btn-outline-success" routerLink="../ajouter">Ajouter une plante </button>
<th scope="col">Id</th> </div>
<th scope="col">Nom</th> <table class="table" *ngIf="subCollection$ | async as collection">
<th scope="col">Prix</th> <thead class="thead-dark" style="background-color: #306340 ; color:#f3f7f4 ;">
<th scope="col">Quantité</th> <tr>
<th scope="col">En stock</th> <th scope="col">Id</th>
<th scope="col">Catégorie</th> <th scope="col">Nom</th>
<th scope="col">Note</th> <th scope="col">Prix</th>
<th scope="col">Modifier</th> <th scope="col">Quantité</th>
<th scope="col">Supprimer</th> <th scope="col">En stock</th>
<th scope="col">Catégorie</th>
<th scope="col">Note</th>
<th scope="col">Modifier</th>
<th scope="col">Supprimer</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let products of collection">
<td>{{products.id}}</td>
<td>{{products.name}}</td>
<td>{{products.price}}</td>
<td>{{products.quantity}}</td>
<td>{{products.inStock}}</td>
<td>{{products.category}}</td>
<td>{{products.rating}}</td>
<td><a class="bi-pencil-square" style="color: #5472b1;" routerLink="../modifier/{{products.id}}"></a></td>
<td class="bi-trash-fill" style="color: rgb(231, 73, 73); cursor: pointer;" (click)="onClickDelete(products.id)"></td>
</tr>
</tbody>
</table>
</div>
</tr>
</thead>
<tbody>
<tr *ngFor="let products of collection">
<th scope="row">{{products.id}}</th>
<td>{{products.name}}</td>
<td>{{products.price}}</td>
<td>{{products.quantity}}</td>
<td>{{products.inStock}}</td>
<td>{{products.category}}</td>
<td>{{products.rating}}</td>
<td><a class="bi-pencil-square" routerLink="../modifier/{{products.id}}"></a></td>
<td class="bi-trash-fill" style="color: red; cursor: pointer;" (click)="onClickDelete(products.id)"></td>
</tr>
</tbody>
</table>
<button routerLink="../ajouter">Ajouter une plante </button>

View File

@ -0,0 +1,19 @@
#container{
display: flex;
justify-content: center;
margin-top: 5rem;
}
table{
width: 75%;
margin-left: 2rem;
}
button{
background-color: #306340;
color: #f3f7f4 !important;
border-color: #306340 !important;
}
#button{
width: 10%;
}

View File

@ -28,8 +28,7 @@ export class PageTableauComponent implements OnInit {
// }) // })
} }
onClickDelete(id: any){ onClickDelete(id: string){
console.log(id);
this.adminService.onClickDelete(id).subscribe((resp) => { this.adminService.onClickDelete(id).subscribe((resp) => {
console.log("Suppression successful : ", resp); console.log("Suppression successful : ", resp);
}); });

View File

@ -31,7 +31,6 @@ export class AdminService {
public refreshCollection(): void { public refreshCollection(): void {
// On se sert de notre flux de donnée type observable froid // On se sert de notre flux de donnée type observable froid
this.collection$.subscribe((listPlant: Plant[]) => { this.collection$.subscribe((listPlant: Plant[]) => {
this.plantCollection = [...listPlant];
// Utiliser un observable chaud (subject) pour nexter nos données recues de notre observable froid // Utiliser un observable chaud (subject) pour nexter nos données recues de notre observable froid
this.subCollection$.next(listPlant); this.subCollection$.next(listPlant);
}) })
@ -40,7 +39,7 @@ export class AdminService {
addPlant(plant: Plant): Observable<any> | void { addPlant(plant: Plant): Observable<any> | void {
return this.httpClient.post(`${this.apiUrl}/list_products`, plant); return this.httpClient.post(`${this.apiUrl}/list_products`, plant);
} }
onClickDelete(id: number): Observable<any> { onClickDelete(id: string): Observable<any> {
return this.httpClient.delete<any>(`${this.apiUrl}/list_products/${id}`).pipe( return this.httpClient.delete<any>(`${this.apiUrl}/list_products/${id}`).pipe(
tap(() => this.refreshCollection()) tap(() => this.refreshCollection())
); );