{"id":1031,"date":"2026-06-08T11:26:42","date_gmt":"2026-06-08T09:26:42","guid":{"rendered":"http:\/\/localhost:8888\/wordpress\/?page_id=1031"},"modified":"2026-08-20T16:25:43","modified_gmt":"2026-08-20T14:25:43","slug":"eve_agenda","status":"publish","type":"page","link":"https:\/\/eve-grenoble.fr\/index.php\/eve_agenda\/","title":{"rendered":"Agenda"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1031\" class=\"elementor elementor-1031\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a4ecd61 e-flex e-con-boxed e-con e-parent\" data-id=\"a4ecd61\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4d01ef9 elementor-widget elementor-widget-text-editor\" data-id=\"4d01ef9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\t<style>\n\t\t.eve-cal { max-width: 100%; font-family: inherit; color: #1a1a1a; margin-bottom: 40px; }\n\t\t.eve-cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; background: #fff; padding: 15px 20px; border-radius: 8px; border: 1px solid #eaeaea; flex-wrap: wrap; gap: 15px; }\n\t\t.eve-cal-header h2 { margin: 0; font-size: 1.25em; color: #333; text-align: center; text-transform: capitalize; font-weight: 700; display: inline-block; vertical-align: middle; }\n\t\t.eve-cal-nav-arrow { text-decoration: none; color: #E24F21; font-weight: 700; width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid #E24F21; display: inline-flex; align-items: center; justify-content: center; font-size: 1.4em; line-height: 1; transition: background 0.2s, color 0.2s; cursor: pointer; user-select: none; }\n\t\t.eve-cal-nav-arrow:hover { background: #E24F21; color: #fff; }\n\n\t\t.eve-cal-view-selector { display: flex; border: 1.5px solid #E24F21; border-radius: 6px; overflow: hidden; background: #fff; }\n\t\t.eve-cal-view-btn { text-decoration: none; color: #E24F21; font-weight: 700; padding: 8px 16px; font-size: 0.9em; transition: background 0.15s, color 0.15s; border-right: 1.5px solid #E24F21; }\n\t\t.eve-cal-view-btn:last-child { border-right: none; }\n\t\t.eve-cal-view-btn:hover { background: #fff5f2; }\n\t\t.eve-cal-view-btn.is-active { background: #E24F21; color: #fff; }\n\n\t\t\/* \u2500\u2500 Vue MOIS \u2500\u2500 *\/\n\t\t.eve-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }\n\t\t.eve-cal-day-name { text-align: center; font-weight: 700; font-size: 0.85em; text-transform: uppercase; color: #666; padding: 10px 0; letter-spacing: 0.05em; }\n\t\t.eve-cal-cell { background: #fff; border: 1px solid #eaeaea; border-radius: 6px; min-height: 120px; padding: 6px; display: flex; flex-direction: column; transition: box-shadow 0.2s, background-color 0.2s, border-color 0.2s; min-width: 0; }\n\t\t.eve-cal-cell:not(.eve-cal-cell--empty) { cursor: pointer; }\n\t\t.eve-cal-cell:not(.eve-cal-cell--empty):hover { box-shadow: 0 6px 16px rgba(226, 79, 33, 0.08); background-color: #fffaf9; border-color: #E24F21; }\n\t\t.eve-cal-cell--empty { background: #fafafa; border-style: dashed; }\n\t\t.eve-cal-day-num { font-weight: 700; font-size: 0.9em; color: #777; margin-bottom: 6px; padding-left: 4px; }\n\t\t.eve-cal-cell--today { border-color: #E24F21; background: #fffcfb; }\n\t\t.eve-cal-cell--today .eve-cal-day-num { color: #E24F21; }\n\t\t.eve-cal-events-list { display: flex; flex-direction: column; gap: 4px; flex-grow: 1; overflow-y: auto; max-height: 110px; min-width: 0; }\n\t\t\n\t\t.eve-cal-event-tag { display: block; font-size: 0.76em; font-weight: 600; padding: 4px 8px; border-radius: 4px; text-decoration: none; border-left: 3px solid; cursor: pointer; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 100%; box-sizing: border-box; }\n\t\t\/* \u2500\u2500 \u00c9tats de validation \u2500\u2500 *\/\n\t\t.eve-cal-event-tag--full     { background: #e8f9ed; color: #155724; border-left-color: #28a745; }\n\t\t.eve-cal-event-tag--partial  { background: #fff8c4; color: #7a5800; border-left-color: #fbc02d; }\n\t\t.eve-cal-event-tag--none     { background: #fff3e0; color: #7c3d00; border-left-color: #f57c00; }\n\t\t.eve-cal-event-tag--refused  { background: #fdecea; color: #6b1212; border-left-color: #d32f2f; }\n\n\t\t\/* \u2500\u2500 Vues TIMELINE (Semaine \/ Jour) \u2500\u2500 *\/\n\t\t.eve-cal-week-headers { display: grid; grid-template-columns: 60px repeat(7, 1fr); border: 1px solid #eaeaea; border-bottom: none; border-top-left-radius: 8px; border-top-right-radius: 8px; background: #fafafa; text-align: center; font-weight: 700; }\n\t\t.eve-cal-week-header-cell { padding: 10px 4px; border-right: 1px solid #eaeaea; font-size: 0.9em; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; transition: background-color 0.2s, color 0.2s; }\n\t\t.eve-cal-week-header-cell:hover { background-color: #fffaf9; }\n\t\t.eve-cal-week-header-cell:hover .eve-cal-week-header-dayname { color: #E24F21; }\n\t\t.eve-cal-week-header-cell:hover .eve-cal-week-header-daynum { color: #E24F21; }\n\t\t.eve-cal-week-header-cell:last-child { border-right: none; }\n\t\t.eve-cal-week-header-dayname { font-size: 0.75em; color: #777; text-transform: uppercase; display: block; margin-bottom: 2px; }\n\t\t.eve-cal-week-header-daynum { font-size: 1.15em; color: #111; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; }\n\t\t.eve-cal-week-header-cell.is-today .eve-cal-week-header-daynum { background: #1a73e8; color: #fff !important; font-weight: bold; }\n\n\t\t.eve-cal-day-header-single { display: grid; grid-template-columns: 60px 1fr; border: 1px solid #eaeaea; border-bottom: none; border-top-left-radius: 8px; border-top-right-radius: 8px; background: #fafafa; padding: 15px 0; text-align: center; }\n\t\t.eve-cal-day-header-single-content { font-weight: 700; color: #111; font-size: 1.1em; }\n\n\t\t.eve-cal-timeline-container { position: relative; border: 1px solid #eaeaea; border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; background: #fff; display: grid; grid-template-columns: 60px 1fr; max-height: 650px; overflow-y: auto; }\n\t\t.eve-cal-time-labels { display: grid; grid-template-rows: repeat(24, 60px); height: 1440px; border-right: 1px solid #eaeaea; background: #fafafa; color: #777; font-size: 0.8em; font-weight: 700; text-align: center; box-sizing: border-box; }\n\t\t.eve-cal-time-label-item { height: 60px; display: flex; align-items: flex-start; justify-content: center; padding-top: 4px; border-bottom: 1px solid rgba(0,0,0,0.02); }\n\t\t\n\t\t.eve-cal-columns-grid { position: relative; height: 1440px; background-image: linear-gradient(#eaeaea 1px, transparent 1px); background-size: 100% 60px; }\n\t\t.eve-cal-columns-grid--week { display: grid; grid-template-columns: repeat(7, 1fr); }\n\t\t.eve-cal-columns-grid--day { display: grid; grid-template-columns: 1fr; }\n\t\t\n\t\t.eve-cal-day-column { position: relative; height: 100%; border-right: 1px solid #eaeaea; }\n\t\t.eve-cal-day-column:last-child { border-right: none; }\n\n\t\t\/* \u00c9v\u00e9nements absolument positionn\u00e9s dans les colonnes *\/\n\t\t.eve-cal-event-tag-timeline { position: absolute; box-sizing: border-box; padding: 6px 10px; border-radius: 6px; font-size: 0.76em; font-weight: 700; line-height: 1.35; border-left: 3px solid; cursor: pointer; overflow: hidden; word-break: break-word; box-shadow: 0 2px 5px rgba(0,0,0,0.06); }\n\t\t\/* \u2500\u2500 \u00c9tats de validation timeline \u2500\u2500 *\/\n\t\t.eve-cal-event-tag-timeline--full    { background: #e8f9ed; color: #155724; border-left: 3px solid #28a745; border-top: 1px solid #c8e6c9; border-right: 1px solid #c8e6c9; border-bottom: 1px solid #c8e6c9; }\n\t\t.eve-cal-event-tag-timeline--partial { background: #fff8c4; color: #7a5800; border-left: 3px solid #fbc02d; border-top: 1px solid #fff59d; border-right: 1px solid #fff59d; border-bottom: 1px solid #fff59d; }\n\t\t.eve-cal-event-tag-timeline--none    { background: #fff3e0; color: #7c3d00; border-left: 3px solid #f57c00; border-top: 1px solid #ffe0b2; border-right: 1px solid #ffe0b2; border-bottom: 1px solid #ffe0b2; }\n\t\t.eve-cal-event-tag-timeline--refused { background: #fdecea; color: #6b1212; border-left: 3px solid #d32f2f; border-top: 1px solid #f5c6c6; border-right: 1px solid #f5c6c6; border-bottom: 1px solid #f5c6c6; }\n\n\t\t\/* Indicateur d'heure actuelle *\/\n\t\t.eve-cal-now-indicator { position: absolute; left: 0; right: 0; height: 2px; z-index: 10; pointer-events: none; }\n\t\t.eve-cal-now-dot { position: absolute; left: -4px; top: -4px; width: 10px; height: 10px; background: #dc3545; border-radius: 50%; }\n\t\t.eve-cal-now-line { height: 2px; background: #dc3545; width: 100%; }\n\n\n\t\t\n\t\t\/* Responsiveness *\/\n\t\t@media (max-width: 900px) {\n\t\t\t.eve-cal-view-selector { display: none !important; }\n\t\t\t.eve-cal-header { flex-direction: column; gap: 15px; }\n\t\t\t.eve-cal-header-spacer { display: none !important; }\n\t\t\t.eve-cal-title-wrapper { flex: none !important; width: 100%; justify-content: center; }\n\t\t\t.eve-cal-header > div:last-child { flex: none !important; width: 100%; justify-content: center; }\n\n\t\t\t.eve-cal-grid { grid-template-columns: 1fr; gap: 10px; }\n\t\t\t.eve-cal-day-name { display: none; }\n\t\t\t.eve-cal-cell { min-height: auto; padding: 12px; }\n\t\t\t.eve-cal-cell--empty { display: none; }\n\t\t\t.eve-cal-day-num { font-size: 1.1em; color: #333; border-bottom: 1.5px solid #eaeaea; padding-bottom: 6px; margin-bottom: 10px; }\n\t\t\t\n\t\t\t.eve-cal-week-headers { grid-template-columns: 60px 1fr; }\n\t\t\t.eve-cal-week-header-cell { display: none; }\n\t\t\t.eve-cal-week-header-cell.is-today { display: flex; }\n\t\t\t.eve-cal-columns-grid--week { grid-template-columns: 1fr; }\n\t\t\t.eve-cal-day-column { display: none; }\n\t\t\t.eve-cal-day-column:has(.eve-cal-event-tag-timeline) { display: block; border-right: none; }\n\t\t}\n\n\t\t\/* \u2500\u2500 Vue LISTE \u2500\u2500 *\/\n\t\t.eve-cal-list-week-section { margin-bottom: 40px; }\n\t\t.eve-cal-list-week-title { font-size: 1.25em; font-weight: 800; text-transform: uppercase; color: #E24F21; border-bottom: 2px solid #E24F21; padding-bottom: 10px; margin-bottom: 25px; letter-spacing: 0.06em; }\n\t\t.eve-cal-list-day-section { margin-bottom: 25px; background: #fff; border: 1px solid #eaeaea; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.02); transition: border-color 0.3s, box-shadow 0.3s; }\n\t\t.eve-cal-list-day-section.is-today { border: 2px solid #E24F21; box-shadow: 0 4px 15px rgba(226, 79, 33, 0.1); }\n\t\t.eve-cal-list-day-title { background: #fafafa; padding: 14px 20px; font-weight: 700; color: #333; font-size: 1.02em; border-bottom: 1px solid #eaeaea; display: flex; align-items: center; gap: 10px; }\n\t\t\n\t\t.eve-cal-list-table-wrapper { overflow-x: auto; }\n\t\t.eve-cal-list-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 0.9em; min-width: 760px; }\n\t\t.eve-cal-list-table th { background: #fff; color: #666; font-weight: 700; text-transform: uppercase; font-size: 0.8em; padding: 14px 20px; border-bottom: 1.5px solid #eaeaea; letter-spacing: 0.05em; }\n\t\t.eve-cal-list-table td { padding: 16px 20px; border-bottom: 1px solid #f2f2f2; vertical-align: middle; color: #444; }\n\t\t.eve-cal-list-table tr:last-child td { border-bottom: none; }\n\t\t.eve-cal-list-table tbody tr { cursor: pointer; transition: background-color 0.15s; }\n\t\t.eve-cal-list-table tbody tr:hover td { background-color: #fffaf9; }\n\t\t.eve-cal-list-table tbody tr:hover td:first-child { color: #E24F21; }\n\t\t\n\t\t.eve-cal-list-event-name { font-weight: 700; color: #111; font-size: 1.02em; transition: color 0.15s; }\n\t\t.eve-cal-list-assoc-link { font-weight: 600; color: #555; text-decoration: none; transition: color 0.15s; }\n\t\t.eve-cal-list-assoc-link:hover { color: #E24F21; text-decoration: underline; }\n\t\t\/* \u00c9tats de validation (vue liste) \u2014 couleur de fond sur toute la ligne *\/\n\t\t.eve-cal-list-table tbody tr.eve-list-state--full    > td { background-color: #f0fbf3 !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--partial > td { background-color: #fffde7 !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--none    > td { background-color: #fff8f0 !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--refused > td { background-color: #fdf0f0 !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--full:hover    > td { background-color: #d1f0dc !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--partial:hover > td { background-color: #fff399 !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--none:hover    > td { background-color: #ffe0b2 !important; }\n\t\t.eve-cal-list-table tbody tr.eve-list-state--refused:hover > td { background-color: #fad1d1 !important; }\n\t\t\n\t\t.eve-badge { display: inline-flex; align-items: center; justify-content: center; padding: 4px 10px; border-radius: 20px; font-size: 0.78em; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; }\n\t\t.eve-badge--public { background: #e8f9ed; color: #155724; border: 1.5px solid #c8e6c9; }\n\t\t.eve-badge--private { background: #f1f3f5; color: #495057; border: 1.5px solid #e9ecef; }\n\t<\/style>\n\n\t<div class=\"eve-cal\">\n\t\t<!-- En-t\u00eate de navigation -->\n\t\t<div class=\"eve-cal-header\">\n\t\t\t<div class=\"eve-cal-header-spacer\" style=\"flex: 1; display: flex; justify-content: flex-start; align-items: center; gap: 20px;\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"eve-cal-title-wrapper\" style=\"flex: 1; display: flex; justify-content: center; align-items: center; gap: 15px;\">\n\t\t\t\t<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=month&#038;eve_month=2026-07\" class=\"eve-cal-nav-arrow\">&lsaquo;<\/a>\n\t\t\t\t<h2 style=\"margin: 0; min-width: 150px; text-align: center; white-space: nowrap;\">ao\u00fbt 2026<\/h2>\n\t\t\t\t\n\t\t\t\t<div style=\"position: relative; display: flex; align-items: center;\" title=\"Choisir une date\">\n\t\t\t\t\t<button type=\"button\" id=\"eve-cal-date-btn\" style=\"background: none; border: none; padding: 0; cursor: pointer; display: flex; align-items: center;\">\n\t\t\t\t\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#111\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"><\/rect><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"><\/line><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"><\/line><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"><\/line><\/svg>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t<input type=\"date\" id=\"eve-cal-date-picker\" style=\"position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0;\" value=\"2026-08-21\">\n\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=month&#038;eve_month=2026-09\" class=\"eve-cal-nav-arrow\">&rsaquo;<\/a>\n\t\t\t<\/div>\n\t\t\t<div style=\"flex: 1; display: flex; justify-content: flex-end; align-items: center; gap: 10px;\">\n\t\t\t\t<div class=\"eve-cal-view-selector\">\n\t\t\t\t\t<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-21\" class=\"eve-cal-view-btn \">Jour<\/a>\n\t\t\t\t\t<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=week&#038;eve_week=2026-W34\" class=\"eve-cal-view-btn \">Semaine<\/a>\n\t\t\t\t\t<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=month&#038;eve_month=2026-08\" class=\"eve-cal-view-btn is-active\">Mois<\/a>\n\t\t\t\t\t<a href=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=list&#038;eve_month=2026-08\" class=\"eve-cal-view-btn \">Liste<\/a>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t\t\t\t<!-- \u2500\u2500 VUE MENSUELLE \u2500\u2500 -->\n\t\t\t<div class=\"eve-cal-grid\">\n\t\t\t\t<div class=\"eve-cal-day-name\">Lundi<\/div>\n\t\t\t\t<div class=\"eve-cal-day-name\">Mardi<\/div>\n\t\t\t\t<div class=\"eve-cal-day-name\">Mercredi<\/div>\n\t\t\t\t<div class=\"eve-cal-day-name\">Jeudi<\/div>\n\t\t\t\t<div class=\"eve-cal-day-name\">Vendredi<\/div>\n\t\t\t\t<div class=\"eve-cal-day-name\">Samedi<\/div>\n\t\t\t\t<div class=\"eve-cal-day-name\">Dimanche<\/div>\n\n\t\t\t\t<div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-01\"><div class=\"eve-cal-day-num\">1<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-02\"><div class=\"eve-cal-day-num\">2<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-03\"><div class=\"eve-cal-day-num\">3<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-04\"><div class=\"eve-cal-day-num\">4<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-05\"><div class=\"eve-cal-day-num\">5<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-06\"><div class=\"eve-cal-day-num\">6<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-07\"><div class=\"eve-cal-day-num\">7<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-08\"><div class=\"eve-cal-day-num\">8<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-09\"><div class=\"eve-cal-day-num\">9<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-10\"><div class=\"eve-cal-day-num\">10<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-11\"><div class=\"eve-cal-day-num\">11<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-12\"><div class=\"eve-cal-day-num\">12<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-13\"><div class=\"eve-cal-day-num\">13<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-14\"><div class=\"eve-cal-day-num\">14<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-15\"><div class=\"eve-cal-day-num\">15<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-16\"><div class=\"eve-cal-day-num\">16<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-17\"><div class=\"eve-cal-day-num\">17<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-18\"><div class=\"eve-cal-day-num\">18<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-19\"><div class=\"eve-cal-day-num\">19<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-20\"><div class=\"eve-cal-day-num\">20<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell eve-cal-cell--today\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-21\"><div class=\"eve-cal-day-num\">21<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-22\"><div class=\"eve-cal-day-num\">22<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-23\"><div class=\"eve-cal-day-num\">23<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-24\"><div class=\"eve-cal-day-num\">24<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-25\"><div class=\"eve-cal-day-num\">25<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-26\"><div class=\"eve-cal-day-num\">26<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-27\"><div class=\"eve-cal-day-num\">27<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-28\"><div class=\"eve-cal-day-num\">28<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-29\"><div class=\"eve-cal-day-num\">29<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-30\"><div class=\"eve-cal-day-num\">30<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell\" data-url=\"\/index.php\/wp-json\/wp\/v2\/pages\/1031?eve_view=day&#038;eve_day=2026-08-31\"><div class=\"eve-cal-day-num\">31<\/div><div class=\"eve-cal-events-list\"><\/div><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div><div class=\"eve-cal-cell eve-cal-cell--empty\"><\/div>\t\t\t<\/div>\n\n\t\t\t<\/div>\n\n\t\n\t<!-- Code JavaScript interactif de l'agenda -->\n\t<script>\n\tdocument.addEventListener('DOMContentLoaded', function() {\n\t\t\/\/ \u2500\u2500 Date Picker \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\tconst datePicker = document.getElementById('eve-cal-date-picker');\n\t\tconst dateBtn = document.getElementById('eve-cal-date-btn');\n\t\t\n\t\tif (dateBtn && datePicker) {\n\t\t\tdateBtn.addEventListener('click', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\ttry {\n\t\t\t\t\tdatePicker.showPicker();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tdatePicker.focus();\n\t\t\t\t\tdatePicker.click();\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tdatePicker.addEventListener('change', function() {\n\t\t\t\tconst selectedDate = this.value; \/\/ Format: YYYY-MM-DD\n\t\t\t\tif (!selectedDate) return;\n\t\t\t\t\n\t\t\t\tconst view = 'month';\n\t\t\t\tlet url = new URL(window.location.href);\n\t\t\t\turl.searchParams.set('eve_view', view);\n\t\t\t\t\n\t\t\t\tif (view === 'day') {\n\t\t\t\t\turl.searchParams.set('eve_day', selectedDate);\n\t\t\t\t} else if (view === 'week') {\n\t\t\t\t\t\/\/ Calcul du num\u00e9ro de semaine ISO\n\t\t\t\t\tconst d = new Date(selectedDate);\n\t\t\t\t\td.setHours(0, 0, 0, 0);\n\t\t\t\t\td.setDate(d.getDate() + 3 - (d.getDay() + 6) % 7);\n\t\t\t\t\tconst week1 = new Date(d.getFullYear(), 0, 4);\n\t\t\t\t\tconst weekNumber = 1 + Math.round(((d.getTime() - week1.getTime()) \/ 86400000 - 3 + (week1.getDay() + 6) % 7) \/ 7);\n\t\t\t\t\tconst weekStr = d.getFullYear() + '-W' + String(weekNumber).padStart(2, '0');\n\t\t\t\t\turl.searchParams.set('eve_week', weekStr);\n\t\t\t\t} else { \/\/ month or list\n\t\t\t\t\turl.searchParams.set('eve_month', selectedDate.substring(0, 7)); \/\/ YYYY-MM\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\twindow.location.href = url.toString();\n\t\t\t});\n\t\t}\n\n\t\t\/\/ \u2500\u2500 Filtre \"Mes \u00e9v\u00e9nements\" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\t\/\/ La case \u00e0 cocher filtre les tags d'\u00e9v\u00e9nements en comparant data-author-id\n\t\t\/\/ avec l'ID de l'utilisateur courant inject\u00e9 par PHP.\n\t\tconst filterCheckbox = document.getElementById('eve-cal-filter-my-events');\n\t\tif (filterCheckbox) {\n\t\t\tconst currentUserId = 0;\n\t\t\tfilterCheckbox.addEventListener('change', function() {\n\t\t\t\tconst onlyMine = this.checked;\n\t\t\t\t\n\t\t\t\t\/\/ Calendar cells tags\n\t\t\t\tdocument.querySelectorAll('.eve-cal-event-tag, .eve-cal-event-tag-timeline').forEach(tag => {\n\t\t\t\t\tconst authorId = parseInt(tag.getAttribute('data-author-id'));\n\t\t\t\t\tif (onlyMine) {\n\t\t\t\t\t\tif (authorId !== currentUserId) {\n\t\t\t\t\t\t\ttag.style.display = 'none';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttag.style.display = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttag.style.display = '';\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t\/\/ List view rows\n\t\t\t\tdocument.querySelectorAll('.eve-cal-list-row').forEach(row => {\n\t\t\t\t\tconst authorId = parseInt(row.getAttribute('data-author-id'));\n\t\t\t\t\tif (onlyMine) {\n\t\t\t\t\t\tif (authorId !== currentUserId) {\n\t\t\t\t\t\t\trow.style.display = 'none';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trow.style.display = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trow.style.display = '';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t\/\/ \u2500\u2500 Navigation au clic sur une case (vue Mois) ou t\u00eate de colonne (vue Semaine) \u2500\u2500\n\t\t\/\/ Les cellules avec un attribut data-url redirigent vers la vue jour correspondante.\n\t\tdocument.querySelectorAll('[data-url]').forEach(el => {\n\t\t\tel.addEventListener('click', function(e) {\n\t\t\t\tif (e.target.closest('.eve-cal-event-tag, .eve-cal-event-tag-timeline')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst url = this.getAttribute('data-url');\n\t\t\t\tif (url) {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t\/\/ \u2500\u2500 Scroll automatique \u00e0 9h00 au chargement des vues timeline \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\t\/\/ Positionne automatiquement la grille de la timeline sur 9h00 (540px = 9 * 60px).\n\t\tdocument.querySelectorAll('.eve-cal-timeline-container').forEach(container => {\n\t\t\tcontainer.scrollTop = 540;\n\t\t});\n\n\t\t\/\/ Clic sur les lignes de la vue liste (ouvre l'\u00e9v\u00e9nement en suivant le lien)\n\t\tdocument.querySelectorAll('.eve-cal-list-row').forEach(row => {\n\t\t\trow.addEventListener('click', function(e) {\n\t\t\t\t\/\/ Ignorer si le clic vient du lien association\n\t\t\t\tif (e.target.closest('.eve-cal-list-assoc-link')) return;\n\t\t\t\t\/\/ Trouver le lien de l'\u00e9v\u00e9nement dans cette ligne et simuler un clic naturel\n\t\t\t\tconst link = this.querySelector('.eve-cal-list-event-link');\n\t\t\t\tif (link && link.href) {\n\t\t\t\t\twindow.location.href = link.href;\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\t\/\/ \u2500\u2500 Modale d'export (CSV + PDF) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\t\/\/ Ouverte par le bouton \"Exporter CSV\" dans l'en-t\u00eate du calendrier (admins uniquement).\n\t\t\/\/ L'URL d'export est g\u00e9n\u00e9r\u00e9e dynamiquement en JavaScript \u00e0 partir des dates saisies.\n\t\tconst exportBtn = document.getElementById('eve-cal-export-btn');\n\t\tconst exportModal = document.getElementById('eveExportModalOverlay');\n\t\tconst exportCloseBtn = document.getElementById('eveExportModalClose');\n\t\tconst exportDownloadBtn = document.getElementById('eve-export-download-btn');\n\t\tconst exportPdfBtn = document.getElementById('eve-export-pdf-btn');\n\t\t\n\t\tif (exportBtn && exportModal) {\n\t\t\texportBtn.addEventListener('click', () => {\n\t\t\t\texportModal.style.display = 'flex';\n\t\t\t\t\/\/ Set default dates: start of current year to end of current year\n\t\t\t\tconst today = new Date();\n\t\t\t\tconst currentYear = today.getFullYear();\n\t\t\t\tdocument.getElementById('eve-export-start').value = `${currentYear}-01-01`;\n\t\t\t\tdocument.getElementById('eve-export-end').value = `${currentYear}-12-31`;\n\t\t\t});\n\t\t\t\n\t\t\texportCloseBtn.addEventListener('click', () => {\n\t\t\t\texportModal.style.display = 'none';\n\t\t\t});\n\t\t\t\n\t\t\texportModal.addEventListener('click', (e) => {\n\t\t\t\tif (e.target === exportModal) exportModal.style.display = 'none';\n\t\t\t});\n\t\t\t\n\t\t\texportDownloadBtn.addEventListener('click', () => {\n\t\t\t\tconst start = document.getElementById('eve-export-start').value;\n\t\t\t\tconst end = document.getElementById('eve-export-end').value;\n\t\t\t\tif (!start || !end) {\n\t\t\t\t\talert('Veuillez s\u00e9lectionner les deux dates.');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst ajaxurl = 'https:\/\/eve-grenoble.fr\/wp-admin\/admin-ajax.php';\n\t\t\t\tconst exportUrl = `${ajaxurl}?action=eve_export_events_csv&start_date=${start}&end_date=${end}`;\n\t\t\t\t\n\t\t\t\t\/\/ Rediriger vers l'URL d'export, ce qui lancera le t\u00e9l\u00e9chargement du fichier\n\t\t\t\twindow.location.href = exportUrl;\n\t\t\t\texportModal.style.display = 'none';\n\t\t\t});\n\n\t\t\tif (exportPdfBtn) {\n\t\t\t\texportPdfBtn.addEventListener('click', () => {\n\t\t\t\t\tconst start = document.getElementById('eve-export-start').value;\n\t\t\t\t\tconst end = document.getElementById('eve-export-end').value;\n\t\t\t\t\tif (!start || !end) {\n\t\t\t\t\t\talert('Veuillez s\u00e9lectionner les deux dates.');\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tconst ajaxurl = 'https:\/\/eve-grenoble.fr\/wp-admin\/admin-ajax.php';\n\t\t\t\t\tconst exportUrl = `${ajaxurl}?action=eve_export_pdf_print&start_date=${start}&end_date=${end}`;\n\t\t\t\t\t\n\t\t\t\t\t\/\/ Ouvrir dans un nouvel onglet\n\t\t\t\t\twindow.open(exportUrl, '_blank');\n\t\t\t\t\texportModal.style.display = 'none';\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t\/\/ \u2500\u2500 Scroll automatique vers la section \"Aujourd'hui\" en vue Liste \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\tconst todaySection = document.getElementById('eve-today-section');\n\t\tif (todaySection) {\n\t\t\tsetTimeout(() => {\n\t\t\t\ttodaySection.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\t\t\t}, 150);\n\t\t}\n\t});\n\t<\/script>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1031","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/pages\/1031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1031"}],"version-history":[{"count":10,"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/pages\/1031\/revisions"}],"predecessor-version":[{"id":1375,"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/pages\/1031\/revisions\/1375"}],"wp:attachment":[{"href":"https:\/\/eve-grenoble.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}