refacto fonctions
This commit is contained in:
parent
1b0d2d425d
commit
9b09b0d59d
8 changed files with 191 additions and 163 deletions
108
assets/app.js
108
assets/app.js
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue