Fix create form and add edit Recettes / delete Recettes
This commit is contained in:
169
public/assets/js/form.js
Normal file
169
public/assets/js/form.js
Normal file
@@ -0,0 +1,169 @@
|
||||
document.addEventListener("DOMContentLoaded", function(){
|
||||
|
||||
|
||||
let compl_form = document.getElementById("recette-form-complete");
|
||||
console.log(compl_form);
|
||||
|
||||
function formulaire_ingredient_update(event) {
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
console.log(event);
|
||||
|
||||
let form = document.getElementById("recette-form-ingr-add");
|
||||
|
||||
let cible = document.getElementById("recette-form-ingr");
|
||||
let nomIngredient = document.getElementById("recette-form-ingr-nom");
|
||||
let image = document.getElementById("recette-form-ingr-photo");
|
||||
if( nomIngredient.value === "" || image.value === "" ){
|
||||
alert( "Un champ requis est manquant." );
|
||||
return;
|
||||
}
|
||||
|
||||
let ingr = form.nom;
|
||||
|
||||
let form_data = new FormData(form);
|
||||
|
||||
fetch("/api/ingredients/create", {
|
||||
method : "POST",
|
||||
body: form_data
|
||||
}).then( reponse => {
|
||||
if (!reponse.ok) {
|
||||
let div_err = document.getElementById("recette-form-div-err-ingr");
|
||||
|
||||
div_err.style.display = "inherit";
|
||||
div_err.innerText = "Erreur de connection au serveur";
|
||||
|
||||
}
|
||||
else {
|
||||
reponse.json().then( data => {
|
||||
if (data.success) {
|
||||
let new_elem = document.createElement("option");
|
||||
|
||||
new_elem.setAttribute("value",document.getElementById('recette-form-ingr-nom').value);
|
||||
new_elem.innerText = document.getElementById('recette-form-ingr-nom').value;
|
||||
|
||||
cible.appendChild(new_elem);
|
||||
|
||||
document.getElementById('recette-form-ingr-nom').value = "";
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function formulaire_tag_update(event){
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
let form = document.getElementById("recette-form-tag-add");
|
||||
|
||||
let cible = document.getElementById("recette-form-tag");
|
||||
let nomTag = document.getElementById("recette-form-tag-nom");
|
||||
if( nomTag.value === "" ){
|
||||
alert( "Un champ requis est manquant." );
|
||||
return;
|
||||
}
|
||||
|
||||
let tag = form.tag;
|
||||
|
||||
let form_data = new FormData(form);
|
||||
|
||||
fetch("/api/tags/create", {
|
||||
method : "POST",
|
||||
body: form_data
|
||||
}).then( reponse => {
|
||||
if (!reponse.ok) {
|
||||
let div_err = document.getElementById("recette-form-div-err-tag");
|
||||
|
||||
div_err.style.display = "inherit";
|
||||
div_err.innerText = "Erreur de connection au serveur";
|
||||
|
||||
}
|
||||
else {
|
||||
reponse.json().then( data => {
|
||||
if (data.success) {
|
||||
let new_elem = document.createElement("option");
|
||||
|
||||
new_elem.setAttribute("value",nomTag.value);
|
||||
new_elem.innerText = nomTag.value;
|
||||
|
||||
cible.appendChild(new_elem);
|
||||
|
||||
nomTag.value = "";
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function formulaire_traitement(event){
|
||||
|
||||
event.preventDefault();
|
||||
|
||||
console.log( event );
|
||||
|
||||
let nom = document.getElementById('recette-form-nom');
|
||||
let temps = document.getElementsByName('recette-form-nom');
|
||||
let photo = document.getElementById('recette-form-photo');
|
||||
let ingredients = document.getElementById('recette-form-ingr');
|
||||
let tags = document.getElementById('recette-form-tag');
|
||||
let description = document.getElementById('recette-form-description');
|
||||
|
||||
if( nom.value === "" || temps.value == "" || ingredients.value === "" || tags.value === ""){
|
||||
console.log( "Another field" );
|
||||
alert( "Un champ requis est manquant." );
|
||||
return;
|
||||
}
|
||||
if( !IS_EDIT && photo.value === ""){
|
||||
console.log( "Photo field" );
|
||||
alert( "Un champ requis est manquant." );
|
||||
return;
|
||||
}
|
||||
|
||||
if( temps <= 0 ){
|
||||
alert( "Le temps doit être positif ou supérieur à 0." );
|
||||
return;
|
||||
}
|
||||
|
||||
let form_data = new FormData(compl_form);
|
||||
form_data.append( "ingredients", form_data.getAll("ingr").join(",") );
|
||||
form_data.append( "tags", form_data.getAll( "tag").join(",") );
|
||||
if( RECETTE_ID !== 0 )
|
||||
form_data.append( 'id', RECETTE_ID );
|
||||
|
||||
let endpoint = IS_EDIT ? "/api/recettes/edit" : "/api/recettes/create";
|
||||
|
||||
fetch( endpoint, {
|
||||
method : "POST",
|
||||
body: form_data
|
||||
}).then( reponse => {
|
||||
if (!reponse.ok) {
|
||||
alert( "Erreur survenie" );
|
||||
}
|
||||
else {
|
||||
reponse.json().then( data => {
|
||||
if (data.success) {
|
||||
alert( "Envoyé" );
|
||||
} else {
|
||||
alert( data.error || "" );
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
let ingr_form = document.getElementById("recette-form-ingr-add");
|
||||
|
||||
ingr_form.addEventListener('submit', formulaire_ingredient_update);
|
||||
|
||||
let tag_form = document.getElementById("recette-form-tag-add");
|
||||
|
||||
tag_form.addEventListener('submit', formulaire_tag_update);
|
||||
compl_form.addEventListener('submit', formulaire_traitement);
|
||||
|
||||
|
||||
})
|
||||
Reference in New Issue
Block a user