583 lines
35 KiB
PHP
583 lines
35 KiB
PHP
<?php
|
|
// Template du modal d'événement principal pour l'agenda (FullCalendar)
|
|
// Contexte : "admin" (par défaut) ou "front_intervenant" (défini côté front).
|
|
/** @var string|null $crvi_agenda_context */
|
|
$crvi_agenda_context = isset($crvi_agenda_context) ? $crvi_agenda_context : 'admin';
|
|
$crvi_is_front_context = ($crvi_agenda_context !== 'admin');
|
|
?>
|
|
<div class="modal fade" id="eventModal" tabindex="-1" aria-labelledby="eventModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="eventModalLabel">
|
|
<i class="fas fa-calendar-alt me-2"></i>Événement
|
|
</h5>
|
|
<button type="button" class="btn-close" id="closeModalBtn" aria-label="Fermer"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<!-- Alerte de statut (absent/présent) -->
|
|
<div class="alert alert-warning mb-3" id="statutAlert" style="display: none;">
|
|
<i class="fas fa-info-circle me-2"></i>
|
|
<span id="statutAlertText"></span>
|
|
</div>
|
|
|
|
<!-- Bloc lecture seule (vue) avec grille Bootstrap en 2 colonnes -->
|
|
<div id="eventViewBlock">
|
|
<div class="event-grid">
|
|
<div class="row">
|
|
<!-- Colonne gauche -->
|
|
<div class="col-md-6">
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label date"><i class="fas fa-calendar me-2"></i>Date</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_date_rdv"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label time"><i class="fas fa-clock me-2"></i>Heure</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_heure_rdv"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label type"><i class="fas fa-users me-2"></i>Type</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_type"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label language"><i class="fas fa-language me-2"></i>Langue</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_langue"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label beneficiary"><i class="fas fa-user me-2"></i>Bénéficiaire</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_beneficiaire"></p>
|
|
</div>
|
|
</div>
|
|
<!-- Zone d'alerte d'absence -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="alert alert-warning mt-2 mb-3" id="absence_alert" style="font-size: 90%; display: none;">
|
|
<i class="fas fa-exclamation-triangle me-2"></i>
|
|
Le ou la bénéficiaire ne s'est pas présenté à ses derniers rdvs
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label intervenant"><i class="fas fa-user-md me-2"></i>Intervenant</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_intervenant"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label departement"><i class="fas fa-building me-2"></i>Département</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_departement"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label type_intervention"><i class="fas fa-tools me-2"></i>Type d'intervention</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_type_intervention"></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Colonne droite -->
|
|
<div class="col-md-6">
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label translator"><i class="fas fa-language me-2"></i>Traducteur</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_traducteur"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<p class="event-label location"><i class="fas fa-map-marker-alt me-2"></i>Local</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_local"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row groupe-only-field" style="display: none;">
|
|
<div class="col-6">
|
|
<p class="event-label participants"><i class="fas fa-users me-2"></i>Participants</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_nb_participants"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row groupe-only-field" style="display: none;">
|
|
<div class="col-6">
|
|
<p class="event-label men"><i class="fas fa-male me-2"></i>Hommes</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_nb_hommes"></p>
|
|
</div>
|
|
</div>
|
|
<div class="row groupe-only-field" style="display: none;">
|
|
<div class="col-6">
|
|
<p class="event-label women"><i class="fas fa-female me-2"></i>Femmes</p>
|
|
</div>
|
|
<div class="col-6">
|
|
<p class="event-value" id="view_nb_femmes"></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Commentaire sur toute la largeur -->
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="row">
|
|
<div class="col-3">
|
|
<p class="event-label comment"><i class="fas fa-comment me-2"></i>Commentaire</p>
|
|
</div>
|
|
<div class="col-9">
|
|
<p class="event-value" id="view_commentaire"></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Informations de clôture -->
|
|
<div class="row mt-3" id="cloture_info_section" style="display: none;">
|
|
<div class="col-12">
|
|
<div class="alert alert-info mb-0">
|
|
<div class="row">
|
|
<div class="col-12 mb-2">
|
|
<strong><i class="fas fa-check-circle me-2"></i>Événement clôturé</strong>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p class="mb-1"><strong>Statut :</strong> <span id="view_statut_cloture"></span></p>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<p class="mb-1"><strong>Clôturé le :</strong> <span id="view_cloture_rdv"></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<p class="mb-0"><strong>Clôturé par :</strong> <span id="view_cloture_par"></span></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Bloc édition/création (formulaire) -->
|
|
<form id="eventForm" style="display:none;">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="date_rdv" class="form-label">Date de rendez-vous *</label>
|
|
<input type="date" class="form-control" id="date_rdv" name="date_rdv" required>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="heure_rdv" class="form-label">Heure de début *</label>
|
|
<input type="time" class="form-control" id="heure_rdv" name="heure_rdv" min="09:00" max="18:00" step="900" required>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="date_fin" class="form-label">Date de fin</label>
|
|
<input type="date" class="form-control" id="date_fin" name="date_fin">
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="heure_fin" class="form-label">Heure de fin</label>
|
|
<input type="time" class="form-control" id="heure_fin" name="heure_fin" min="09:00" max="18:00" step="900">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="type" class="form-label">Type *</label>
|
|
<select class="form-select" id="type" name="type" required>
|
|
<option value="">Sélectionner...</option>
|
|
<option value="individuel">Individuel</option>
|
|
<option value="groupe">Groupe</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="langue" class="form-label">Langue *</label>
|
|
<select class="form-select" id="langue" name="langue" required>
|
|
<option value="">Sélectionner...</option>
|
|
<?php
|
|
if (isset($langues_beneficiaire) && is_array($langues_beneficiaire)) {
|
|
foreach ($langues_beneficiaire as $langue) {
|
|
$slug = isset($langue['slug']) ? esc_attr($langue['slug']) : '';
|
|
$data_slug_attr = !empty($slug) ? ' data-slug="' . $slug . '"' : '';
|
|
echo '<option value="' . esc_attr($langue['id']) . '"' . $data_slug_attr . '>' . esc_html($langue['nom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="id_departement" class="form-label">Département</label>
|
|
<select class="form-select" id="id_departement" name="id_departement">
|
|
<option value="">Sélectionner...</option>
|
|
<?php
|
|
if (isset($departements) && is_array($departements)) {
|
|
foreach ($departements as $departement) {
|
|
echo '<option value="' . esc_attr($departement['id']) . '">' . esc_html($departement['nom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="id_type_intervention" class="form-label">Type d'intervention</label>
|
|
<select class="form-select" id="id_type_intervention" name="id_type_intervention">
|
|
<option value="">Sélectionner...</option>
|
|
<?php
|
|
if (isset($types_intervention) && is_array($types_intervention)) {
|
|
foreach ($types_intervention as $type_intervention) {
|
|
echo '<option value="' . esc_attr($type_intervention['id']) . '">' . esc_html($type_intervention['nom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="id_beneficiaire" class="plus-label form-label">Bénéficiaire *
|
|
<?php if ( $crvi_is_front_context || ( ! $crvi_is_front_context && current_user_can( 'manage_options' ) ) ) : ?>
|
|
<a href="#" id="createBeneficiaireLink" class="crvi-add-link ms-2" title="Créer un nouveau bénéficiaire"><i class="fas fa-plus me-1"></i>Ajouter</a>
|
|
<?php endif; ?>
|
|
</label>
|
|
<div class="input-group">
|
|
<select class="form-select" id="id_beneficiaire" name="id_beneficiaire" required>
|
|
<option value="">Sélectionner...</option>
|
|
<!-- Options dynamiques via API -->
|
|
<?php
|
|
if (isset($beneficiaires) && is_array($beneficiaires)) {
|
|
foreach ($beneficiaires as $beneficiaire) {
|
|
echo '<option value="' . esc_attr($beneficiaire['id']) . '">' . esc_html($beneficiaire['nom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
<!-- Case à cocher pour ajouter le bénéficiaire à la liste rouge -->
|
|
<div class="form-check mt-2" id="liste-rouge-container" style="display: none;">
|
|
<input class="form-check-input" type="checkbox" value="1" id="liste_rouge" name="liste_rouge">
|
|
<label class="form-check-label" for="liste_rouge">
|
|
<i class="fas fa-exclamation-triangle text-danger me-1"></i>Ajouter bénéficiaire à la liste rouge
|
|
</label>
|
|
</div>
|
|
<!-- Alerte liste rouge (s'affiche si le bénéficiaire est en liste rouge) -->
|
|
<div class="alert alert-danger mt-2 mb-0" id="beneficiaire-liste-rouge-alert" style="font-size: 90%; display: none;">
|
|
<i class="fas fa-exclamation-triangle me-2"></i>
|
|
Personne en liste rouge
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="id_intervenant" class="plus-label form-label">Intervenant *
|
|
<?php if ( ! $crvi_is_front_context && current_user_can( 'manage_options' ) ) : ?>
|
|
<a href="#" id="createIntervenantLink" class="crvi-add-link ms-2" title="Créer un nouvel intervenant"><i class="fas fa-plus me-1"></i>Ajouter</a>
|
|
<?php endif; ?>
|
|
</label>
|
|
<div class="input-group">
|
|
<?php if ( $crvi_is_front_context ) : ?>
|
|
<?php
|
|
// En front: si l'utilisateur est admin, utiliser l'ID intervenant simulé (11) et son nom/prénom
|
|
$current_user = wp_get_current_user();
|
|
if ( current_user_can( 'administrator' ) ) {
|
|
$current_intervenant_id = 11;
|
|
$sim_user = get_user_by( 'id', $current_intervenant_id );
|
|
$sim_name = '';
|
|
if ( $sim_user ) {
|
|
$sim_name = trim( (string) $sim_user->first_name . ' ' . (string) $sim_user->last_name );
|
|
if ( $sim_name === '' ) {
|
|
$sim_name = $sim_user->display_name;
|
|
}
|
|
}
|
|
$current_intervenant_name = $sim_name !== '' ? $sim_name : 'Intervenant #11';
|
|
} else {
|
|
$current_intervenant_id = (int) $current_user->ID;
|
|
$current_intervenant_name = trim( $current_user->first_name . ' ' . $current_user->last_name );
|
|
if ( $current_intervenant_name === '' ) {
|
|
$current_intervenant_name = $current_user->display_name;
|
|
}
|
|
}
|
|
?>
|
|
<div class="form-control-plaintext" id="id_intervenant_display"><?php echo esc_html($current_intervenant_name); ?></div>
|
|
<input type="hidden" id="id_intervenant" name="id_intervenant" value="<?php echo esc_html($current_intervenant_id); ?>">
|
|
<?php else : ?>
|
|
<select class="form-select" id="id_intervenant" name="id_intervenant" required>
|
|
<option value="">Sélectionner...</option>
|
|
<!-- Options dynamiques via API -->
|
|
<?php
|
|
if (isset($intervenants) && is_array($intervenants)) {
|
|
foreach ($intervenants as $intervenant) {
|
|
echo '<option value="' . esc_attr($intervenant['id']) . '">' . esc_html($intervenant['nom'] . ' ' . $intervenant['prenom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="id_traducteur" class="plus-label form-label">Traducteur
|
|
<?php if ( ! $crvi_is_front_context && current_user_can( 'manage_options' ) ) : ?>
|
|
<a href="#" id="createTraducteurLink" class="crvi-add-link ms-2" title="Créer un nouveau traducteur"><i class="fas fa-plus me-1"></i>Ajouter</a>
|
|
<?php endif; ?>
|
|
</label>
|
|
<div class="mb-2">
|
|
<label for="nom_traducteur" class="form-label">Nom du traducteur</label>
|
|
<input type="text" class="form-control" id="nom_traducteur" name="nom_traducteur" placeholder="Saisir le nom du traducteur">
|
|
</div>
|
|
<div class="form-check mb-2">
|
|
<input class="form-check-input" type="checkbox" value="1" id="use_existing_traducteur" name="use_existing_traducteur">
|
|
<label class="form-check-label" for="use_existing_traducteur">
|
|
Traducteur existant
|
|
</label>
|
|
</div>
|
|
<div class="input-group d-none" id="traducteur-select-container">
|
|
<select class="form-select" id="id_traducteur" name="id_traducteur">
|
|
<option value="">Sélectionner...</option>
|
|
<!-- Options dynamiques via API -->
|
|
<?php
|
|
if (isset($traducteurs) && is_array($traducteurs)) {
|
|
foreach ($traducteurs as $traducteur) {
|
|
// Récupérer les langues parlées du traducteur depuis la taxonomy
|
|
$langues_terms = wp_get_post_terms($traducteur['id'], 'langue', ['fields' => 'slugs']);
|
|
$langues_slugs = !empty($langues_terms) && !is_wp_error($langues_terms) ? implode(',', $langues_terms) : '';
|
|
$data_langue_attr = !empty($langues_slugs) ? ' data-langue="' . esc_attr($langues_slugs) . '"' : '';
|
|
echo '<option value="' . esc_attr($traducteur['id']) . '"' . $data_langue_attr . '>' . esc_html($traducteur['nom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<div class="mb-3">
|
|
<label for="id_local" class="plus-label form-label">Local *
|
|
<?php if ( ! $crvi_is_front_context && current_user_can( 'manage_options' ) ) : ?>
|
|
<a href="#" id="createLocalLink" class="crvi-add-link ms-2" title="Créer un nouveau local"><i class="fas fa-plus me-1"></i>Ajouter</a>
|
|
<?php endif; ?>
|
|
</label>
|
|
<div class="input-group">
|
|
<select class="form-select" id="id_local" name="id_local" required>
|
|
<option value="">Sélectionner...</option>
|
|
<!-- Options dynamiques via API -->
|
|
<?php
|
|
if (isset($locals) && is_array($locals)) {
|
|
foreach ($locals as $local) {
|
|
echo '<option value="' . esc_attr($local['id']) . '">' . esc_html($local['nom']) . '</option>';
|
|
}
|
|
}
|
|
?>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Champs conditionnels pour les RDV de groupe -->
|
|
<div class="row" id="groupeFields" style="display:none;">
|
|
<div class="col-md-4">
|
|
<div class="mb-3">
|
|
<label for="nb_participants" class="form-label">Nombre de participants *</label>
|
|
<input type="number" min="1" class="form-control" id="nb_participants" name="nb_participants">
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="mb-3">
|
|
<label for="nb_hommes" class="form-label">Nombre d'hommes</label>
|
|
<input type="number" min="0" class="form-control" id="nb_hommes" name="nb_hommes">
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="mb-3">
|
|
<label for="nb_femmes" class="form-label">Nombre de femmes</label>
|
|
<input type="number" min="0" class="form-control" id="nb_femmes" name="nb_femmes">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="commentaire" class="form-label">Commentaire</label>
|
|
<textarea class="form-control" id="commentaire" name="commentaire" rows="3"></textarea>
|
|
</div>
|
|
<!-- Zone d'alerte d'absence -->
|
|
<div class="alert alert-warning mt-2 mb-3" id="absence_alert_edit" style="font-size: 90%; display: none;">
|
|
<i class="fas fa-exclamation-triangle me-2"></i>
|
|
Le ou la bénéficiaire ne s'est pas présenté à ses derniers rdvs
|
|
</div>
|
|
<!-- Informations de clôture (mode édition) -->
|
|
<div id="cloture_info_section_edit" style="display: none;">
|
|
<div class="alert alert-info mb-0">
|
|
<div class="row">
|
|
<div class="col-12 mb-2">
|
|
<strong><i class="fas fa-check-circle me-2"></i>Événement clôturé</strong>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p class="mb-1"><strong>Statut :</strong> <span id="edit_statut_cloture"></span></p>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<p class="mb-1"><strong>Clôturé le :</strong> <span id="edit_cloture_rdv"></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<p class="mb-0"><strong>Clôturé par :</strong> <span id="edit_cloture_par"></span></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<!-- Zone d'affichage des erreurs inline -->
|
|
<div id="eventFormErrors" class="alert alert-danger d-none" role="alert"></div>
|
|
|
|
<!-- Boutons de changement de statut rapide (mode édition uniquement) -->
|
|
<div id="eventStatusButtons">
|
|
<div class="btn-group" role="group">
|
|
<button type="button" class="btn btn-success btn-sm individuel-only-button" id="markPresentBtn" title="Valider la présence" style="display: none;">
|
|
<i class="fas fa-user-check me-1"></i>Valider présences
|
|
</button>
|
|
<button type="button" class="btn btn-primary btn-sm groupe-only-button" id="showPresenceModalBtn" title="Afficher le modal de présence" style="display: none;">
|
|
<i class="fa-solid fa-clipboard-list"></i> Gérer les présences
|
|
</button>
|
|
<button type="button" class="btn btn-warning btn-sm" id="markAbsentBtn" title="Marquer comme absent">
|
|
<i class="fas fa-user-times me-1"></i>Absent
|
|
</button>
|
|
<button type="button" class="btn btn-danger btn-sm" id="cancelAppointmentBtn" title="Annuler le rendez-vous">
|
|
<i class="fas fa-times-circle me-1"></i>Annuler RDV
|
|
</button>
|
|
<?php
|
|
// Afficher le bouton Debug SMS si activé dans la config
|
|
$debug_sms_enabled = true;
|
|
// plugin_dir_path(__FILE__) depuis templates/modules/modals/ donne templates/modules/modals/
|
|
// On doit remonter de 3 niveaux pour atteindre la racine du plugin
|
|
$cfg_path = plugin_dir_path(__FILE__) . '../../../app/config.php';
|
|
if (file_exists($cfg_path)) {
|
|
include $cfg_path;
|
|
if (isset($debug_sms)) {
|
|
$debug_sms_enabled = (bool) $debug_sms;
|
|
}
|
|
}
|
|
if ($debug_sms_enabled) : ?>
|
|
<button type="button" class="btn btn-info btn-sm" id="debugSmsBtn" title="Debug SMS">
|
|
<i class="fas fa-bug me-1"></i>Debug SMS
|
|
</button>
|
|
<?php endif; ?>
|
|
<button type="button" class="btn btn-warning btn-sm" id="reportIncidentBtn" title="Signaler un incident">
|
|
<i class="fas fa-exclamation-triangle me-1"></i>Signaler un incident
|
|
</button>
|
|
<button type="button" class="btn btn-info btn-sm" id="viewIncidentsBtn" title="Voir les incidents" style="display: none;">
|
|
<i class="fas fa-eye me-1"></i>Détail incident(s)
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<!-- Boutons pour le mode vue -->
|
|
<div id="eventViewFooter">
|
|
<button type="button" class="btn btn-secondary" id="closeViewBtn">
|
|
<i class="fas fa-times me-2"></i>Fermer
|
|
</button>
|
|
<button type="button" class="btn btn-primary" id="editEventBtn" style="display:none;">
|
|
<i class="fas fa-edit me-2"></i>Modifier
|
|
</button>
|
|
<button type="button" class="btn btn-info" id="showBeneficiaireHistoriqueBtn" style="display: none;" data-benef="">
|
|
<i class="fas fa-history me-2"></i>Historique bénéficiaire
|
|
</button>
|
|
</div>
|
|
<!-- Boutons pour le mode édition/création -->
|
|
<div id="eventEditFooter" style="display:none;">
|
|
<button type="button" class="btn btn-secondary" id="cancelEditBtn">
|
|
<i class="fas fa-arrow-left me-2"></i>Annuler
|
|
</button>
|
|
<button type="button" class="btn btn-primary" id="saveEvent">
|
|
<i class="fas fa-save me-2"></i>Enregistrer
|
|
</button>
|
|
<button type="button" class="btn btn-danger" id="deleteEvent" style="display: none;">
|
|
<i class="fas fa-trash me-2"></i>Supprimer
|
|
</button>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<script>
|
|
// Affichage conditionnel des champs groupe
|
|
jQuery(document).ready(function($){
|
|
$('#type').on('change', function(){
|
|
if($(this).val() === 'groupe') {
|
|
$('#groupeFields').show();
|
|
$('#nb_participants').attr('required', true);
|
|
// Masquer le champ bénéficiaire pour les RDV de groupe
|
|
$('#id_beneficiaire').closest('.col-md-6').hide();
|
|
$('#id_beneficiaire').removeAttr('required');
|
|
// Afficher les boutons spécifiques aux groupes
|
|
$('.groupe-only-button').show();
|
|
// Masquer les boutons spécifiques aux individuels
|
|
$('.individuel-only-button').hide();
|
|
} else {
|
|
$('#groupeFields').hide();
|
|
$('#nb_participants').removeAttr('required');
|
|
// Afficher le champ bénéficiaire pour les RDV individuels
|
|
$('#id_beneficiaire').closest('.col-md-6').show();
|
|
$('#id_beneficiaire').attr('required', true);
|
|
// Masquer les boutons spécifiques aux groupes
|
|
$('.groupe-only-button').hide();
|
|
// Afficher les boutons spécifiques aux individuels
|
|
$('.individuel-only-button').show();
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
|