{"id":9,"date":"2025-10-29T10:40:53","date_gmt":"2025-10-29T09:40:53","guid":{"rendered":"https:\/\/cftc92.org\/sitehandicap\/?page_id=9"},"modified":"2025-10-29T10:47:36","modified_gmt":"2025-10-29T09:47:36","slug":"rencontrez-notre-referente-handicap","status":"publish","type":"page","link":"https:\/\/cftc92.org\/sitehandicap\/","title":{"rendered":"Rencontrez notre r\u00e9f\u00e9rente Handicap"},"content":{"rendered":"\n<p>Rencontrez notre r\u00e9f\u00e9rente handicap \u00e0 l&rsquo;UD92 de la CFTC &#8211; 61 Jardins Boieldieu, 92800 Puteaux (La D\u00e9fense)<\/p>\n\n\n    <div id=\"apm_calendar_wrapper\">\r\n        <div class=\"apm-nav\">\r\n            <button id=\"apm_prev_month\">\u25c0 Mois pr\u00e9c\u00e9dent<\/button>\r\n            <h3 id=\"apm_month_label\" style=\"margin:0;\"><\/h3>\r\n            <button id=\"apm_next_month\">Mois suivant \u25b6<\/button>\r\n        <\/div>\r\n        <div id=\"apm_calendar\"><\/div>\r\n        <div id=\"apm_slots_list\" style=\"margin-top:16px;\"><\/div>\r\n    <\/div>\r\n\r\n    <script type=\"text\/javascript\">\r\n    jQuery(function($){\r\n        let current = new Date();\r\n\r\n        \/\/ Convertit une Date JS locale en 'YYYY-MM-DD' (\u00e9vite toISOString UTC qui d\u00e9cale)\r\n        function toISODateLocal(d){\r\n            const y = d.getFullYear();\r\n            const m = ('0' + (d.getMonth() + 1)).slice(-2);\r\n            const day = ('0' + d.getDate()).slice(-2);\r\n            return `${y}-${m}-${day}`;\r\n        }\r\n\r\n        function renderMonth(){\r\n            const year = current.getFullYear();\r\n            const month = current.getMonth();\r\n            const first = new Date(year, month, 1);\r\n            const last = new Date(year, month + 1, 0);\r\n\r\n            \/\/ yesterday: toutes les dates <= yesterday sont gris\u00e9es (non r\u00e9servables)\r\n            let yesterday = new Date();\r\n            yesterday.setDate(yesterday.getDate() - 1);\r\n            yesterday.setHours(0,0,0,0);\r\n\r\n            $('#apm_month_label').text(first.toLocaleString('fr-FR', { month: 'long', year: 'numeric' }));\r\n            let html = '<table class=\"apm-calendar\"><thead><tr>';\r\n            const headers = ['Lun','Mar','Mer','Jeu','Ven','Sam','Dim'];\r\n            for (let h of headers) html += '<th>' + h + '<\/th>';\r\n            html += '<\/tr><\/thead><tbody><tr>';\r\n\r\n            let startPos = first.getDay(); if (startPos === 0) startPos = 7;\r\n            for (let i = 1; i < startPos; i++) html += '<td><\/td>';\r\n\r\n            for (let d = 1; d <= last.getDate(); d++) {\r\n                let dt = new Date(year, month, d);\r\n                let iso = toISODateLocal(dt);\r\n                let label = ('0' + d).slice(-2) + '\/' + ('0' + (month + 1)).slice(-2) + '\/' + year;\r\n                let isPast = dt <= yesterday;\r\n                html += '<td class=\"apm-day' + (isPast ? ' past' : '') + '\" data-date=\"' + iso + '\">' + label + '<\/td>';\r\n                if (dt.getDay() === 0) html += '<\/tr><tr>';\r\n            }\r\n            html += '<\/tr><\/tbody><\/table>';\r\n            $('#apm_calendar').html(html);\r\n\r\n            \/\/ pour chaque jour futur, demander \u00e0 PHP si au moins 1 cr\u00e9neau\r\n            $('#apm_calendar .apm-day').not('.past').each(function(){\r\n                const $td = $(this);\r\n                const date = $td.data('date');\r\n                $.post(\"https:\/\/cftc92.org\/sitehandicap\/wp-admin\/admin-ajax.php\", { action: 'apm_check_day_has_slots', date: date })\r\n                    .done(function(resp){ if (resp === '1') $td.addClass('has'); });\r\n            });\r\n        }\r\n\r\n        $(document).on('click', '#apm_calendar .apm-day.has', function(){\r\n            let date = $(this).data('date');\r\n            $('#apm_slots_list').html('<p>Chargement des cr\u00e9neaux\u2026<\/p>');\r\n            $.post(\"https:\/\/cftc92.org\/sitehandicap\/wp-admin\/admin-ajax.php\", { action: 'apm_get_slots_for_day', date: date })\r\n                .done(function(html){\r\n                    $('#apm_slots_list').html(html);\r\n                    attachBookingHandler();\r\n                }).fail(function(){ $('#apm_slots_list').html('<p>Erreur.<\/p>'); });\r\n        });\r\n\r\n        $('#apm_prev_month').on('click', function(){ current.setMonth(current.getMonth() - 1); renderMonth(); });\r\n        $('#apm_next_month').on('click', function(){ current.setMonth(current.getMonth() + 1); renderMonth(); });\r\n\r\n        function attachBookingHandler(){\r\n            $('.apm-book-btn').off('click').on('click', function(){\r\n                const date = $(this).data('date');\r\n                const start = $(this).data('start');\r\n                const end = $(this).data('end');\r\n                const formHtml = `\r\n                    <div class=\"apm-slot\">\r\n                        <h4>R\u00e9server le ${date.split('-').reverse().join('\/')} \u2014 ${start} \u00e0 ${end}<\/h4>\r\n                        <form class=\"apm-form\" id=\"apm_booking_form\">\r\n                            <input type=\"hidden\" name=\"slot_date\" value=\"${date}\"\/>\r\n                            <input type=\"hidden\" name=\"start_time\" value=\"${start}\"\/>\r\n                            <input type=\"hidden\" name=\"end_time\" value=\"${end}\"\/>\r\n                            Nom: <input name=\"nom\" required \/><br\/>\r\n                            Pr\u00e9nom: <input name=\"prenom\" required \/><br\/>\r\n                            Email: <input name=\"email\" type=\"email\" required \/><br\/>\r\n                            T\u00e9l\u00e9phone: <input name=\"telephone\" required \/><br\/>\r\n                            R\u00e9sum\u00e9: <textarea name=\"resume\" required><\/textarea><br\/>\r\n                            <button type=\"submit\">R\u00e9server<\/button>\r\n                        <\/form>\r\n                    <\/div>\r\n                `;\r\n                $('#apm_slots_list').html(formHtml);\r\n\r\n                $('#apm_booking_form').on('submit', function(e){\r\n                    e.preventDefault();\r\n                    const data = $(this).serialize() + '&action=apm_do_booking';\r\n                    $.post(\"https:\/\/cftc92.org\/sitehandicap\/wp-admin\/admin-ajax.php\", data)\r\n                        .done(function(resp){\r\n                            if (resp.indexOf('Donn\u00e9es') === 0 || resp.indexOf('Erreur') === 0 || resp.indexOf('D\u00e9sol\u00e9') === 0) {\r\n                                alert(resp);\r\n                            } else {\r\n                                $('#apm_slots_list').html('<div class=\"updated\">' + resp + '<\/div>');\r\n                                renderMonth();\r\n                            }\r\n                        }).fail(function(){ alert('Erreur r\u00e9seau.'); });\r\n                });\r\n            });\r\n        }\r\n\r\n        renderMonth();\r\n    });\r\n    <\/script>\r\n    \n","protected":false},"excerpt":{"rendered":"<p>Rencontrez notre r\u00e9f\u00e9rente handicap \u00e0 l&rsquo;UD92 de la CFTC &#8211; 61 Jardins Boieldieu, 92800 Puteaux (La D\u00e9fense)<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/pages\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":4,"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/pages\/9\/revisions"}],"predecessor-version":[{"id":17,"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/pages\/9\/revisions\/17"}],"wp:attachment":[{"href":"https:\/\/cftc92.org\/sitehandicap\/wp-json\/wp\/v2\/media?parent=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}