refacto fonctions

This commit is contained in:
Tykayn 2025-06-06 23:28:35 +02:00 committed by tykayn
parent 1b0d2d425d
commit 9b09b0d59d
8 changed files with 191 additions and 163 deletions

View file

@ -10,19 +10,14 @@ import './styles/app.css';
import './utils.js';
import './opening_hours.js';
import './josm.js';
import './edit.js';
// Attendre le chargement du DOM
document.addEventListener('DOMContentLoaded', () => {
console.log('DOMContentLoaded');
updateMapHeightForLargeScreens()
const randombg = genererCouleurPastel();
// Appliquer la couleur au body
document.body.style.backgroundColor = randombg;
@ -56,61 +51,6 @@ document.addEventListener('DOMContentLoaded', () => {
openingHoursFormManager.init();
// lister les changesets de l'utilisateur osm-commerces
async function listChangesets() {
// const changesets = await fetch('https://api.openstreetmap.org/api/0.6/changesets?display_name=osm-commerce-fr');
// Ajouter le header Accept pour demander du JSON
const options = {
headers: {
'Accept': 'application/json'
}
};
const changesets = await fetch('https://api.openstreetmap.org/api/0.6/changesets?display_name=osm-commerce-fr', options);
const data = await changesets.json();
console.log(data.changesets.length);
// Grouper les changesets par période
const now = new Date();
const last24h = new Date(now - 24 * 60 * 60 * 1000);
const last7days = new Date(now - 7 * 24 * 60 * 60 * 1000);
const last30days = new Date(now - 30 * 24 * 60 * 60 * 1000);
const stats = {
last24h: 0,
last7days: 0,
last30days: 0
};
data.changesets.forEach(changeset => {
const changesetDate = new Date(changeset.closed_at);
if (changesetDate >= last24h) {
stats.last24h++;
}
if (changesetDate >= last7days) {
stats.last7days++;
}
if (changesetDate >= last30days) {
stats.last30days++;
}
});
// Afficher les statistiques
const historyDiv = document.getElementById('userChangesHistory');
if (historyDiv) {
historyDiv.innerHTML = `
<div id="changesets_history">
<p>Changesets créés :</p>
<div class="row">
<div class="col-6">Dernières 24h :</div> <div class="col-6 text-right">${stats.last24h}</div>
<div class="col-6">7 derniers jours :</div> <div class="col-6 text-right">${stats.last7days}</div>
<div class="col-6">30 derniers jours :</div> <div class="col-6 text-right">${stats.last30days}</div>
</div>
</div>
`;
}
}
// Vérifier si l'élément avec l'ID 'userChangesHistory' existe avant d'appeler la fonction
if (document.getElementById('userChangesHistory')) {
listChangesets();
@ -118,32 +58,6 @@ document.addEventListener('DOMContentLoaded', () => {
console.log('userChangesHistory non trouvé');
}
/**
* mettre à jour la barre de progression
* pour le formulaire de modification
*/
function updateCompletionProgress() {
const inputs = document.querySelectorAll('input[type="text"]');
let filledInputs = 0;
let totalInputs = inputs.length;
inputs.forEach(input => {
if (input.value.trim() !== '') {
filledInputs++;
}
});
const completionPercentage = (filledInputs / totalInputs) * 100;
const progressBar = document.querySelector('#completion_progress .progress-bar');
if (progressBar) {
progressBar.style.width = completionPercentage + '%';
progressBar.setAttribute('aria-valuenow', completionPercentage);
document.querySelector('#completion_display').innerHTML = `Votre commerce est complété à ${Math.round(completionPercentage)}%`;
}
}
document.querySelectorAll('input[type="text"]').forEach(input => {
input.addEventListener('blur', updateCompletionProgress);
});
@ -165,24 +79,6 @@ document.addEventListener('DOMContentLoaded', () => {
function parseCuisine() {
const cuisineInput = document.querySelector('input[name="commerce_tag_value__cuisine"]');
// Récupérer tous les checkboxes de type de cuisine
const cuisineCheckboxes = document.querySelectorAll('input[name="cuisine_type"]');
// Ajouter un écouteur d'événement sur chaque checkbox
cuisineCheckboxes.forEach(checkbox => {
checkbox.addEventListener('change', () => {
// Récupérer toutes les checkboxes cochées
const checkedCuisines = Array.from(document.querySelectorAll('input[name="cuisine_type"]:checked'))
.map(input => input.value);
// Mettre à jour l'input avec les valeurs séparées par des points-virgules
cuisineInput.value = checkedCuisines.join(';');
});
});
}
parseCuisine();