ajout permanences
This commit is contained in:
parent
3e2d5743ff
commit
62fa707291
@ -187,6 +187,18 @@ function setupPreviewListeners() {
|
|||||||
heuresInputs.forEach(input => {
|
heuresInputs.forEach(input => {
|
||||||
input.addEventListener('change', updatePreview);
|
input.addEventListener('change', updatePreview);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Écouter les changements de durée de permanence (1h ou 15min)
|
||||||
|
const dureeInputs = document.querySelectorAll('input[name="duree_permanence"]');
|
||||||
|
dureeInputs.forEach(input => {
|
||||||
|
input.addEventListener('change', updatePreview);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Écouter les changements du nombre de tranches (si 15min)
|
||||||
|
const nbTranchesSelect = document.getElementById('nb-tranches');
|
||||||
|
if (nbTranchesSelect) {
|
||||||
|
nbTranchesSelect.addEventListener('change', updatePreview);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -200,6 +212,8 @@ function updatePreview() {
|
|||||||
.map(input => input.value)
|
.map(input => input.value)
|
||||||
.sort(); // Trier les heures pour un affichage cohérent
|
.sort(); // Trier les heures pour un affichage cohérent
|
||||||
const moisDebut = document.getElementById('mois-debut')?.value;
|
const moisDebut = document.getElementById('mois-debut')?.value;
|
||||||
|
const dureePermanence = document.querySelector('input[name="duree_permanence"]:checked')?.value || '1h';
|
||||||
|
const nbTranches = dureePermanence === '15min' ? parseInt(document.getElementById('nb-tranches')?.value || '1') : 1;
|
||||||
|
|
||||||
if (heuresChecked.length === 0) {
|
if (heuresChecked.length === 0) {
|
||||||
clearPreview();
|
clearPreview();
|
||||||
@ -217,8 +231,29 @@ function updatePreview() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Calculer les tranches horaires à partir des heures sélectionnées
|
// Calculer les tranches horaires à partir des heures sélectionnées
|
||||||
// Chaque heure sélectionnée = 1 tranche d'1 heure
|
let tranches = [];
|
||||||
const tranches = heuresChecked.map(heureDebut => {
|
|
||||||
|
if (dureePermanence === '15min') {
|
||||||
|
// Mode 15 minutes : créer des tranches de 15 minutes
|
||||||
|
heuresChecked.forEach(heureDebut => {
|
||||||
|
const [h, m] = heureDebut.split(':').map(Number);
|
||||||
|
|
||||||
|
for (let i = 0; i < nbTranches; i++) {
|
||||||
|
const minutesDebut = m + (i * 15);
|
||||||
|
const minutesFin = m + ((i + 1) * 15);
|
||||||
|
|
||||||
|
const trancheDebut = `${String(h).padStart(2, '0')}:${String(minutesDebut).padStart(2, '0')}`;
|
||||||
|
const trancheFin = `${String(h).padStart(2, '0')}:${String(minutesFin).padStart(2, '0')}`;
|
||||||
|
|
||||||
|
tranches.push({
|
||||||
|
debut: trancheDebut,
|
||||||
|
fin: trancheFin
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Mode 1 heure : chaque heure sélectionnée = 1 tranche d'1 heure
|
||||||
|
tranches = heuresChecked.map(heureDebut => {
|
||||||
const [h, m] = heureDebut.split(':').map(Number);
|
const [h, m] = heureDebut.split(':').map(Number);
|
||||||
const heureFin = `${String(h + 1).padStart(2, '0')}:${String(m).padStart(2, '0')}`;
|
const heureFin = `${String(h + 1).padStart(2, '0')}:${String(m).padStart(2, '0')}`;
|
||||||
return {
|
return {
|
||||||
@ -226,6 +261,7 @@ function updatePreview() {
|
|||||||
fin: heureFin
|
fin: heureFin
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Calculer les dates à partir du mois de début sélectionné
|
// Calculer les dates à partir du mois de début sélectionné
|
||||||
const [year, month] = moisDebut.split('-').map(Number);
|
const [year, month] = moisDebut.split('-').map(Number);
|
||||||
|
|||||||
@ -281,23 +281,34 @@ if (!is_wp_error($langues_terms) && !empty($langues_terms)) {
|
|||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<?php if (!empty($langues)): ?>
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="langues-permanences" class="form-label fw-bold">Langues disponibles (optionnel) :</label>
|
<label for="langues-permanences" class="form-label fw-bold">Langues disponibles (optionnel) :</label>
|
||||||
<select class="form-select form-select-lg" id="langues-permanences" name="langues[]" multiple>
|
<select class="form-select form-select-lg" id="langues-permanences" name="langues[]" multiple>
|
||||||
<?php if (!empty($langues)): ?>
|
|
||||||
<?php foreach ($langues as $langue): ?>
|
<?php foreach ($langues as $langue): ?>
|
||||||
<option value="<?php echo esc_attr($langue['id']); ?>">
|
<option value="<?php echo esc_attr($langue['id']); ?>">
|
||||||
<?php echo esc_html($langue['nom']); ?>
|
<?php echo esc_html($langue['nom']); ?>
|
||||||
</option>
|
</option>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
<?php else: ?>
|
|
||||||
<option value="">Aucune langue disponible</option>
|
|
||||||
<?php endif; ?>
|
|
||||||
</select>
|
</select>
|
||||||
<small class="form-text text-muted">
|
<small class="form-text text-muted">
|
||||||
Sélectionnez une ou plusieurs langues pour ces permanences.
|
Sélectionnez une ou plusieurs langues pour ces permanences. Maintenez Ctrl (ou Cmd sur Mac) pour sélectionner plusieurs langues.
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
<i class="fas fa-exclamation-triangle me-2"></i>
|
||||||
|
<strong>Aucune langue disponible</strong>
|
||||||
|
<p class="mb-2 mt-2">Aucune langue n'a été créée dans la taxonomie "Langues". Les permanences seront créées sans langue associée.</p>
|
||||||
|
<p class="mb-0">
|
||||||
|
Pour ajouter des langues, rendez-vous dans
|
||||||
|
<a href="<?php echo esc_url(admin_url('edit-tags.php?taxonomy=langue&post_type=traducteur')); ?>" class="alert-link" target="_blank">
|
||||||
|
Traducteurs > Langues
|
||||||
|
<i class="fas fa-external-link-alt ms-1"></i>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user