106 lines
3.3 KiB
JavaScript
106 lines
3.3 KiB
JavaScript
console.log("la");
|
||
console.log("la");
|
||
|
||
let es = null;
|
||
async function validatePath() {
|
||
const pathInput = document.getElementById('path-input');
|
||
const statusIcon = document.getElementById('path-status-icon');
|
||
const validateBtn = document.getElementById('validate-btn');
|
||
const pathNameHidden = document.getElementById('pathName');
|
||
const path = pathInput.value.trim();
|
||
|
||
if (!path) {
|
||
statusIcon.innerHTML = '<i class="fas fa-times has-text-danger"></i>';
|
||
validateBtn.disabled = true;
|
||
return;
|
||
}
|
||
|
||
// On assigne directement la valeur dans le champ hidden pour HTMX
|
||
pathNameHidden.value = path;
|
||
|
||
statusIcon.innerHTML = '<i class="fas fa-circle-notch fa-spin"></i>'; // Loading spinner
|
||
|
||
try {
|
||
const response = await fetch('/validate-path', {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({ pathName: path }), // <- ici on envoie pathName et plus path
|
||
});
|
||
|
||
if (response.ok) {
|
||
statusIcon.innerHTML = '<i class="fas fa-check-square has-text-success"></i>';
|
||
validateBtn.disabled = false;
|
||
} else {
|
||
const result = await response.json();
|
||
statusIcon.innerHTML = '<i class="fas fa-exclamation-triangle has-text-danger"></i>';
|
||
validateBtn.disabled = true;
|
||
console.error('Error:', result.error);
|
||
}
|
||
} catch (error) {
|
||
statusIcon.innerHTML = '<i class="fas fa-exclamation-triangle has-text-danger"></i>';
|
||
validateBtn.disabled = true;
|
||
console.error('Request failed:', error);
|
||
}
|
||
}
|
||
|
||
|
||
function disableAllInputPath(id){
|
||
console.log(this)
|
||
var inputs = document.querySelectorAll('#path-'+id+' .fff');
|
||
var btn =document.getElementById('btn-path-annuler-'+id)
|
||
btn.style.display = "none";
|
||
var btn2 =document.getElementById('btn-path-edit-'+id)
|
||
btn2.style.display = "block";
|
||
var btn3 =document.getElementById('btn-path-valider-'+id)
|
||
btn3.style.display = "none";
|
||
|
||
inputs.forEach(function(input) {
|
||
input.disabled = true;
|
||
});
|
||
|
||
}
|
||
function enableAllInputPath(id){
|
||
console.log(this)
|
||
var inputs = document.querySelectorAll('#path-'+id+' .fff');
|
||
var btn =document.getElementById('btn-path-annuler-'+id)
|
||
btn.style.display = "block";
|
||
var btn2 =document.getElementById('btn-path-edit-'+id)
|
||
btn2.style.display = "none";
|
||
var btn3 =document.getElementById('btn-path-valider-'+id)
|
||
btn3.style.display = "block";
|
||
inputs.forEach(function(input) {
|
||
input.disabled = false;
|
||
});
|
||
}
|
||
|
||
function setInputHidden(target,value){
|
||
document.getElementById(target).value = value;
|
||
|
||
}
|
||
function hide(target){
|
||
var btn =document.getElementById(target)
|
||
btn.style.display = "none";
|
||
}
|
||
|
||
document.addEventListener("htmx:afterOnLoad", function (event) {
|
||
// console.log("Réponse du serveur :", event.detail.xhr.responseText);
|
||
});
|
||
|
||
// static/js/spinner.js
|
||
// Écoute tous les événements HTMX et affiche/masque le spinner global
|
||
document.body.addEventListener('htmx:send', () => {
|
||
const s = document.getElementById('loading-spinner');
|
||
if (s) s.style.display = 'block';
|
||
});
|
||
document.body.addEventListener('htmx:afterOnLoad', () => {
|
||
const s = document.getElementById('loading-spinner');
|
||
if (s) s.style.display = 'none';
|
||
});
|
||
// En cas d’erreur réseau
|
||
document.body.addEventListener('htmx:afterRequest', (evt) => {
|
||
if (evt.detail.xhr.status >= 400) {
|
||
const s = document.getElementById('loading-spinner');
|
||
if (s) s.style.display = 'none';
|
||
}
|
||
});
|