Skip to content
Snippets Groups Projects
Commit 7550eda1 authored by Camille PILLOT's avatar Camille PILLOT
Browse files

MR

parent 46cad21a
No related branches found
No related tags found
1 merge request!5Feature/movies
# Les autres actions
Maintenant que tu sais faire des beaux formulaires, tu peux ajouter les différentes actions pour chaque film du tableau
Maintenant que tu sais faire de beaux formulaires, tu peux ajouter les différentes actions pour chaque film du tableau.
## Colonne et icons
Tu dois :
- ajouter une colonne au tableau.
- ajouter une colonne *Actions* au tableau.
- ajouter des boutons icons. Pour ça, tu peux utiliser [bootstrap icons](https://icons.getbootstrap.com/){:target="_blank"}
> Pour installer les icons bootstrap fais :
> - `npm i bootstrap-icons`
> - Ajouter `@import "bootstrap-icons/font/bootstrap-icons.css"; dans le fichier `styles.scss`
> - Utilise l'icon que tu veux avec la balise `<i></i>` Par exemple: `<i class="bi bi-trash-fill"></i>`
`
> Pour installer les icons Bootstrap :
> - Faire `npm i bootstrap-icons`
> - Ajouter `@import "bootstrap-icons/font/bootstrap-icons.css";` dans le fichier `styles.scss`
> - Utiliser l'icon que tu veux avec la balise `<i></i>`. Par exemple: `<i class="bi bi-trash-fill"></i>`
## Liens entre les boutons et les appels au back
Comme pour le formulaire de création, fais en sorte d'appeler le service qui contient tes appels au back au click sur le bouton
Comme pour le formulaire de création, fais en sorte d'appeler le service qui contient tes appels au back au click sur le bouton.
Par exemple pour la suppression d'un film :
HTML :
......@@ -24,36 +24,36 @@ HTML :
Service TS :
```
deleteMovie(id: number): Observable<any> {
return this.http.delete(`${this.url}/movies/${id}`).pipe(timeout(10000));
return this.httpClient.delete(`${this.url}/movies/${id}`);
}
```
TS du composant:
```
deleteFilm(id: number) {
this.filmService.deleteMovie(id).subscribe(succes => {
deleteFilm(id: number): void {
this.filmService.deleteMovie(id).subscribe(() =>
this.movies = this.movies.filter(film => film.id !== id)
});
);
}
```
> susbcribe() au delete te permet ici de mettre a jour ta liste de film `this.movies`, une fois que tu en as supprimé un.
> Attention tu ne peux donc plus utiliser le `| async` dans le html de ton composant. Tu dois subscribes pour utiliser ta liste au debut
> subscribe() au delete te permet ici de mettre à jour ta liste de film `this.movies`, une fois que tu en as supprimé un.
> Attention tu ne peux donc plus utiliser le `| async` dans le html de ton composant. Tu dois créer une variable puis subscribe pour récupérer ta liste au début.
> ```
> movies: Movie[];
> ngOnInit() {
> ngOnInit(): void {
> this.filmService.getMovies().subscribe(movies => this.movies = movies);
> }
> ```
***A toi de jouer pour la création du bouton update ! 👾***
> Tu dois à grandes étapes :
> Voici les grandes étapes à faire :
>
> - un bouton qui redirige vers un formulaire au click
> - un fomulaire qui appel le back pour pré-remplir les champs avec les données existantes
> - un formulaire qui appelle le back pour pré-remplir les champs avec les données existantes
> - le bouton `submit` du formulaire qui appelle le back pour updater le film
> <h1> 🙋‍♀️ Checkpoint time 🙋‍♂️
> Appelle nous pour qu'on valide cette partie !!️</h1>
> Le bouton `photo` pour ajouter une photo au film est totalement optionelle ! Mais si ça te tente, on sera ravie de t'aider !!
> Le bouton `photo` pour ajouter une photo au film est totalement optionel ! Mais si ça te tente, on sera ravie de t'aider !!
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment