Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /share/CACHEDEV1_DATA/Web/dev.rencontresmarches2027.fr/www/app/_config.php on line 50

Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /share/CACHEDEV1_DATA/Web/dev.rencontresmarches2027.fr/www/app/_config.php on line 50

Warning: Cannot modify header information - headers already sent by (output started at /share/CACHEDEV1_DATA/Web/dev.rencontresmarches2027.fr/www/app/_config.php:50) in /share/CACHEDEV1_DATA/Web/dev.rencontresmarches2027.fr/www/app/js/admin/myevent_core.php on line 7
const C_Q_SAVE = 'Save changes before exiting ?'; const C_DONTSAVE = 'Don\'t save'; const C_SAVE = 'Save'; const my_event_app = { init() { $(document).on('click', '.page_prev, .page_next', function () { let increment = $(this).hasClass('page_prev') ? -1 : 1; $('body').data('app_pagen', parseInt($('body').data('app_pagen')) + increment); my_event_app.refresh(); }); $(document).on('keydown', function (e) { if ($('input:focus').length && [37, 39].includes(e.keyCode)) return; switch (e.keyCode) { case 37: // Flèche gauche case 39: // Flèche droite $(`.page_${e.keyCode === 37 ? 'prev' : 'next'}:not(.disabled)`).trigger('click'); break; case 27: // Échap e.preventDefault(); if ($('#myevent_modal').is(':visible')) { let $datetimepicker = $('.bootstrap-datetimepicker-widget:visible'); $datetimepicker.length ? $datetimepicker.hide() : false; if ($('#myevent_modal').find('.pm_close.btn-close').length) { $('#myevent_modal').find('.pm_close.btn-close').trigger('click'); } } else { $('.close.cancel_form, .cancel_config:visible:not(:disabled)').first().trigger('click'); } break; } }); $(document).on('click', '.cancel_form, #navbar_event .pf_menu', function (e) { e.preventDefault(); if ($(this).hasClass('pf_menu')) { $('body').data('app_redirect', $(this).attr('href')); } $('body').data('app_update') != 0 ? alertModal('Attention', C_Q_SAVE, { btn1: { aspect: "outline-cancel", action: "dontsave", text: C_DONTSAVE }, btn2: { aspect: "event", action: "save", text: C_SAVE } }) : my_event_app.LoadPage($('body').data('app_redirect') ?? document.URL, $('body').data('app_redirect') ? true : false); }); $(document).on('input', '#search_query', function () { my_event_app.refresh(); }); $(document).on('click', '#dd_search_filter li a', function () { let $this = $(this); $this.addClass('active').parent().siblings().find('a').removeClass('active'); $this.closest('.dropdown-menu').prev('button').text($this.text()); $('#search_filter').val($this.data('ddselect')); $('#search_query').trigger('input'); }); $(document).on('click', 'a[data-action]:not(#myevent_modal *), button[data-action]:not(#myevent_modal *)', function () { let action = $(this).data('action'); let page = $('body').data('page'); $('#cardloading').is(':visible') || $('#cardloading').show().css('display', 'flex'); switch (action) { case 'add': case 'edit': let params = action === 'edit' ? { id: $(this).closest('tr').data('id'), token: $(this).closest('tr').data('token'), action } : { action }; $(`#${page}_content`).load(`${document.URL}form/`, params, function () { $(this).toggleClass('card_form card_list'); $('.tohide').hide(); }); break; case 'delete': let dparams = { id: $(this).closest('tr').data('id'), token: $(this).closest('tr').data('token'), action }; $('#myevent_modal').data({ id: $(this).closest('tr').data('id'), token: $(this).closest('tr').data('token'), }); $.ajax({ type: "POST", url: `${document.URL}action/`, data: dparams, dataType: 'json', success: function (r) { console.log(r); $('#cardloading').hide(); alertModal(r.modal.title, r.modal.message, r.modal.buttons, r.modal.close || false); } }); break; } }); /* $(document).on('click', '.dd_config_modules .dropdown-item', function () { let tr = $(this).closest('tr'); let url = `${document.URL}${tr.data('id')}/${tr.data('token')}/config/${$(this).data('module')}/`; my_event_app.LoadPage(url, true); }) */ $(document).on('click', '#myevent_modal button[data-action]', function () { let action = $(this).data('action'); let redirect = $('body').data('app_redirect') || false; switch (action) { case 'reloadapp': case 'dontsave': my_event_app.LoadPage(redirect || `${document.URL}`, redirect); break; case 'save': $('.app_form').trigger('submit'); break; case 'delete_confirm': let dparams = { id: $('#myevent_modal').data('id'), token: $('#myevent_modal').data('token'), action }; $.ajax({ type: "POST", url: `${document.URL}action/`, data: dparams, dataType: 'json', success: function (r) { if (r.status === 'success') { my_event_app.LoadPage(`${document.URL}`); } else { alertModal(r.modal.title, r.modal.message, r.modal.buttons, r.modal.close || false); } } }); break; } }) $(document).on('click', '.dropdown_form li a', function () { let $dropdown = $(this).closest('.dropdown_form'), $input = $dropdown.next('input'); $dropdown.next('.is-invalid').removeClass('is-invalid').next('.invalid-feedback').remove(); $dropdown.find('a').removeClass('active'); $(this).addClass('active'); $dropdown.find('button').addClass('ddselected').text($(this).text()); $input.val($(this).data('ddselect')).trigger('change'); }); $(document).on('input change', ".app_form input", function () { $(this).removeClass('is-invalid').next('.invalid-feedback').remove(); $('body').data('app_update', 1); }); $(document).on('submit', ".app_form", function () { let $form = $(this); let p = new FormData(this); let page = $('body').data('page'); let form_params = $(this).data(); $('#cardloading').is(':visible') || $('#cardloading').show().css('display', 'flex'); $form.find('.is-invalid').removeClass('is-invalid').next('.invalid-feedback').remove(); Object.entries(form_params).forEach(([k, v]) => p.append(k, v)); $form.find('input, select, textarea').each(function () { let $input = $(this); let name = $input.attr('name'); if (!$input.attr('name')) return; // ignore si pas de name if ($input.is(':checkbox')) { // Regrouper toutes les checkbox du même name let values = $form.find(`input[name="${name}"]:checked`).map(function () { return this.value; }).get().join(','); // Supprime l'ancienne entrée si elle existait p.delete(name); p.append(name, values); } else if ($input.is(':radio')) { if ($input.is(':checked')) { p.set(name, $input.val()); } } else { p.set(name, $input.val()); } }); $.ajax({ type: "POST", url: `/admin/${page}/action/`, data: p, processData: false, contentType: false, dataType: 'json', success: function (r) { if (r.status === 'error') { $('body').removeData('app_redirect'); console.log(r); if (r.errors || r.modal) { $('#cardloading').hide(); if (r.errors) { console.log('ici'); if (!r.errors) myEventModal.hide(); $.each(r.errors, (k, v) => { $form.find(`[name="me\\[${k}\\]"]`).addClass('is-invalid') .after(`
${v}
`); }); } if (r.modal) { alertModal(r.modal.title, r.modal.message, r.modal.buttons, r.modal.close || false) } } } else { my_event_app.LoadPage($('body').data('app_redirect') ?? document.URL); } } }); }); $(document).on("shown.bs.dropdown", function (event) { if (typeof ($(event.target).data('bsConfig')) === 'undefined') return; let menu = event.target.nextElementSibling; let buttonWidth = event.target.offsetWidth; menu.style.width = buttonWidth + "px"; }); my_event_app.refresh() }, LoadPage(page, newnav = false) { $('#mainloading').is(':visible') || $('#mainloading').show(); newnav ? location = page : location.replace(page); }, refresh() { $('#cardloading').is(':visible') || $('#cardloading').show().css('display', 'flex'); if ($('.filter_tool').is(':visible')) { $('body').data({ 'app_filter': $('#search_filter').val(), 'app_search': $('#search_query').val() }); } let params = Object.assign({}, $('body').data()); $.post(`${document.URL}app/`, params, function (r) { let res; try { res = JSON.parse(r); if (res.status === 'error') return location.replace('/admin/'); } catch (e) { $('#' + $('body').data('page') + '_content').html(r); $('body').data({ 'app_update': 0 }); } my_event_app.pagination?.(); $('#mainloading').is(':visible') && $('#mainloading').hide(); }); }, pagination() { let pagContainer = $('#pagination_container'), pages = +$('body').data('app_pages'), currentPage = +$('body').data('app_pagen'); pagContainer.toggle(pages > 1).css('display', pages > 1 ? 'flex' : 'none'); $('a.page_prev').toggleClass('disabled', currentPage === 0); $('a.page_next').toggleClass('disabled', currentPage + 1 === pages); }, formDataToJson(formData) { let object = {}; formData.forEach((value, key) => { // Traitement des tableaux et objets imbriqués let keys = key.split('[').map(k => k.replace(']', '')); // Décomposer les clés comme 'array[subkey]' en tableau let currentObject = object; keys.forEach((part, index) => { if (index === keys.length - 1) { // Dernière clé, on assigne la valeur if (currentObject[part] === undefined) { currentObject[part] = value; } else if (Array.isArray(currentObject[part])) { currentObject[part].push(value); } else { currentObject[part] = [currentObject[part], value]; } } else { // Crée des objets si nécessaire if (!currentObject[part]) { currentObject[part] = isNaN(keys[index + 1]) ? {} : []; } currentObject = currentObject[part]; } }); }); return JSON.stringify(object); } } my_event_app.init();