ajout permanences
This commit is contained in:
parent
3e2d5743ff
commit
62fa707291
@ -187,6 +187,18 @@ function setupPreviewListeners() {
|
||||
heuresInputs.forEach(input => {
|
||||
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)
|
||||
.sort(); // Trier les heures pour un affichage cohérent
|
||||
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) {
|
||||
clearPreview();
|
||||
@ -217,15 +231,37 @@ function updatePreview() {
|
||||
}
|
||||
|
||||
// Calculer les tranches horaires à partir des heures sélectionnées
|
||||
// Chaque heure sélectionnée = 1 tranche d'1 heure
|
||||
const tranches = heuresChecked.map(heureDebut => {
|
||||
const [h, m] = heureDebut.split(':').map(Number);
|
||||
const heureFin = `${String(h + 1).padStart(2, '0')}:${String(m).padStart(2, '0')}`;
|
||||
return {
|
||||
debut: heureDebut,
|
||||
fin: heureFin
|
||||
};
|
||||
});
|
||||
let tranches = [];
|
||||
|
||||
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 heureFin = `${String(h + 1).padStart(2, '0')}:${String(m).padStart(2, '0')}`;
|
||||
return {
|
||||
debut: heureDebut,
|
||||
fin: heureFin
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
// Calculer les dates à partir du mois de début sélectionné
|
||||
const [year, month] = moisDebut.split('-').map(Number);
|
||||
|
||||
@ -281,23 +281,34 @@ if (!is_wp_error($langues_terms) && !empty($langues_terms)) {
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="mb-3">
|
||||
<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>
|
||||
<?php if (!empty($langues)): ?>
|
||||
<?php if (!empty($langues)): ?>
|
||||
<div class="mb-3">
|
||||
<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>
|
||||
<?php foreach ($langues as $langue): ?>
|
||||
<option value="<?php echo esc_attr($langue['id']); ?>">
|
||||
<?php echo esc_html($langue['nom']); ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
<?php else: ?>
|
||||
<option value="">Aucune langue disponible</option>
|
||||
<?php endif; ?>
|
||||
</select>
|
||||
<small class="form-text text-muted">
|
||||
Sélectionnez une ou plusieurs langues pour ces permanences.
|
||||
</small>
|
||||
</div>
|
||||
</select>
|
||||
<small class="form-text text-muted">
|
||||
Sélectionnez une ou plusieurs langues pour ces permanences. Maintenez Ctrl (ou Cmd sur Mac) pour sélectionner plusieurs langues.
|
||||
</small>
|
||||
</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>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user