{"id":1065,"date":"2026-10-23T20:45:34","date_gmt":"2026-10-23T20:45:34","guid":{"rendered":"https:\/\/savoieretrogames.fr\/?page_id=1065"},"modified":"2026-10-24T17:09:41","modified_gmt":"2026-10-24T17:09:41","slug":"nos-events","status":"publish","type":"page","link":"https:\/\/savoieretrogames.fr\/index.php\/nos-events\/","title":{"rendered":"NOS EVENTS"},"content":{"rendered":"<div data-colibri-id=\"1065-c1\" class=\"style-248 style-local-1065-c1 position-relative\">\n  <!---->\n  <div data-colibri-component=\"section\" data-colibri-id=\"1065-c2\" id=\"custom\" class=\"h-section h-section-global-spacing d-flex align-items-lg-center align-items-md-center align-items-center style-249 style-local-1065-c2 position-relative\">\n    <!---->\n    <!---->\n    <div class=\"h-section-grid-container h-section-boxed-container\">\n      <!---->\n      <div data-colibri-id=\"1065-c3\" class=\"h-row-container gutters-row-lg-2 gutters-row-md-2 gutters-row-0 gutters-row-v-lg-2 gutters-row-v-md-2 gutters-row-v-2 style-250 style-local-1065-c3 position-relative\">\n        <!---->\n        <div class=\"h-row justify-content-lg-center justify-content-md-center justify-content-center align-items-lg-stretch align-items-md-stretch align-items-stretch gutters-col-lg-2 gutters-col-md-2 gutters-col-0 gutters-col-v-lg-2 gutters-col-v-md-2 gutters-col-v-2\">\n          <!---->\n          <div class=\"h-column h-column-container d-flex h-col-lg-auto h-col-md-auto h-col-auto style-251-outer style-local-1065-c4-outer\">\n            <div data-colibri-id=\"1065-c4\" class=\"d-flex h-flex-basis h-column__inner h-px-lg-2 h-px-md-2 h-px-2 v-inner-lg-2 v-inner-md-2 v-inner-2 style-251 style-local-1065-c4 position-relative\">\n              <!---->\n              <!---->\n              <div class=\"w-100 h-y-container h-column__content h-column__v-align flex-basis-100 align-self-lg-start align-self-md-start align-self-start\">\n                <!---->\n                <div data-colibri-id=\"1065-c5\" class=\"style-302 style-local-1065-c5 position-relative h-element\">\n                  <!---->\n                  <div class=\"\"><!DOCTYPE html>\r\n<html lang=\"fr\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Historique des Animations \u2014 Savoie R\u00e9tro Games<\/title>\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lato:wght@400;700;900&display=swap\" rel=\"stylesheet\">\r\n\r\n  <style>\r\n    :root {\r\n      --bg-dark: #11182b;\r\n      --panel-bg: rgba(17, 24, 43, 0.9);\r\n      --panel-border: rgba(124, 92, 255, 0.3);\r\n      --purple: #7c5cff;\r\n      --cyan: #00f0ff;\r\n      --pink: #ff4fa3;\r\n      --green: #10b981;\r\n      --red: #ef4444;\r\n      --text-light: #f5f7ff;\r\n      --text-muted: #94a3b8;\r\n    }\r\n\r\n    * { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\n    body {\r\n      background-color: var(--bg-dark);\r\n      color: var(--text-light);\r\n      font-family: 'Lato', Arial, sans-serif;\r\n      padding: 30px 15px;\r\n      line-height: 1.5;\r\n    }\r\n\r\n    .srg-container {\r\n      max-width: 1200px;\r\n      margin: 0 auto;\r\n    }\r\n\r\n    \/* HEADER *\/\r\n    .srg-header {\r\n      text-align: center;\r\n      margin-bottom: 30px;\r\n    }\r\n    .srg-header h1 {\r\n      font-size: clamp(2rem, 5vw, 2.8rem);\r\n      font-weight: 900;\r\n      text-transform: uppercase;\r\n      letter-spacing: 1px;\r\n    }\r\n    .srg-header h1 span { color: var(--pink); }\r\n    .srg-header p { color: var(--text-muted); font-size: 1.1rem; margin-top: 5px; }\r\n\r\n    \/* FILTRES *\/\r\n    .srg-filters-card {\r\n      background: var(--panel-bg);\r\n      border: 1px solid var(--panel-border);\r\n      border-radius: 16px;\r\n      padding: 20px 25px;\r\n      margin-bottom: 30px;\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\r\n      gap: 20px;\r\n      align-items: end;\r\n    }\r\n\r\n    .srg-filter-group label {\r\n      display: block;\r\n      font-size: 0.88rem;\r\n      font-weight: 700;\r\n      color: var(--cyan);\r\n      margin-bottom: 8px;\r\n      text-transform: uppercase;\r\n    }\r\n\r\n    .srg-select, .srg-input {\r\n      width: 100%;\r\n      padding: 10px 14px;\r\n      background: rgba(9, 12, 21, 0.85);\r\n      border: 1px solid var(--panel-border);\r\n      border-radius: 8px;\r\n      color: #fff;\r\n      font-size: 0.95rem;\r\n      font-family: inherit;\r\n    }\r\n    .srg-select:focus, .srg-input:focus {\r\n      outline: none;\r\n      border-color: var(--pink);\r\n      box-shadow: 0 0 10px rgba(255, 79, 163, 0.25);\r\n    }\r\n\r\n    .srg-reset-btn {\r\n      background: rgba(255, 255, 255, 0.08);\r\n      border: 1px solid var(--panel-border);\r\n      color: var(--text-light);\r\n      padding: 10px 16px;\r\n      border-radius: 8px;\r\n      font-weight: 700;\r\n      cursor: pointer;\r\n      transition: all 0.2s;\r\n    }\r\n    .srg-reset-btn:hover {\r\n      background: var(--pink);\r\n      border-color: var(--pink);\r\n    }\r\n\r\n    \/* GRILLE DES \u00c9V\u00c9NEMENTS *\/\r\n    .srg-events-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\r\n      gap: 25px;\r\n      margin-bottom: 50px;\r\n    }\r\n\r\n    .srg-event-card {\r\n      background: var(--panel-bg);\r\n      border: 1px solid var(--panel-border);\r\n      border-radius: 16px;\r\n      padding: 20px;\r\n      display: flex;\r\n      flex-direction: column;\r\n      justify-content: space-between;\r\n      transition: transform 0.2s, box-shadow 0.2s;\r\n      position: relative;\r\n    }\r\n    .srg-event-card:hover {\r\n      transform: translateY(-4px);\r\n      box-shadow: 0 8px 24px rgba(124, 92, 255, 0.2);\r\n    }\r\n\r\n    .srg-badge-year {\r\n      position: absolute;\r\n      top: 18px;\r\n      right: 18px;\r\n      background: var(--purple);\r\n      color: #fff;\r\n      font-weight: 900;\r\n      padding: 4px 10px;\r\n      border-radius: 20px;\r\n      font-size: 0.8rem;\r\n    }\r\n\r\n    .srg-event-title {\r\n      font-size: 1.25rem;\r\n      font-weight: 900;\r\n      color: #fff;\r\n      margin-bottom: 10px;\r\n      padding-right: 50px;\r\n    }\r\n\r\n    .srg-event-meta {\r\n      font-size: 0.9rem;\r\n      color: var(--cyan);\r\n      font-weight: 700;\r\n      margin-bottom: 12px;\r\n      display: flex;\r\n      gap: 12px;\r\n      flex-wrap: wrap;\r\n    }\r\n\r\n    .srg-event-desc {\r\n      color: var(--text-muted);\r\n      font-size: 0.92rem;\r\n      line-height: 1.5;\r\n      margin-bottom: 18px;\r\n    }\r\n\r\n    .srg-card-actions {\r\n      display: flex;\r\n      gap: 10px;\r\n      justify-content: flex-end;\r\n    }\r\n\r\n    .srg-edit-btn {\r\n      background: rgba(0, 240, 255, 0.15);\r\n      border: 1px solid var(--cyan);\r\n      color: var(--cyan);\r\n      padding: 6px 12px;\r\n      border-radius: 6px;\r\n      font-size: 0.8rem;\r\n      font-weight: 900;\r\n      cursor: pointer;\r\n      transition: all 0.2s;\r\n    }\r\n    .srg-edit-btn:hover {\r\n      background: var(--cyan);\r\n      color: #090c15;\r\n    }\r\n\r\n    .srg-delete-btn {\r\n      background: rgba(239, 68, 68, 0.15);\r\n      border: 1px solid var(--red);\r\n      color: var(--red);\r\n      padding: 6px 12px;\r\n      border-radius: 6px;\r\n      font-size: 0.8rem;\r\n      font-weight: 900;\r\n      cursor: pointer;\r\n      transition: all 0.2s;\r\n    }\r\n    .srg-delete-btn:hover {\r\n      background: var(--red);\r\n      color: #fff;\r\n    }\r\n\r\n    .srg-empty-msg {\r\n      grid-column: 1 \/ -1;\r\n      text-align: center;\r\n      padding: 40px;\r\n      background: var(--panel-bg);\r\n      border-radius: 16px;\r\n      border: 1px dashed var(--panel-border);\r\n      color: var(--text-muted);\r\n    }\r\n\r\n    \/* FORMULAIRE D'AJOUT ET MODAL *\/\r\n    .srg-add-card {\r\n      background: var(--panel-bg);\r\n      border: 1px solid var(--panel-border);\r\n      border-radius: 16px;\r\n      padding: 30px;\r\n      max-width: 800px;\r\n      margin: 0 auto;\r\n    }\r\n    .srg-add-card h2 {\r\n      font-size: 1.5rem;\r\n      color: #fff;\r\n      font-weight: 900;\r\n      margin-bottom: 20px;\r\n      text-transform: uppercase;\r\n      border-bottom: 1px solid rgba(255, 255, 255, 0.1);\r\n      padding-bottom: 10px;\r\n    }\r\n\r\n    .srg-form-grid {\r\n      display: grid;\r\n      grid-template-columns: 1fr 1fr;\r\n      gap: 18px;\r\n    }\r\n    @media (max-width: 650px) {\r\n      .srg-form-grid { grid-template-columns: 1fr; }\r\n    }\r\n\r\n    .srg-form-full { grid-column: 1 \/ -1; }\r\n\r\n    .srg-add-card label, .srg-modal label {\r\n      display: block;\r\n      font-size: 0.88rem;\r\n      font-weight: 700;\r\n      margin-bottom: 6px;\r\n    }\r\n    .srg-add-card label span, .srg-modal label span { color: var(--pink); }\r\n\r\n    .srg-submit-btn {\r\n      width: 100%;\r\n      padding: 14px;\r\n      background: linear-gradient(135deg, var(--purple), #5c40dc);\r\n      border: none;\r\n      border-radius: 10px;\r\n      color: #fff;\r\n      font-size: 1rem;\r\n      font-weight: 900;\r\n      cursor: pointer;\r\n      transition: all 0.25s;\r\n      margin-top: 10px;\r\n    }\r\n    .srg-submit-btn:hover {\r\n      background: linear-gradient(135deg, var(--pink), #e0328b);\r\n      transform: translateY(-2px);\r\n    }\r\n\r\n    .srg-alert {\r\n      margin-top: 15px;\r\n      padding: 12px;\r\n      border-radius: 8px;\r\n      font-weight: bold;\r\n      text-align: center;\r\n      display: none;\r\n    }\r\n    .srg-alert.success { background: rgba(16, 185, 129, 0.2); color: var(--green); }\r\n    .srg-alert.error { background: rgba(239, 68, 68, 0.2); color: var(--red); }\r\n\r\n    \/* MODALE DE MODIFICATION *\/\r\n    .srg-modal-overlay {\r\n      position: fixed;\r\n      top: 0; left: 0; right: 0; bottom: 0;\r\n      background: rgba(9, 12, 21, 0.85);\r\n      backdrop-filter: blur(5px);\r\n      display: none;\r\n      align-items: center;\r\n      justify-content: center;\r\n      z-index: 9999;\r\n      padding: 15px;\r\n    }\r\n    .srg-modal {\r\n      background: var(--bg-dark);\r\n      border: 1px solid var(--panel-border);\r\n      border-radius: 18px;\r\n      padding: 30px;\r\n      width: 100%;\r\n      max-width: 700px;\r\n      position: relative;\r\n      box-shadow: 0 10px 30px rgba(0,0,0,0.5);\r\n    }\r\n    .srg-modal-close {\r\n      position: absolute;\r\n      top: 18px; right: 20px;\r\n      background: none;\r\n      border: none;\r\n      color: var(--text-muted);\r\n      font-size: 1.5rem;\r\n      cursor: pointer;\r\n    }\r\n    .srg-modal-close:hover { color: #fff; }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <div class=\"srg-container\">\r\n\r\n    <!-- HEADER -->\r\n    <header class=\"srg-header\">\r\n      <h1>Archives des <span>Animations<\/span><\/h1>\r\n      <p>Consultez et g\u00e9rez l'historique de vos \u00e9v\u00e9nements<\/p>\r\n    <\/header>\r\n\r\n    <!-- BARRE DE FILTRES -->\r\n    <section class=\"srg-filters-card\">\r\n      <div class=\"srg-filter-group\">\r\n        <label for=\"filter-city\">Filtrer par Ville<\/label>\r\n        <select id=\"filter-city\" class=\"srg-select\">\r\n          <option value=\"ALL\">Toutes les villes<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"srg-filter-group\">\r\n        <label for=\"filter-venue\">Filtrer par Lieu<\/label>\r\n        <select id=\"filter-venue\" class=\"srg-select\">\r\n          <option value=\"ALL\">Tous les lieux<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div class=\"srg-filter-group\">\r\n        <label for=\"filter-year\">Filtrer par Ann\u00e9e<\/label>\r\n        <select id=\"filter-year\" class=\"srg-select\">\r\n          <option value=\"ALL\">Toutes les ann\u00e9es<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <div>\r\n        <button id=\"reset-filters\" class=\"srg-reset-btn\">R\u00e9initialiser les filtres<\/button>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <!-- LISTE DES \u00c9V\u00c9NEMENTS -->\r\n    <main id=\"events-grid\" class=\"srg-events-grid\"><\/main>\r\n\r\n    <!-- FORMULAIRE D'AJOUT S\u00c9CURIS\u00c9 -->\r\n    <section class=\"srg-add-card\">\r\n      <h2>Ajouter un \u00e9v\u00e9nement<\/h2>\r\n      <form id=\"add-event-form\">\r\n        <div class=\"srg-form-grid\">\r\n\r\n          <div class=\"srg-form-group srg-form-full\">\r\n            <label for=\"title\">Nom de l'animation \/ festival <span>*<\/span><\/label>\r\n            <input type=\"text\" id=\"title\" class=\"srg-input\" placeholder=\"ex: Savoie Games Festival\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"city\">Ville <span>*<\/span><\/label>\r\n            <input type=\"text\" id=\"city\" class=\"srg-input\" placeholder=\"ex: Seynod\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"venue\">Lieu \/ Salle <span>*<\/span><\/label>\r\n            <input type=\"text\" id=\"venue\" class=\"srg-input\" placeholder=\"ex: Cap P\u00e9riaz\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"year\">Ann\u00e9e <span>*<\/span><\/label>\r\n            <input type=\"number\" id=\"year\" class=\"srg-input\" min=\"2018\" max=\"2030\" value=\"2026\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"passcode\">Code de validation Admin <span>*<\/span><\/label>\r\n            <input type=\"password\" id=\"passcode\" class=\"srg-input\" placeholder=\"Code secret\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group srg-form-full\">\r\n            <label for=\"description\">Description de l'\u00e9v\u00e9nement<\/label>\r\n            <textarea id=\"description\" class=\"srg-input\" rows=\"3\" placeholder=\"Machines pr\u00e9sent\u00e9es, tournois, invit\u00e9s...\"><\/textarea>\r\n          <\/div>\r\n\r\n        <\/div>\r\n\r\n        <button type=\"submit\" class=\"srg-submit-btn\">Valider et Publier l'\u00c9v\u00e9nement<\/button>\r\n        <div id=\"form-alert\" class=\"srg-alert\"><\/div>\r\n      <\/form>\r\n    <\/section>\r\n\r\n  <\/div>\r\n\r\n  <!-- MODALE DE MODIFICATION -->\r\n  <div id=\"edit-modal\" class=\"srg-modal-overlay\">\r\n    <div class=\"srg-modal\">\r\n      <button class=\"srg-modal-close\" onclick=\"closeEditModal()\">&times;<\/button>\r\n      <h2 style=\"font-size: 1.4rem; color: #fff; margin-bottom: 20px; text-transform: uppercase;\">Modifier l'\u00e9v\u00e9nement<\/h2>\r\n      \r\n      <form id=\"edit-event-form\">\r\n        <input type=\"hidden\" id=\"edit-id\">\r\n\r\n        <div class=\"srg-form-grid\">\r\n          <div class=\"srg-form-group srg-form-full\">\r\n            <label for=\"edit-title\">Nom de l'animation <span>*<\/span><\/label>\r\n            <input type=\"text\" id=\"edit-title\" class=\"srg-input\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"edit-city\">Ville <span>*<\/span><\/label>\r\n            <input type=\"text\" id=\"edit-city\" class=\"srg-input\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"edit-venue\">Lieu <span>*<\/span><\/label>\r\n            <input type=\"text\" id=\"edit-venue\" class=\"srg-input\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"edit-year\">Ann\u00e9e <span>*<\/span><\/label>\r\n            <input type=\"number\" id=\"edit-year\" class=\"srg-input\" min=\"2018\" max=\"2030\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group\">\r\n            <label for=\"edit-passcode\">Code Admin <span>*<\/span><\/label>\r\n            <input type=\"password\" id=\"edit-passcode\" class=\"srg-input\" placeholder=\"Code secret\" required>\r\n          <\/div>\r\n\r\n          <div class=\"srg-form-group srg-form-full\">\r\n            <label for=\"edit-description\">Description<\/label>\r\n            <textarea id=\"edit-description\" class=\"srg-input\" rows=\"3\"><\/textarea>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <button type=\"submit\" class=\"srg-submit-btn\" style=\"margin-top: 20px;\">Enregistrer les modifications<\/button>\r\n        <div id=\"edit-form-alert\" class=\"srg-alert\"><\/div>\r\n      <\/form>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <script>\r\n    document.addEventListener(\"DOMContentLoaded\", function() {\r\n\r\n      \/\/ CODE DE VALIDATION ADMIN\r\n      const VALIDATION_CODE = \"SRG2026\";\r\n\r\n      let events = JSON.parse(localStorage.getItem('srg_events_db')) || [];\r\n\r\n      const filterCity = document.getElementById('filter-city');\r\n      const filterVenue = document.getElementById('filter-venue');\r\n      const filterYear = document.getElementById('filter-year');\r\n      const resetBtn = document.getElementById('reset-filters');\r\n      const eventsGrid = document.getElementById('events-grid');\r\n      const addForm = document.getElementById('add-event-form');\r\n      const formAlert = document.getElementById('form-alert');\r\n\r\n      const editModal = document.getElementById('edit-modal');\r\n      const editForm = document.getElementById('edit-event-form');\r\n      const editAlert = document.getElementById('edit-form-alert');\r\n\r\n      function populateFilterOptions() {\r\n        const currentCity = filterCity.value;\r\n        const currentVenue = filterVenue.value;\r\n        const currentYear = filterYear.value;\r\n\r\n        const cities = [...new Set(events.map(e => e.city))].sort();\r\n        const venues = [...new Set(events.map(e => e.venue))].sort();\r\n        const years = [...new Set(events.map(e => e.year))].sort((a,b) => b - a);\r\n\r\n        filterCity.innerHTML = '<option value=\"ALL\">Toutes les villes<\/option>' + \r\n          cities.map(c => `<option value=\"${c}\">${c}<\/option>`).join('');\r\n\r\n        filterVenue.innerHTML = '<option value=\"ALL\">Tous les lieux<\/option>' + \r\n          venues.map(v => `<option value=\"${v}\">${v}<\/option>`).join('');\r\n\r\n        filterYear.innerHTML = '<option value=\"ALL\">Toutes les ann\u00e9es<\/option>' + \r\n          years.map(y => `<option value=\"${y}\">${y}<\/option>`).join('');\r\n\r\n        filterCity.value = cities.includes(currentCity) ? currentCity : 'ALL';\r\n        filterVenue.value = venues.includes(currentVenue) ? currentVenue : 'ALL';\r\n        filterYear.value = years.includes(parseInt(currentYear)) || years.includes(currentYear) ? currentYear : 'ALL';\r\n      }\r\n\r\n      function renderEvents() {\r\n        const selectedCity = filterCity.value;\r\n        const selectedVenue = filterVenue.value;\r\n        const selectedYear = filterYear.value;\r\n\r\n        const filtered = events.filter(e => {\r\n          const matchCity = (selectedCity === 'ALL' || e.city === selectedCity);\r\n          const matchVenue = (selectedVenue === 'ALL' || e.venue === selectedVenue);\r\n          const matchYear = (selectedYear === 'ALL' || e.year.toString() === selectedYear);\r\n          return matchCity && matchVenue && matchYear;\r\n        });\r\n\r\n        filtered.sort((a, b) => b.year - a.year);\r\n\r\n        if (filtered.length === 0) {\r\n          eventsGrid.innerHTML = `\r\n            <div class=\"srg-empty-msg\">\r\n              <h3>Aucune animation enregistr\u00e9e ou ne correspond \u00e0 vos filtres.<\/h3>\r\n              <p>Utilisez le formulaire ci-dessous pour ajouter vos \u00e9v\u00e9nements.<\/p>\r\n            <\/div>`;\r\n          return;\r\n        }\r\n\r\n        eventsGrid.innerHTML = filtered.map(e => `\r\n          <article class=\"srg-event-card\" data-id=\"${e.id}\">\r\n            <span class=\"srg-badge-year\">${e.year}<\/span>\r\n            <div>\r\n              <h3 class=\"srg-event-title\">${e.title}<\/h3>\r\n              <div class=\"srg-event-meta\">\r\n                <span>\ud83d\udccd ${e.city}<\/span>\r\n                <span>\ud83c\udfdb\ufe0f ${e.venue}<\/span>\r\n              <\/div>\r\n              <p class=\"srg-event-desc\">${e.description || 'Aucune description fournie.'}<\/p>\r\n            <\/div>\r\n            <div class=\"srg-card-actions\">\r\n              <button class=\"srg-edit-btn\" onclick=\"openEditModal(${e.id})\">\u270f\ufe0f Modifier<\/button>\r\n              <button class=\"srg-delete-btn\" onclick=\"deleteEvent(${e.id})\">\ud83d\uddd1\ufe0f Supprimer<\/button>\r\n            <\/div>\r\n          <\/article>\r\n        `).join('');\r\n      }\r\n\r\n      \/\/ OUVRIR LA MODALE DE MODIFICATION\r\n      window.openEditModal = function(id) {\r\n        const item = events.find(e => e.id === id);\r\n        if (!item) return;\r\n\r\n        document.getElementById('edit-id').value = item.id;\r\n        document.getElementById('edit-title').value = item.title;\r\n        document.getElementById('edit-city').value = item.city;\r\n        document.getElementById('edit-venue').value = item.venue;\r\n        document.getElementById('edit-year').value = item.year;\r\n        document.getElementById('edit-description').value = item.description;\r\n        document.getElementById('edit-passcode').value = '';\r\n        editAlert.style.display = 'none';\r\n\r\n        editModal.style.display = 'flex';\r\n      };\r\n\r\n      window.closeEditModal = function() {\r\n        editModal.style.display = 'none';\r\n      };\r\n\r\n      \/\/ REGISTRER LES MODIFICATIONS\r\n      editForm.addEventListener('submit', function(e) {\r\n        e.preventDefault();\r\n\r\n        const inputCode = document.getElementById('edit-passcode').value.trim();\r\n\r\n        if (inputCode !== VALIDATION_CODE) {\r\n          editAlert.className = \"srg-alert error\";\r\n          editAlert.style.display = \"block\";\r\n          editAlert.textContent = \"Code de validation incorrect !\";\r\n          return;\r\n        }\r\n\r\n        const id = parseInt(document.getElementById('edit-id').value);\r\n        const index = events.findIndex(e => e.id === id);\r\n\r\n        if (index !== -1) {\r\n          events[index] = {\r\n            id: id,\r\n            title: document.getElementById('edit-title').value.trim(),\r\n            city: document.getElementById('edit-city').value.trim(),\r\n            venue: document.getElementById('edit-venue').value.trim(),\r\n            year: parseInt(document.getElementById('edit-year').value),\r\n            description: document.getElementById('edit-description').value.trim()\r\n          };\r\n\r\n          localStorage.setItem('srg_events_db', JSON.stringify(events));\r\n          populateFilterOptions();\r\n          renderEvents();\r\n          closeEditModal();\r\n        }\r\n      });\r\n\r\n      \/\/ SUPPRESSION\r\n      window.deleteEvent = function(eventId) {\r\n        const inputCode = prompt(\"Saisissez le code de validation Admin pour supprimer cet \u00e9v\u00e9nement :\");\r\n        if (inputCode === null) return;\r\n\r\n        if (inputCode.trim() === VALIDATION_CODE) {\r\n          events = events.filter(e => e.id !== eventId);\r\n          localStorage.setItem('srg_events_db', JSON.stringify(events));\r\n          populateFilterOptions();\r\n          renderEvents();\r\n          alert(\"L'\u00e9v\u00e9nement a bien \u00e9t\u00e9 supprim\u00e9.\");\r\n        } else {\r\n          alert(\"Code de validation incorrect ! Suppression annul\u00e9e.\");\r\n        }\r\n      };\r\n\r\n      filterCity.addEventListener('change', renderEvents);\r\n      filterVenue.addEventListener('change', renderEvents);\r\n      filterYear.addEventListener('change', renderEvents);\r\n\r\n      resetBtn.addEventListener('click', function() {\r\n        filterCity.value = 'ALL';\r\n        filterVenue.value = 'ALL';\r\n        filterYear.value = 'ALL';\r\n        renderEvents();\r\n      });\r\n\r\n      \/\/ AJOUT\r\n      addForm.addEventListener('submit', function(e) {\r\n        e.preventDefault();\r\n\r\n        const inputCode = document.getElementById('passcode').value.trim();\r\n\r\n        if (inputCode !== VALIDATION_CODE) {\r\n          formAlert.className = \"srg-alert error\";\r\n          formAlert.style.display = \"block\";\r\n          formAlert.textContent = \"Code de validation incorrect ! L'\u00e9v\u00e9nement n'a pas \u00e9t\u00e9 ajout\u00e9.\";\r\n          return;\r\n        }\r\n\r\n        const newEvent = {\r\n          id: Date.now(),\r\n          title: document.getElementById('title').value.trim(),\r\n          city: document.getElementById('city').value.trim(),\r\n          venue: document.getElementById('venue').value.trim(),\r\n          year: parseInt(document.getElementById('year').value),\r\n          description: document.getElementById('description').value.trim()\r\n        };\r\n\r\n        events.push(newEvent);\r\n        localStorage.setItem('srg_events_db', JSON.stringify(events));\r\n\r\n        populateFilterOptions();\r\n        renderEvents();\r\n\r\n        formAlert.className = \"srg-alert success\";\r\n        formAlert.style.display = \"block\";\r\n        formAlert.textContent = \"L'\u00e9v\u00e9nement a \u00e9t\u00e9 valid\u00e9 et publi\u00e9 avec succ\u00e8s !\";\r\n\r\n        addForm.reset();\r\n        document.getElementById('year').value = \"2026\";\r\n\r\n        setTimeout(() => {\r\n          formAlert.style.display = \"none\";\r\n        }, 4000);\r\n      });\r\n\r\n      populateFilterOptions();\r\n      renderEvents();\r\n    });\r\n  <\/script>\r\n\r\n<\/body>\r\n<\/html><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p> [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width-page.php","meta":{"footnotes":""},"class_list":["post-1065","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/pages\/1065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/comments?post=1065"}],"version-history":[{"count":12,"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/pages\/1065\/revisions"}],"predecessor-version":[{"id":1469,"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/pages\/1065\/revisions\/1469"}],"wp:attachment":[{"href":"https:\/\/savoieretrogames.fr\/index.php\/wp-json\/wp\/v2\/media?parent=1065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}