Skip to content
Snippets Groups Projects
Commit f74a2553 authored by Mathis Verleene's avatar Mathis Verleene
Browse files

C

parent 92d761a1
No related branches found
No related tags found
No related merge requests found
......@@ -78,4 +78,4 @@ window.onpopstate = () => Router.navigate(document.location.pathname, false);
window.onpopstate();
fetch('./news.html')
.then(response => response.text())
.then(responseText => console.log(responseText));
.then(response => console.log(responseText));
import Page from './Page.js';
import Router from '../Router';
export default class AddPizzaPage extends Page {
render() {
......@@ -8,6 +9,19 @@ export default class AddPizzaPage extends Page {
Nom :
<input type="text" name="name">
</label>
<label>
Image :<br/>
<input type="text" name="image" placeholder="https://source.unsplash.com/xxxxxxx/600x600">
<small>Vous pouvez trouver des images de pizza sur <a href="https://unsplash.com/">https://unsplash.com/</a> puis utiliser l'URL <code>https://source.unsplash.com/xxxxxxx/600x600</code> où <code>xxxxxxx</code> est l'id de la photo choisie (celui dans la barre d'adresse)</small>
</label>
<label>
Prix petit format :
<input type="number" name="price_small" step="0.05">
</label>
<label>
Prix grand format :
<input type="number" name="price_large" step="0.05">
</label>
<button type="submit">Ajouter</button>
</form>`;
}
......@@ -24,12 +38,29 @@ export default class AddPizzaPage extends Page {
submit() {
// D.4. La validation de la saisie
const nameInput = this.element.querySelector('input[name="name"]'),
name = nameInput.value;
imgInput = this.element.querySelector('input[name="image"]'),
smallInput = this.element.querySelector('input[name="price_small"]'),
bigInput = this.element.querySelector('input[name="price_large"]'),
name = nameInput.value,
img = imgInput.value,
small = smallInput.value,
big = bigInput.value;
if (name === '') {
alert('Erreur : le champ "Nom" est obligatoire');
return;
}
const pizza = {
name: name,
image: img,
price_small: Number(small),
price_large: Number(big),
};
alert(`La pizza ${name} a été ajoutée !`);
nameInput.value = '';
fetch('http://localhost:8080/api/v1/pizzas', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(pizza),
}).then(() => Router.navigate('/'));
}
}
......@@ -17,8 +17,8 @@ export default class PizzaList extends Page {
super.mount(element);
fetch('http://localhost:8080/api/v1/pizzas')
.then(response => response.json())
.then(responseText => {
this.pizzas = responseText;
.then(responseArrayPizza => {
this.pizzas = responseArrayPizza;
element.innerHTML = this.render();
});
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment