diff --git a/assets/app.js b/assets/app.js index d182514..d93b098 100644 --- a/assets/app.js +++ b/assets/app.js @@ -23,51 +23,6 @@ document.addEventListener('DOMContentLoaded', () => { updateMapHeightForLargeScreens() - function check_validity(e) { - let errors = []; - document.querySelectorAll('.is-invalid').forEach(input => { - input.classList.remove('is-invalid'); - }); - - const nameInput = document.querySelector('input[name="commerce_tag_value__name"]'); - if (!nameInput.value.trim()) { - errors.push("Le nom de l'établissement est obligatoire"); - nameInput.classList.add('is-invalid'); - } - - const emailInput = document.querySelector('input[name="commerce_tag_value__contact:email"]'); - if (emailInput && emailInput.value) { - const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; - if (!emailRegex.test(emailInput.value)) { - errors.push("L'adresse email n'est pas valide"); - emailInput.classList.add('is-invalid'); - } - } - - const phoneInput = document.querySelector('input[name="commerce_tag_value__contact:phone"]'); - if (phoneInput && phoneInput.value) { - const phoneRegex = /^(\+33|0)[1-9](\d{2}){4}$/; - if (!phoneRegex.test(phoneInput.value.replace(/\s/g, ''))) { - errors.push("Le numéro de téléphone n'est pas valide"); - phoneInput.classList.add('is-invalid'); - } - } - - if (errors.length > 0) { - e.preventDefault(); - document.querySelector('#validation_messages').innerHTML = errors.join('
'); - document.querySelector('#validation_messages').classList.add('is-invalid'); - } - } - // Générer une couleur pastel aléatoire - const genererCouleurPastel = () => { - // Utiliser des valeurs plus claires (180-255) pour obtenir des tons pastel - const r = Math.floor(Math.random() * 75 + 180); - const g = Math.floor(Math.random() * 75 + 180); - const b = Math.floor(Math.random() * 75 + 180); - return `rgb(${r}, ${g}, ${b})`; - }; - const randombg = genererCouleurPastel(); // Appliquer la couleur au body document.body.style.backgroundColor = randombg; @@ -237,26 +192,6 @@ document.addEventListener('DOMContentLoaded', () => { table.classList.add('js-sort-table'); }); - async function searchInseeCode(query) { - try { - - // Afficher l'indicateur de chargement - document.querySelector('#loading_search_insee').classList.remove('d-none'); - - const response = await fetch(`https://geo.api.gouv.fr/communes?nom=${query}&fields=nom,code,codesPostaux&limit=10`); - const data = await response.json(); - document.querySelector('#loading_search_insee').classList.add('d-none'); - - return data.map(commune => ({ - label: `${commune.nom} (${commune.codesPostaux.join(', ')}, code insee ${commune.code})`, - insee: commune.code, - postcodes: commune.codesPostaux - })); - } catch (error) { - console.error('Erreur lors de la recherche du code INSEE:', error); - return []; - } - } // Modifier la fonction de recherche existante const searchInput = document.getElementById('app_admin_labourer'); diff --git a/assets/utils.js b/assets/utils.js index 6dc4b62..cf5875f 100644 --- a/assets/utils.js +++ b/assets/utils.js @@ -15,6 +15,52 @@ function colorHeadingTable() { } +function check_validity(e) { + let errors = []; + document.querySelectorAll('.is-invalid').forEach(input => { + input.classList.remove('is-invalid'); + }); + + const nameInput = document.querySelector('input[name="commerce_tag_value__name"]'); + if (!nameInput.value.trim()) { + errors.push("Le nom de l'établissement est obligatoire"); + nameInput.classList.add('is-invalid'); + } + + const emailInput = document.querySelector('input[name="commerce_tag_value__contact:email"]'); + if (emailInput && emailInput.value) { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + if (!emailRegex.test(emailInput.value)) { + errors.push("L'adresse email n'est pas valide"); + emailInput.classList.add('is-invalid'); + } + } + + const phoneInput = document.querySelector('input[name="commerce_tag_value__contact:phone"]'); + if (phoneInput && phoneInput.value) { + const phoneRegex = /^(\+33|0)[1-9](\d{2}){4}$/; + if (!phoneRegex.test(phoneInput.value.replace(/\s/g, ''))) { + errors.push("Le numéro de téléphone n'est pas valide"); + phoneInput.classList.add('is-invalid'); + } + } + + if (errors.length > 0) { + e.preventDefault(); + document.querySelector('#validation_messages').innerHTML = errors.join('
'); + document.querySelector('#validation_messages').classList.add('is-invalid'); + } +} +// Générer une couleur pastel aléatoire +const genererCouleurPastel = () => { + // Utiliser des valeurs plus claires (180-255) pour obtenir des tons pastel + const r = Math.floor(Math.random() * 75 + 180); + const g = Math.floor(Math.random() * 75 + 180); + const b = Math.floor(Math.random() * 75 + 180); + return `rgb(${r}, ${g}, ${b})`; +}; + + function updateMapHeightForLargeScreens() { const mapFound = document.querySelector('#map'); @@ -23,4 +69,25 @@ function updateMapHeightForLargeScreens() { } else { console.log('window.innerHeight', window.innerHeight); } +} + +async function searchInseeCode(query) { + try { + + // Afficher l'indicateur de chargement + document.querySelector('#loading_search_insee').classList.remove('d-none'); + + const response = await fetch(`https://geo.api.gouv.fr/communes?nom=${query}&fields=nom,code,codesPostaux&limit=10`); + const data = await response.json(); + document.querySelector('#loading_search_insee').classList.add('d-none'); + + return data.map(commune => ({ + label: `${commune.nom} (${commune.codesPostaux.join(', ')}, code insee ${commune.code})`, + insee: commune.code, + postcodes: commune.codesPostaux + })); + } catch (error) { + console.error('Erreur lors de la recherche du code INSEE:', error); + return []; + } } \ No newline at end of file diff --git a/templates/public/dashboard.html.twig b/templates/public/dashboard.html.twig index 48fcc8a..a317a01 100644 --- a/templates/public/dashboard.html.twig +++ b/templates/public/dashboard.html.twig @@ -121,13 +121,7 @@ window.location.href = '/admin/labourer/' + document.getElementById('app_admin_labourer').value; } - // Créer une carte des villes avec les codes postaux - let map = new maplibregl.Map({ - container: 'mapDashboard', - style: 'https://api.maptiler.com/maps/basic-v2/style.json?key={{ maptiler_token }}', - center: [2.3488, 48.8534], // Paris - zoom: 10 - }); + // Fonction pour obtenir la couleur selon le pourcentage function getColorFromPercent(percent) { @@ -187,7 +181,6 @@ out skel qt;`;

Statistiques : {{ stats|length }} codes postaux

- {#
#}