Files
LesRecettesDePapis/public/assets/js/form.js

173 lines
5.5 KiB
JavaScript
Raw Normal View History

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");
2026-04-09 18:14:09 +02:00
new_elem.setAttribute("value",data.id);
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");
2026-04-09 18:14:09 +02:00
new_elem.setAttribute("value",data.id);
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) {
2026-04-09 18:14:09 +02:00
if( IS_EDIT )
alert( "Votre recette a été ajouté, vous allez être redirigé." );
else
alert( "Votre recette a été ajouté, vous allez être redirigé." );
window.location.href = data.route !== null ? data.route : window.location.origin;
} 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);
})