shelfy/templates/assets/js/index.js
2025-06-21 20:25:36 +02:00

106 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 derreur 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';
}
});