Refactor event management system to transition from mobile to gestion

This commit updates the event management system by replacing references to mobile inscriptions with gestion inscriptions. It includes changes to AJAX endpoints, helper functions, and UI elements to reflect this transition. The updates enhance the overall structure and maintainability of the codebase while ensuring that user access and permissions are properly managed for the new gestion interface.
This commit is contained in:
2026-06-27 12:10:19 -04:00
parent 9acc8102e8
commit 8f428a5c18
16 changed files with 619 additions and 576 deletions

View File

@ -1,13 +1,13 @@
<?php <?php
/** /**
* Actions AJAX reservees a la fiche inscriptions mobile (v2). * Actions AJAX reservees a la fiche de gestion des inscriptions (v2).
* N'altere pas ajax_promoteur.php ni enregistrer.php (legacy promoteur). * N'altere pas ajax_promoteur.php ni enregistrer.php (legacy promoteur).
*/ */
session_start(); session_start();
require_once 'php/inc_fonctions.php'; require_once 'php/inc_fonctions.php';
require_once 'php/inc_fx_promoteur.php'; require_once 'php/inc_fx_promoteur.php';
require_once 'php/inc_fx_inscriptions_mobile.php'; require_once 'php/inc_fx_inscriptions_gestion.php';
header('Content-Type: application/json; charset=utf-8'); header('Content-Type: application/json; charset=utf-8');
@ -31,7 +31,7 @@ switch ($strAction) {
$strStatut = trim((string)($_REQUEST['par_statut_course'] ?? '')); $strStatut = trim((string)($_REQUEST['par_statut_course'] ?? ''));
$intEveId = fxEveAccesResolveEveIdFromParId($intParId); $intEveId = fxEveAccesResolveEveIdFromParId($intParId);
if ($intEveId <= 0 || !fxInscrMobileCanDo($intComId, $intEveId, 'inscriptions_gestion.statut_edit')) { if ($intEveId <= 0 || !fxInscrGestionCanDo($intComId, $intEveId, 'inscriptions_gestion.statut_edit')) {
$tabRetour = array('state' => 'error', 'message' => 'unauthorized'); $tabRetour = array('state' => 'error', 'message' => 'unauthorized');
break; break;
} }
@ -59,7 +59,7 @@ switch ($strAction) {
// L'eve_id fait foi cote serveur (jamais le client) pour le controle d'acces a l'evenement. // L'eve_id fait foi cote serveur (jamais le client) pour le controle d'acces a l'evenement.
$intEveId = intval($recCommandes['eve_id']); $intEveId = intval($recCommandes['eve_id']);
if ($intEveId <= 0 || !fxInscrMobileCanDo($intComId, $intEveId, 'inscriptions_gestion.refund')) { if ($intEveId <= 0 || !fxInscrGestionCanDo($intComId, $intEveId, 'inscriptions_gestion.refund')) {
$tabRetour = array('state' => 'error', 'message' => 'unauthorized'); $tabRetour = array('state' => 'error', 'message' => 'unauthorized');
break; break;
} }

View File

@ -3,7 +3,7 @@
session_start(); session_start();
require_once 'php/inc_fonctions.php'; require_once 'php/inc_fonctions.php';
require_once 'php/inc_fx_inscriptions_mobile.php'; require_once 'php/inc_fx_inscriptions_gestion.php';
global $vDomaine; global $vDomaine;
@ -18,17 +18,17 @@ $vtexte_page = obtenirTextepage($vPage, $strLangue, 2);
header('Content-Type: application/json; charset=utf-8'); header('Content-Type: application/json; charset=utf-8');
if (!isset($_SESSION['com_id'])) { if (!isset($_SESSION['com_id'])) {
echo json_encode(array('state' => 'error', 'message' => fxInscrMobileT('inscr_mobile_qr_invalid'))); echo json_encode(array('state' => 'error', 'message' => fxInscrGestionT('inscr_gestion_qr_invalid')));
exit; exit;
} }
$intEveId = 0; $intEveId = 0;
if (!empty($_REQUEST['promoteur_eve_id'])) { if (!empty($_REQUEST['promoteur_eve_id'])) {
$intEveId = fxInscrMobileParseEveId($_REQUEST['promoteur_eve_id']); $intEveId = fxInscrGestionParseEveId($_REQUEST['promoteur_eve_id']);
} }
if ($intEveId <= 0 || !fxInscrMobileCanScan($_SESSION['com_id'], $intEveId)) { if ($intEveId <= 0 || !fxInscrGestionCanScan($_SESSION['com_id'], $intEveId)) {
echo json_encode(array('state' => 'error', 'message' => fxInscrMobileT('inscr_mobile_qr_invalid'))); echo json_encode(array('state' => 'error', 'message' => fxInscrGestionT('inscr_gestion_qr_invalid')));
exit; exit;
} }
@ -39,4 +39,4 @@ if (!empty($_REQUEST['qr'])) {
$strRaw = $_REQUEST['t']; $strRaw = $_REQUEST['t'];
} }
echo json_encode(fxInscrMobileResolveQrScan($strRaw, $intEveId, $strLangue)); echo json_encode(fxInscrGestionResolveQrScan($strRaw, $intEveId, $strLangue));

View File

@ -21,7 +21,7 @@ require_once('php/inc_logs_course.php');
require_once('superadm/php/inc_fx_excell.php'); require_once('superadm/php/inc_fx_excell.php');
require_once('php/inc_fx_liste_attente.php'); require_once('php/inc_fx_liste_attente.php');
require_once('php/inc_fx_inscriptions_mobile.php'); require_once('php/inc_fx_inscriptions_gestion.php');
require_once('php/inc_fx_eve_acces.php'); require_once('php/inc_fx_eve_acces.php');
require_once('php/inc_fx_promoteur_hub.php'); require_once('php/inc_fx_promoteur_hub.php');
global $objDatabase, $vPage, $vDomaine; global $objDatabase, $vPage, $vDomaine;
@ -70,6 +70,17 @@ if ($strCode === 'compte_promoteur_hub' && (!isset($_SESSION['com_id']) || !fxPr
exit; exit;
} }
// Ancien slug renomme (retrait du nom "mobile") : redirection 301 vers le nouveau slug "gestion".
// Conserve les parametres utiles (promoteur_eve_id, pec_id, lng...) pour ne pas casser favoris/QR.
if (($_GET['code'] ?? '') === 'inc_tableau_inscriptions_mobile') {
$strNewPath = ($strLangue === 'en') ? '/account/inc_tableau_inscriptions_gestion' : '/compte/inc_tableau_inscriptions_gestion';
parse_str($_SERVER['QUERY_STRING'] ?? '', $arrOldQs);
unset($arrOldQs['code'], $arrOldQs['lang']);
$strQsClean = http_build_query($arrOldQs);
header('Location: ' . $vDomaine . $strNewPath . ($strQsClean !== '' ? '?' . $strQsClean : ''), true, 301);
exit;
}
$recPage = fxGetPage($strCode); $recPage = fxGetPage($strCode);
if (count($recPage) < 1) { if (count($recPage) < 1) {
@ -322,8 +333,8 @@ if (isset($_GET['promoteur_eve_id'])) {
$intEveId = base64_decode(urldecode($_GET['promoteur_eve_id'])); $intEveId = base64_decode(urldecode($_GET['promoteur_eve_id']));
$intEveIdbase = $intEveId; $intEveIdbase = $intEveId;
if ($strCode === 'compte_inc_tableau_inscriptions_mobile') { if ($strCode === 'compte_inc_tableau_inscriptions_gestion') {
if (!fxInscrMobileCanAccess($_SESSION['com_id'], $intEveIdbase)) { if (!fxInscrGestionCanAccess($_SESSION['com_id'], $intEveIdbase)) {
header('Location: ' . $vDomaine . '/' . $strPage); header('Location: ' . $vDomaine . '/' . $strPage);
exit; exit;
} }
@ -721,12 +732,12 @@ require_once("inc_header.php");
$footer_script = true; $footer_script = true;
include("inc_tableau_inscriptions.php"); include("inc_tableau_inscriptions.php");
break; break;
case 'compte_inc_tableau_inscriptions_mobile': case 'compte_inc_tableau_inscriptions_gestion':
$blnBoutonRetour = false; $blnBoutonRetour = false;
$footer_script = true; $footer_script = true;
$blnHideCompteTitle = true; $blnHideCompteTitle = true;
fxInscrMobileInitTextes($strLangue); fxInscrGestionInitTextes($strLangue);
include("inc_tableau_inscriptions_mobile.php"); include("inc_tableau_inscriptions_gestion.php");
break; break;
case 'compte_inc_tableau_mail_entraineurs': case 'compte_inc_tableau_mail_entraineurs':
$blnBoutonRetour = false; $blnBoutonRetour = false;

View File

@ -2367,50 +2367,50 @@ a.ms1-trad-link.btn-aide-trad{
} }
/* Inscriptions mobile — style compte promoteur (desktop + mobile) */ /* Inscriptions mobile — style compte promoteur (desktop + mobile) */
.inscr-mobile-page{ .inscr-gestion-page{
max-width:1100px; max-width:1100px;
margin:0 auto; margin:0 auto;
padding-left:12px !important; padding-left:12px !important;
padding-right:12px !important; padding-right:12px !important;
} }
.inscr-mobile-entry-body .inscr-mobile-entry-header .ms1-header-bottom{ .inscr-gestion-entry-body .inscr-gestion-entry-header .ms1-header-bottom{
border-bottom:1px solid #dee2e6; border-bottom:1px solid #dee2e6;
} }
.inscr-mobile-login-wrap{ .inscr-gestion-login-wrap{
max-width:420px; max-width:420px;
margin:0 auto; margin:0 auto;
} }
.inscr-mobile-login-intro{ .inscr-gestion-login-intro{
font-size:14px; font-size:14px;
margin-bottom:14px; margin-bottom:14px;
} }
.inscr-mobile-login-form .inscr-mobile-label:first-child{ .inscr-gestion-login-form .inscr-gestion-label:first-child{
margin-top:0; margin-top:0;
} }
.inscr-mobile-entry-footer .ms1-footer-bottom{ .inscr-gestion-entry-footer .ms1-footer-bottom{
border-top:1px solid #dee2e6; border-top:1px solid #dee2e6;
} }
.inscr-mobile-shell{ .inscr-gestion-shell{
font-size:14px; font-size:14px;
line-height:1.45; line-height:1.45;
} }
.inscr-mobile-nav-back{ .inscr-gestion-nav-back{
margin-bottom:12px; margin-bottom:12px;
} }
.inscr-mobile-page-head, .inscr-gestion-page-head,
.inscr-mobile-fiche-head{ .inscr-gestion-fiche-head{
margin-bottom:14px; margin-bottom:14px;
} }
.inscr-mobile-page-title{ .inscr-gestion-page-title{
margin:0; margin:0;
font-size:1.5rem; font-size:1.5rem;
font-weight:700; font-weight:700;
@ -2418,12 +2418,12 @@ a.ms1-trad-link.btn-aide-trad{
color:#212529; color:#212529;
} }
.inscr-mobile-page-sub{ .inscr-gestion-page-sub{
margin-top:6px; margin-top:6px;
font-size:14px; font-size:14px;
} }
.inscr-mobile-panel{ .inscr-gestion-panel{
border:1px solid #ced4da; border:1px solid #ced4da;
border-radius:4px; border-radius:4px;
margin-bottom:10px; margin-bottom:10px;
@ -2431,7 +2431,7 @@ a.ms1-trad-link.btn-aide-trad{
overflow:hidden; overflow:hidden;
} }
.inscr-mobile-panel__head{ .inscr-gestion-panel__head{
display:flex; display:flex;
align-items:center; align-items:center;
gap:8px; gap:8px;
@ -2444,50 +2444,50 @@ a.ms1-trad-link.btn-aide-trad{
color:#212529; color:#212529;
} }
.inscr-mobile-panel__icon{ .inscr-gestion-panel__icon{
color:#007bff; color:#007bff;
width:1.15em; width:1.15em;
text-align:center; text-align:center;
flex-shrink:0; flex-shrink:0;
} }
.inscr-mobile-panel__head::-webkit-details-marker{ .inscr-gestion-panel__head::-webkit-details-marker{
display:none; display:none;
} }
.inscr-mobile-panel__body{ .inscr-gestion-panel__body{
padding:12px; padding:12px;
border-top:1px solid #eee; border-top:1px solid #eee;
} }
.inscr-mobile-panel--qr .inscr-mobile-panel__icon{ .inscr-gestion-panel--qr .inscr-gestion-panel__icon{
color:#6f42c1; color:#6f42c1;
} }
.inscr-mobile-qr-hint{ .inscr-gestion-qr-hint{
margin:0 0 8px; margin:0 0 8px;
} }
.inscr-mobile-qr-reader-wrap{ .inscr-gestion-qr-reader-wrap{
max-width:100%; max-width:100%;
margin:0 auto; margin:0 auto;
} }
.inscr-mobile-qr-reader-wrap #inscr-mobile-qr-reader{ .inscr-gestion-qr-reader-wrap #inscr-gestion-qr-reader{
width:100%; width:100%;
} }
.inscr-mobile-qr-reader-wrap video{ .inscr-gestion-qr-reader-wrap video{
border-radius:4px; border-radius:4px;
} }
.inscr-mobile-bib-scan-toggle.is-active{ .inscr-gestion-bib-scan-toggle.is-active{
background:#6f42c1; background:#6f42c1;
border-color:#6f42c1; border-color:#6f42c1;
color:#fff; color:#fff;
} }
.inscr-mobile-bib-scan-capture{ .inscr-gestion-bib-scan-capture{
position:relative; position:relative;
overflow:hidden; overflow:hidden;
border-radius:4px; border-radius:4px;
@ -2497,20 +2497,20 @@ a.ms1-trad-link.btn-aide-trad{
outline:none; outline:none;
} }
.inscr-mobile-bib-scan-capture.is-ready{ .inscr-gestion-bib-scan-capture.is-ready{
box-shadow:0 0 0 2px rgba(111,66,193,.35); box-shadow:0 0 0 2px rgba(111,66,193,.35);
} }
.inscr-mobile-bib-scan-capture[aria-disabled="true"]{ .inscr-gestion-bib-scan-capture[aria-disabled="true"]{
cursor:wait; cursor:wait;
pointer-events:none; pointer-events:none;
} }
.inscr-mobile-bib-scan-video{ .inscr-gestion-bib-scan-video{
max-height:160px; max-height:160px;
} }
.inscr-mobile-bib-scan-video video{ .inscr-gestion-bib-scan-video video{
display:block; display:block;
width:100%; width:100%;
max-height:160px; max-height:160px;
@ -2518,7 +2518,7 @@ a.ms1-trad-link.btn-aide-trad{
pointer-events:none; pointer-events:none;
} }
.inscr-mobile-bib-scan-capture-label{ .inscr-gestion-bib-scan-capture-label{
position:absolute; position:absolute;
left:50%; left:50%;
bottom:8px; bottom:8px;
@ -2533,16 +2533,16 @@ a.ms1-trad-link.btn-aide-trad{
pointer-events:none; pointer-events:none;
} }
.inscr-mobile-bib-scan-panel{ .inscr-gestion-bib-scan-panel{
margin-bottom:10px; margin-bottom:10px;
} }
.inscr-mobile-bib-scan-status{ .inscr-gestion-bib-scan-status{
color:#6f42c1; color:#6f42c1;
font-weight:600; font-weight:600;
} }
.inscr-mobile-bib-scan-status.is-active::before{ .inscr-gestion-bib-scan-status.is-active::before{
content:''; content:'';
display:inline-block; display:inline-block;
width:7px; width:7px;
@ -2550,20 +2550,20 @@ a.ms1-trad-link.btn-aide-trad{
margin-right:5px; margin-right:5px;
border-radius:50%; border-radius:50%;
background:#6f42c1; background:#6f42c1;
animation:inscr-mobile-qr-pulse 1.2s ease-in-out infinite; animation:inscr-gestion-qr-pulse 1.2s ease-in-out infinite;
} }
.inscr-mobile-bib-row input.inscr-mobile-bib--proposed{ .inscr-gestion-bib-row input.inscr-gestion-bib--proposed{
border-color:#6f42c1; border-color:#6f42c1;
box-shadow:0 0 0 2px rgba(111,66,193,.2); box-shadow:0 0 0 2px rgba(111,66,193,.2);
} }
@keyframes inscr-mobile-qr-pulse{ @keyframes inscr-gestion-qr-pulse{
0%,100%{ opacity:1; transform:scale(1); } 0%,100%{ opacity:1; transform:scale(1); }
50%{ opacity:.4; transform:scale(.85); } 50%{ opacity:.4; transform:scale(.85); }
} }
.inscr-mobile-label{ .inscr-gestion-label{
display:block; display:block;
font-size:12px; font-size:12px;
font-weight:600; font-weight:600;
@ -2571,11 +2571,11 @@ a.ms1-trad-link.btn-aide-trad{
color:#495057; color:#495057;
} }
.inscr-mobile-label:first-child{ .inscr-gestion-label:first-child{
margin-top:0; margin-top:0;
} }
.inscr-mobile-check{ .inscr-gestion-check{
display:flex; display:flex;
align-items:center; align-items:center;
gap:8px; gap:8px;
@ -2583,16 +2583,16 @@ a.ms1-trad-link.btn-aide-trad{
margin:8px 0 0; margin:8px 0 0;
} }
.inscr-mobile-form-actions{ .inscr-gestion-form-actions{
display:flex; display:flex;
gap:8px; gap:8px;
} }
.inscr-mobile-form-actions .btn{ .inscr-gestion-form-actions .btn{
flex:1; flex:1;
} }
.inscr-mobile-list-head{ .inscr-gestion-list-head{
display:flex; display:flex;
justify-content:space-between; justify-content:space-between;
align-items:center; align-items:center;
@ -2602,14 +2602,14 @@ a.ms1-trad-link.btn-aide-trad{
padding:0 2px; padding:0 2px;
} }
.inscr-mobile-list{ .inscr-gestion-list{
border:1px solid #ced4da; border:1px solid #ced4da;
border-radius:4px; border-radius:4px;
background:#fff; background:#fff;
overflow:hidden; overflow:hidden;
} }
.inscr-mobile-list-item{ .inscr-gestion-list-item{
display:grid; display:grid;
grid-template-columns:minmax(120px,1.4fr) minmax(100px,1.2fr) minmax(80px,.8fr) 56px minmax(72px,.9fr) 20px; grid-template-columns:minmax(120px,1.4fr) minmax(100px,1.2fr) minmax(80px,.8fr) 56px minmax(72px,.9fr) 20px;
gap:8px 12px; gap:8px 12px;
@ -2621,65 +2621,65 @@ a.ms1-trad-link.btn-aide-trad{
text-decoration:none; text-decoration:none;
} }
.inscr-mobile-list-item:last-child{ .inscr-gestion-list-item:last-child{
border-bottom:none; border-bottom:none;
} }
.inscr-mobile-list-item:hover, .inscr-gestion-list-item:hover,
.inscr-mobile-list-item:focus{ .inscr-gestion-list-item:focus{
color:inherit; color:inherit;
text-decoration:none; text-decoration:none;
background:#f8f9fa; background:#f8f9fa;
} }
.inscr-mobile-list-item--cancelled{ .inscr-gestion-list-item--cancelled{
background:#fff5f5; background:#fff5f5;
border-color:#f1b0b7; border-color:#f1b0b7;
} }
.inscr-mobile-list-item__main{ .inscr-gestion-list-item__main{
display:contents; display:contents;
} }
.inscr-mobile-list-item__name{ .inscr-gestion-list-item__name{
font-weight:700; font-weight:700;
font-size:14px; font-size:14px;
color:#212529; color:#212529;
min-width:0; min-width:0;
} }
.inscr-mobile-list-item__race{ .inscr-gestion-list-item__race{
font-size:13px; font-size:13px;
color:#495057; color:#495057;
min-width:0; min-width:0;
} }
.inscr-mobile-list-item__order{ .inscr-gestion-list-item__order{
font-size:12px; font-size:12px;
color:#6c757d; color:#6c757d;
} }
.inscr-mobile-list-item__meta{ .inscr-gestion-list-item__meta{
display:none; display:none;
} }
.inscr-mobile-list-item__bib{ .inscr-gestion-list-item__bib{
font-weight:600; font-weight:600;
font-size:13px; font-size:13px;
color:#007bff; color:#007bff;
text-align:right; text-align:right;
} }
.inscr-mobile-list-item__check{ .inscr-gestion-list-item__check{
text-align:right; text-align:right;
} }
.inscr-mobile-list-item__arrow{ .inscr-gestion-list-item__arrow{
color:#adb5bd; color:#adb5bd;
flex-shrink:0; flex-shrink:0;
} }
.inscr-mobile-badge{ .inscr-gestion-badge{
display:inline-block; display:inline-block;
padding:1px 6px; padding:1px 6px;
border-radius:999px; border-radius:999px;
@ -2687,32 +2687,32 @@ a.ms1-trad-link.btn-aide-trad{
font-weight:600; font-weight:600;
} }
.inscr-mobile-badge--ok{ .inscr-gestion-badge--ok{
background:#d4edda; background:#d4edda;
color:#155724; color:#155724;
} }
.inscr-mobile-pager{ .inscr-gestion-pager{
margin:14px 0 4px; margin:14px 0 4px;
} }
.inscr-mobile-pager .page-link{ .inscr-gestion-pager .page-link{
padding:6px 10px; padding:6px 10px;
} }
.inscr-mobile-empty{ .inscr-gestion-empty{
margin-top:8px; margin-top:8px;
text-align:center; text-align:center;
color:#6c757d; color:#6c757d;
} }
.inscr-mobile-event-list{ .inscr-gestion-event-list{
display:flex; display:flex;
flex-direction:column; flex-direction:column;
gap:8px; gap:8px;
} }
.inscr-mobile-event-item{ .inscr-gestion-event-item{
display:flex; display:flex;
align-items:center; align-items:center;
justify-content:space-between; justify-content:space-between;
@ -2724,37 +2724,37 @@ a.ms1-trad-link.btn-aide-trad{
text-decoration:none; text-decoration:none;
} }
.inscr-mobile-event-item:hover{ .inscr-gestion-event-item:hover{
background:#f8f9fa; background:#f8f9fa;
color:inherit; color:inherit;
text-decoration:none; text-decoration:none;
} }
.inscr-mobile-event-item__name{ .inscr-gestion-event-item__name{
font-weight:600; font-weight:600;
font-size:15px; font-size:15px;
} }
.inscr-mobile-gestion-actions{ .inscr-gestion-gestion-actions{
display:flex; display:flex;
flex-wrap:wrap; flex-wrap:wrap;
gap:8px; gap:8px;
padding:0; padding:0;
} }
.inscr-mobile-gestion-actions .btn{ .inscr-gestion-gestion-actions .btn{
margin:0; margin:0;
} }
/* Libelle d'invite devant le bouton facture (numero de commande). */ /* Libelle d'invite devant le bouton facture (numero de commande). */
.inscr-mobile-facture-label{ .inscr-gestion-facture-label{
align-self:center; align-self:center;
font-size:0.85rem; font-size:0.85rem;
color:#6c757d; color:#6c757d;
margin-right:2px; margin-right:2px;
} }
.inscr-mobile-remis-row{ .inscr-gestion-remis-row{
display:flex; display:flex;
align-items:center; align-items:center;
justify-content:space-between; justify-content:space-between;
@ -2762,14 +2762,14 @@ a.ms1-trad-link.btn-aide-trad{
flex-wrap:wrap; flex-wrap:wrap;
} }
.inscr-mobile-remis-row__left{ .inscr-gestion-remis-row__left{
display:flex; display:flex;
align-items:center; align-items:center;
gap:10px; gap:10px;
flex-wrap:wrap; flex-wrap:wrap;
} }
.inscr-mobile-remis-row__meta{ .inscr-gestion-remis-row__meta{
margin-left:auto; margin-left:auto;
text-align:right; text-align:right;
font-size:12px; font-size:12px;
@ -2777,56 +2777,56 @@ a.ms1-trad-link.btn-aide-trad{
flex:1 1 160px; flex:1 1 160px;
} }
.inscr-mobile-field-block__label--inline{ .inscr-gestion-field-block__label--inline{
margin-bottom:0; margin-bottom:0;
} }
.inscr-mobile-fiche-section--editable{ .inscr-gestion-fiche-section--editable{
padding:0; padding:0;
overflow:hidden; overflow:hidden;
} }
.inscr-mobile-fiche-section__body{ .inscr-gestion-fiche-section__body{
padding:0; padding:0;
} }
.inscr-mobile-fiche-section__body > .inscr-mobile-kv-list{ .inscr-gestion-fiche-section__body > .inscr-gestion-kv-list{
padding:4px 12px 8px; padding:4px 12px 8px;
} }
.inscr-mobile-fiche-section__body > .inscr-mobile-gestion-actions{ .inscr-gestion-fiche-section__body > .inscr-gestion-gestion-actions{
padding:12px; padding:12px;
} }
.inscr-mobile-fiche-section__body > .inscr-mobile-field-block:first-child{ .inscr-gestion-fiche-section__body > .inscr-gestion-field-block:first-child{
border-top:none; border-top:none;
} }
.inscr-mobile-fiche-section--editable > .inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section--editable > .inscr-gestion-fiche-section__title{
padding:10px 12px; padding:10px 12px;
margin-bottom:0; margin-bottom:0;
} }
.inscr-mobile-field-block{ .inscr-gestion-field-block{
padding:12px; padding:12px;
border-top:1px solid #eee; border-top:1px solid #eee;
} }
.inscr-mobile-field-block__label{ .inscr-gestion-field-block__label{
font-size:13px; font-size:13px;
font-weight:700; font-weight:700;
color:#495057; color:#495057;
margin-bottom:8px; margin-bottom:8px;
} }
.inscr-mobile-order-row{ .inscr-gestion-order-row{
display:flex; display:flex;
flex-wrap:wrap; flex-wrap:wrap;
align-items:center; align-items:center;
gap:8px; gap:8px;
} }
.inscr-mobile-statut-select{ .inscr-gestion-statut-select{
max-width:100%; max-width:100%;
font-size:14px; font-size:14px;
padding:6px 10px; padding:6px 10px;
@ -2834,23 +2834,23 @@ a.ms1-trad-link.btn-aide-trad{
min-height:34px; min-height:34px;
} }
.inscr-mobile-field-block--statut.inscr-mobile-statut--saved .inscr-mobile-statut-select{ .inscr-gestion-field-block--statut.inscr-gestion-statut--saved .inscr-gestion-statut-select{
border-color:#198754; border-color:#198754;
background-color:#d1e7dd; background-color:#d1e7dd;
} }
.inscr-mobile-field-block--statut.inscr-mobile-statut--error .inscr-mobile-statut-select{ .inscr-gestion-field-block--statut.inscr-gestion-statut--error .inscr-gestion-statut-select{
border-color:#dc3545; border-color:#dc3545;
animation:inscr-mobile-statut-shake .35s ease; animation:inscr-gestion-statut-shake .35s ease;
} }
@keyframes inscr-mobile-statut-shake{ @keyframes inscr-gestion-statut-shake{
0%,100%{ transform:translateX(0); } 0%,100%{ transform:translateX(0); }
25%{ transform:translateX(-4px); } 25%{ transform:translateX(-4px); }
75%{ transform:translateX(4px); } 75%{ transform:translateX(4px); }
} }
.inscr-mobile-fiche-section{ .inscr-gestion-fiche-section{
border:1px solid #ced4da; border:1px solid #ced4da;
border-radius:4px; border-radius:4px;
background:#fff; background:#fff;
@ -2859,7 +2859,7 @@ a.ms1-trad-link.btn-aide-trad{
overflow:hidden; overflow:hidden;
} }
.inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section__title{
display:flex; display:flex;
align-items:center; align-items:center;
gap:8px; gap:8px;
@ -2874,11 +2874,11 @@ a.ms1-trad-link.btn-aide-trad{
list-style:none; list-style:none;
} }
.inscr-mobile-fiche-section__title::-webkit-details-marker{ .inscr-gestion-fiche-section__title::-webkit-details-marker{
display:none; display:none;
} }
.inscr-mobile-fiche-section__title::after{ .inscr-gestion-fiche-section__title::after{
content:'\f107'; content:'\f107';
font-family:FontAwesome; font-family:FontAwesome;
font-weight:normal; font-weight:normal;
@ -2888,64 +2888,64 @@ a.ms1-trad-link.btn-aide-trad{
transition:transform .15s ease; transition:transform .15s ease;
} }
.inscr-mobile-fiche-section[open] > .inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section[open] > .inscr-gestion-fiche-section__title{
border-bottom:1px solid #dee2e6; border-bottom:1px solid #dee2e6;
} }
.inscr-mobile-fiche-section[open] > .inscr-mobile-fiche-section__title::after{ .inscr-gestion-fiche-section[open] > .inscr-gestion-fiche-section__title::after{
transform:rotate(180deg); transform:rotate(180deg);
} }
.inscr-mobile-fiche-section:not([open]) > .inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section:not([open]) > .inscr-gestion-fiche-section__title{
border-bottom:none; border-bottom:none;
} }
.inscr-mobile-fiche-section__icon{ .inscr-gestion-fiche-section__icon{
width:1.15em; width:1.15em;
text-align:center; text-align:center;
flex-shrink:0; flex-shrink:0;
} }
.inscr-mobile-fiche-section--details .inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section--details .inscr-gestion-fiche-section__title{
background:#e7f1ff; background:#e7f1ff;
border-left:4px solid #007bff; border-left:4px solid #007bff;
color:#004085; color:#004085;
} }
.inscr-mobile-fiche-section--details .inscr-mobile-fiche-section__icon{ .inscr-gestion-fiche-section--details .inscr-gestion-fiche-section__icon{
color:#007bff; color:#007bff;
} }
.inscr-mobile-fiche-section--gestion .inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section--gestion .inscr-gestion-fiche-section__title{
background:#fff8e6; background:#fff8e6;
border-left:4px solid #e0a800; border-left:4px solid #e0a800;
color:#664d03; color:#664d03;
} }
.inscr-mobile-fiche-section--gestion .inscr-mobile-fiche-section__icon{ .inscr-gestion-fiche-section--gestion .inscr-gestion-fiche-section__icon{
color:#e0a800; color:#e0a800;
} }
.inscr-mobile-fiche-section--editable .inscr-mobile-fiche-section__title{ .inscr-gestion-fiche-section--editable .inscr-gestion-fiche-section__title{
background:#e8f5e9; background:#e8f5e9;
border-left:4px solid #28a745; border-left:4px solid #28a745;
color:#155724; color:#155724;
} }
.inscr-mobile-fiche-section--editable .inscr-mobile-fiche-section__icon{ .inscr-gestion-fiche-section--editable .inscr-gestion-fiche-section__icon{
color:#28a745; color:#28a745;
} }
.inscr-mobile-dl{ .inscr-gestion-dl{
margin:0; margin:0;
padding:12px; padding:12px;
} }
.inscr-mobile-kv-list{ .inscr-gestion-kv-list{
padding:4px 12px 8px; padding:4px 12px 8px;
} }
.inscr-mobile-kv-row{ .inscr-gestion-kv-row{
display:flex; display:flex;
flex-wrap:wrap; flex-wrap:wrap;
gap:4px 16px; gap:4px 16px;
@ -2955,22 +2955,22 @@ a.ms1-trad-link.btn-aide-trad{
line-height:1.45; line-height:1.45;
} }
.inscr-mobile-kv-row:last-child{ .inscr-gestion-kv-row:last-child{
border-bottom:none; border-bottom:none;
} }
.inscr-mobile-kv-row--profile{ .inscr-gestion-kv-row--profile{
border-top:1px solid #dee2e6; border-top:1px solid #dee2e6;
margin-top:4px; margin-top:4px;
padding-top:8px; padding-top:8px;
} }
.inscr-mobile-kv-row--flag{ .inscr-gestion-kv-row--flag{
border-bottom:1px solid #f1f3f5; border-bottom:1px solid #f1f3f5;
padding:8px 0; padding:8px 0;
} }
.inscr-mobile-kv-flag{ .inscr-gestion-kv-flag{
display:inline-block; display:inline-block;
padding:4px 10px; padding:4px 10px;
border-radius:999px; border-radius:999px;
@ -2982,7 +2982,7 @@ a.ms1-trad-link.btn-aide-trad{
letter-spacing:0.02em; letter-spacing:0.02em;
} }
.inscr-mobile-kv-row__label{ .inscr-gestion-kv-row__label{
flex:0 0 132px; flex:0 0 132px;
max-width:38%; max-width:38%;
font-weight:700; font-weight:700;
@ -2991,7 +2991,7 @@ a.ms1-trad-link.btn-aide-trad{
line-height:1.4; line-height:1.4;
} }
.inscr-mobile-kv-row__value{ .inscr-gestion-kv-row__value{
flex:1 1 180px; flex:1 1 180px;
color:#212529; color:#212529;
font-size:14px; font-size:14px;
@ -3002,64 +3002,64 @@ a.ms1-trad-link.btn-aide-trad{
text-align:left; text-align:left;
} }
.inscr-mobile-dl dt{ .inscr-gestion-dl dt{
font-size:12px; font-size:12px;
font-weight:600; font-weight:600;
color:#6c757d; color:#6c757d;
margin:10px 0 2px; margin:10px 0 2px;
} }
.inscr-mobile-dl dt:first-child{ .inscr-gestion-dl dt:first-child{
margin-top:0; margin-top:0;
} }
.inscr-mobile-dl dd{ .inscr-gestion-dl dd{
margin:0 0 4px; margin:0 0 4px;
font-size:14px; font-size:14px;
} }
.inscr-mobile-bib-row{ .inscr-gestion-bib-row{
display:flex; display:flex;
gap:8px; gap:8px;
} }
.inscr-mobile-bib-row .form-control{ .inscr-gestion-bib-row .form-control{
flex:1; flex:1;
} }
.inscr-mobile-muted{ .inscr-gestion-muted{
font-size:12px; font-size:12px;
color:#6c757d; color:#6c757d;
margin-top:6px; margin-top:6px;
} }
.inscr-mobile-actions .btn{ .inscr-gestion-actions .btn{
margin-bottom:8px; margin-bottom:8px;
} }
.inscr-mobile-actions .btn:last-child{ .inscr-gestion-actions .btn:last-child{
margin-bottom:0; margin-bottom:0;
} }
.container:has(.inscr-mobile-page){ .container:has(.inscr-gestion-page){
padding:12px !important; padding:12px !important;
} }
.inscr-mobile-list-anchor{ .inscr-gestion-list-anchor{
scroll-margin-top:8px; scroll-margin-top:8px;
} }
.inscr-mobile-pager .pagination{ .inscr-gestion-pager .pagination{
margin-bottom:0; margin-bottom:0;
} }
.inscr-mobile-pager .page-link{ .inscr-gestion-pager .page-link{
min-width:38px; min-width:38px;
text-align:center; text-align:center;
} }
@media (max-width:767px){ @media (max-width:767px){
.inscr-mobile-list-item{ .inscr-gestion-list-item{
grid-template-columns:1fr auto; grid-template-columns:1fr auto;
grid-template-areas: grid-template-areas:
"name arrow" "name arrow"
@ -3070,32 +3070,32 @@ a.ms1-trad-link.btn-aide-trad{
padding:12px; padding:12px;
} }
.inscr-mobile-list-item__name{ grid-area:name; } .inscr-gestion-list-item__name{ grid-area:name; }
.inscr-mobile-list-item__race{ grid-area:race; } .inscr-gestion-list-item__race{ grid-area:race; }
.inscr-mobile-list-item__order{ grid-area:order; } .inscr-gestion-list-item__order{ grid-area:order; }
.inscr-mobile-list-item__bib{ grid-area:bib; text-align:left; } .inscr-gestion-list-item__bib{ grid-area:bib; text-align:left; }
.inscr-mobile-list-item__check{ grid-area:check; text-align:left; } .inscr-gestion-list-item__check{ grid-area:check; text-align:left; }
.inscr-mobile-list-item__arrow{ grid-area:arrow; } .inscr-gestion-list-item__arrow{ grid-area:arrow; }
.inscr-mobile-remis-row__meta{ .inscr-gestion-remis-row__meta{
flex-basis:100%; flex-basis:100%;
margin-left:0; margin-left:0;
text-align:left; text-align:left;
} }
.inscr-mobile-kv-row{ .inscr-gestion-kv-row{
gap:3px; gap:3px;
padding:8px 0; padding:8px 0;
} }
.inscr-mobile-kv-row__label{ .inscr-gestion-kv-row__label{
flex:1 1 100%; flex:1 1 100%;
max-width:100%; max-width:100%;
font-size:11px; font-size:11px;
color:#adb5bd; color:#adb5bd;
} }
.inscr-mobile-kv-row__value{ .inscr-gestion-kv-row__value{
flex:1 1 100%; flex:1 1 100%;
font-size:15px; font-size:15px;
font-weight:500; font-weight:500;

View File

@ -59,8 +59,8 @@ if (isset($tabEvenement) && $tabEvenement['general']['eve_commanditaires'] == "1
} }
} }
?> ?>
<footer<?php echo (defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENTRY) ? ' class="inscr-mobile-entry-footer"' : ''; ?>> <footer<?php echo (defined('MS1_INSCR_GESTION_ENTRY') && MS1_INSCR_GESTION_ENTRY) ? ' class="inscr-gestion-entry-footer"' : ''; ?>>
<?php if (!(defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENTRY)) { ?> <?php if (!(defined('MS1_INSCR_GESTION_ENTRY') && MS1_INSCR_GESTION_ENTRY)) { ?>
<div class="ms1-footer-top"> <div class="ms1-footer-top">
<div class="container"> <div class="container">
<div class="row py-4"> <div class="row py-4">

View File

@ -212,8 +212,8 @@ if ($strLangue == 'fr') {
if ($footer_script == true) { if ($footer_script == true) {
?> ?>
if ($('#frm_inscr_mobile_login').length) { if ($('#frm_inscr_gestion_login').length) {
$('#frm_inscr_mobile_login').validate({ $('#frm_inscr_gestion_login').validate({
messages: { messages: {
txt_login: "<?php echo ($strLangue === 'fr') ? 'Veuillez entrer votre nom d\'usager' : 'Please enter your username'; ?>", txt_login: "<?php echo ($strLangue === 'fr') ? 'Veuillez entrer votre nom d\'usager' : 'Please enter your username'; ?>",
txt_password: "<?php echo ($strLangue === 'fr') ? 'Veuillez entrer votre mot de passe' : 'Please enter your password'; ?>" txt_password: "<?php echo ($strLangue === 'fr') ? 'Veuillez entrer votre mot de passe' : 'Please enter your password'; ?>"
@ -540,7 +540,7 @@ if ($strLangue == 'fr') {
var $btn_annuler = $("#annuler_" + $btn_id[1]); var $btn_annuler = $("#annuler_" + $btn_id[1]);
var $btn_retablir = $("#retablir_" + $btn_id[1]); var $btn_retablir = $("#retablir_" + $btn_id[1]);
var $btn_modifier = $("#modifier_" + $btn_id[1]); var $btn_modifier = $("#modifier_" + $btn_id[1]);
var $inscrFiche = $(this).closest('.inscr-mobile-fiche'); var $inscrFiche = $(this).closest('.inscr-gestion-fiche');
$preloader_text.html('<?php afficheTexte('preloader_wait', 1, 0, 1); ?>'); $preloader_text.html('<?php afficheTexte('preloader_wait', 1, 0, 1); ?>');
$body.css('cursor', 'wait'); $body.css('cursor', 'wait');
$preloader.show(); $preloader.show();
@ -1201,13 +1201,13 @@ if ($strLangue == 'fr') {
var pendingStatutXhr = null; var pendingStatutXhr = null;
var lastStatutParId = null; var lastStatutParId = null;
$('.inscr-mobile-statut-select').each(function () { $('.inscr-gestion-statut-select').each(function () {
$(this).data('prev', $(this).val()); $(this).data('prev', $(this).val());
}); });
$body.on('change', '.inscr-mobile-statut-select', function () { $body.on('change', '.inscr-gestion-statut-select', function () {
var $select = $(this); var $select = $(this);
var $block = $select.closest('.inscr-mobile-field-block--statut'); var $block = $select.closest('.inscr-gestion-field-block--statut');
var intParId = $select.data('par_id'); var intParId = $select.data('par_id');
var strCode = $select.val(); var strCode = $select.val();
var strPrev = $select.data('prev'); var strPrev = $select.data('prev');
@ -1220,12 +1220,12 @@ if ($strLangue == 'fr') {
pendingStatutXhr.abort(); pendingStatutXhr.abort();
} }
lastStatutParId = intParId; lastStatutParId = intParId;
$block.removeClass('inscr-mobile-statut--saved inscr-mobile-statut--error'); $block.removeClass('inscr-gestion-statut--saved inscr-gestion-statut--error');
$preloader_text.html('<?php afficheTexte('preloader_wait', 1, 0, 1); ?>'); $preloader_text.html('<?php afficheTexte('preloader_wait', 1, 0, 1); ?>');
$preloader.show(); $preloader.show();
pendingStatutXhr = $.post('<?php echo $vDomaine; ?>/ajax_inscr_mobile.php', { pendingStatutXhr = $.post('<?php echo $vDomaine; ?>/ajax_inscr_gestion.php', {
a: 'par_statut_course', a: 'par_statut_course',
par_id: intParId, par_id: intParId,
par_statut_course: strCode, par_statut_course: strCode,
@ -1235,19 +1235,19 @@ if ($strLangue == 'fr') {
$preloader.fadeOut('slow'); $preloader.fadeOut('slow');
if (result && result.state === 'success') { if (result && result.state === 'success') {
$select.data('prev', strCode); $select.data('prev', strCode);
$block.addClass('inscr-mobile-statut--saved'); $block.addClass('inscr-gestion-statut--saved');
window.setTimeout(function () { window.setTimeout(function () {
$block.removeClass('inscr-mobile-statut--saved'); $block.removeClass('inscr-gestion-statut--saved');
}, 1200); }, 1200);
} else { } else {
$select.val(strPrev); $select.val(strPrev);
$block.addClass('inscr-mobile-statut--error'); $block.addClass('inscr-gestion-statut--error');
} }
}, 'json').fail(function () { }, 'json').fail(function () {
pendingStatutXhr = null; pendingStatutXhr = null;
$preloader.fadeOut('slow'); $preloader.fadeOut('slow');
$select.val(strPrev); $select.val(strPrev);
$block.addClass('inscr-mobile-statut--error'); $block.addClass('inscr-gestion-statut--error');
}); });
}); });
})(); })();
@ -1291,17 +1291,17 @@ if ($strLangue == 'fr') {
if ($cancelBtn.length && $cancelBtn.is(':visible')) { if ($cancelBtn.length && $cancelBtn.is(':visible')) {
$cancelBtn.removeClass('btn-secondary').addClass('btn-danger') $cancelBtn.removeClass('btn-secondary').addClass('btn-danger')
.css('box-shadow', '0 0 0 3px rgba(220,53,69,.35)'); .css('box-shadow', '0 0 0 3px rgba(220,53,69,.35)');
if (!$('#inscr-mobile-refund-cancel-hint').length) { if (!$('#inscr-gestion-refund-cancel-hint').length) {
$('<div id="inscr-mobile-refund-cancel-hint" style="margin-top:8px;padding:10px;border:1px solid #ffe1a6;background:#fff8e6;border-radius:8px;font-size:13px;"></div>') $('<div id="inscr-gestion-refund-cancel-hint" style="margin-top:8px;padding:10px;border:1px solid #ffe1a6;background:#fff8e6;border-radius:8px;font-size:13px;"></div>')
.text(refundCancelHint) .text(refundCancelHint)
.insertAfter($('#inscr-mobile-refund-panel')); .insertAfter($('#inscr-gestion-refund-panel'));
} }
} }
} }
$(document).on('click', '.btn_refund_toggle', function () { $(document).on('click', '.btn_refund_toggle', function () {
var $btn = $(this); var $btn = $(this);
var $panel = $($btn.attr('data-refund-target') || '#inscr-mobile-refund-panel'); var $panel = $($btn.attr('data-refund-target') || '#inscr-gestion-refund-panel');
if (!$panel.length) { return; } if (!$panel.length) { return; }
// Si deja ouvert -> on replie. // Si deja ouvert -> on replie.
@ -1318,8 +1318,8 @@ if ($strLangue == 'fr') {
// Deja charge ? on ne recharge pas (le serveur recalcule a chaque (re)chargement reel). // Deja charge ? on ne recharge pas (le serveur recalcule a chaque (re)chargement reel).
if ($panel.attr('data-loaded') === '1') { return; } if ($panel.attr('data-loaded') === '1') { return; }
$panel.html('<div class="inscr-mobile-muted" style="padding:10px;">…</div>'); $panel.html('<div class="inscr-gestion-muted" style="padding:10px;">…</div>');
$.post('<?php echo $vDomaine; ?>/ajax_inscr_mobile.php', { $.post('<?php echo $vDomaine; ?>/ajax_inscr_gestion.php', {
a: 'refund_form', a: 'refund_form',
no_panier: $btn.data('no_panier'), no_panier: $btn.data('no_panier'),
lang: '<?php echo $strLangue; ?>' lang: '<?php echo $strLangue; ?>'
@ -3672,13 +3672,13 @@ if ($strLangue == 'fr') {
} }
(function () { (function () {
var qrPanel = document.getElementById('inscr-mobile-qr-panel'); var qrPanel = document.getElementById('inscr-gestion-qr-panel');
if (!qrPanel) { if (!qrPanel) {
return; return;
} }
var qrReaderEl = document.getElementById('inscr-mobile-qr-reader'); var qrReaderEl = document.getElementById('inscr-gestion-qr-reader');
var qrFeedback = document.getElementById('inscr-mobile-qr-feedback'); var qrFeedback = document.getElementById('inscr-gestion-qr-feedback');
var qrCamera = null; var qrCamera = null;
var qrStarting = false; var qrStarting = false;
var lastQrRaw = ''; var lastQrRaw = '';
@ -3755,7 +3755,7 @@ if ($strLangue == 'fr') {
var config = window.Html5QrcodeSupportedFormats var config = window.Html5QrcodeSupportedFormats
? {formatsToSupport: [Html5QrcodeSupportedFormats.QR_CODE]} ? {formatsToSupport: [Html5QrcodeSupportedFormats.QR_CODE]}
: undefined; : undefined;
qrCamera = new Html5Qrcode('inscr-mobile-qr-reader', config); qrCamera = new Html5Qrcode('inscr-gestion-qr-reader', config);
return qrCamera.start( return qrCamera.start(
{facingMode: 'environment'}, {facingMode: 'environment'},
{fps: 8, qrbox: {width: 220, height: 220}}, {fps: 8, qrbox: {width: 220, height: 220}},
@ -3938,12 +3938,12 @@ if ($strLangue == 'fr') {
function BibScanSession(block) { function BibScanSession(block) {
this.block = block; this.block = block;
this.panel = block.querySelector('.inscr-mobile-bib-scan-panel'); this.panel = block.querySelector('.inscr-gestion-bib-scan-panel');
this.toggleBtn = block.querySelector('.inscr-mobile-bib-scan-toggle'); this.toggleBtn = block.querySelector('.inscr-gestion-bib-scan-toggle');
this.statusEl = this.panel ? this.panel.querySelector('.inscr-mobile-bib-scan-status') : null; this.statusEl = this.panel ? this.panel.querySelector('.inscr-gestion-bib-scan-status') : null;
this.captureEl = this.panel ? this.panel.querySelector('.inscr-mobile-bib-scan-capture') : null; this.captureEl = this.panel ? this.panel.querySelector('.inscr-gestion-bib-scan-capture') : null;
this.videoWrap = this.captureEl ? this.captureEl.querySelector('.inscr-mobile-bib-scan-video') : null; this.videoWrap = this.captureEl ? this.captureEl.querySelector('.inscr-gestion-bib-scan-video') : null;
this.captureLabel = this.captureEl ? this.captureEl.querySelector('.inscr-mobile-bib-scan-capture-label') : null; this.captureLabel = this.captureEl ? this.captureEl.querySelector('.inscr-gestion-bib-scan-capture-label') : null;
this.inputId = this.panel ? this.panel.getAttribute('data-bib-input-id') : ''; this.inputId = this.panel ? this.panel.getAttribute('data-bib-input-id') : '';
this.stream = null; this.stream = null;
this.video = null; this.video = null;
@ -3973,7 +3973,7 @@ if ($strLangue == 'fr') {
BibScanSession.prototype.showReady = function () { BibScanSession.prototype.showReady = function () {
var msg = this.panel.getAttribute('data-msg-ready') || ''; var msg = this.panel.getAttribute('data-msg-ready') || '';
if (!msg || msg.indexOf('inscr_mobile_') === 0) { if (!msg || msg.indexOf('inscr_gestion_') === 0) {
msg = (document.documentElement.lang === 'en') msg = (document.documentElement.lang === 'en')
? 'Frame the number, then tap the image' ? 'Frame the number, then tap the image'
: 'Cadrez le numéro, puis touchez l\'image'; : 'Cadrez le numéro, puis touchez l\'image';
@ -4051,7 +4051,7 @@ if ($strLangue == 'fr') {
return; return;
} }
input.value = strNum; input.value = strNum;
input.classList.add('inscr-mobile-bib--proposed'); input.classList.add('inscr-gestion-bib--proposed');
input.focus(); input.focus();
var tpl = this.panel.getAttribute('data-msg-found') || '%s'; var tpl = this.panel.getAttribute('data-msg-found') || '%s';
this.setStatus(tpl.replace('%s', strNum), false); this.setStatus(tpl.replace('%s', strNum), false);
@ -4150,13 +4150,13 @@ if ($strLangue == 'fr') {
}); });
}; };
if (document.querySelector('.inscr-mobile-bib-scan-toggle')) { if (document.querySelector('.inscr-gestion-bib-scan-toggle')) {
preloadOcrWorker(); preloadOcrWorker();
} }
document.querySelectorAll('.inscr-mobile-field-block[data-inscr-field="bib"]').forEach(function (block) { document.querySelectorAll('.inscr-gestion-field-block[data-inscr-field="bib"]').forEach(function (block) {
var toggleBtn = block.querySelector('.inscr-mobile-bib-scan-toggle'); var toggleBtn = block.querySelector('.inscr-gestion-bib-scan-toggle');
var panel = block.querySelector('.inscr-mobile-bib-scan-panel'); var panel = block.querySelector('.inscr-gestion-bib-scan-panel');
if (!toggleBtn || !panel) { if (!toggleBtn || !panel) {
return; return;
} }
@ -4171,14 +4171,14 @@ if ($strLangue == 'fr') {
var input = session.getInput(); var input = session.getInput();
if (input) { if (input) {
input.addEventListener('input', function () { input.addEventListener('input', function () {
input.classList.remove('inscr-mobile-bib--proposed'); input.classList.remove('inscr-gestion-bib--proposed');
}); });
} }
}); });
var ficheFromQr = document.querySelector('.inscr-mobile-fiche[data-from-qr="1"]'); var ficheFromQr = document.querySelector('.inscr-gestion-fiche[data-from-qr="1"]');
if (ficheFromQr) { if (ficheFromQr) {
var editableSection = ficheFromQr.querySelector('.inscr-mobile-fiche-section--editable'); var editableSection = ficheFromQr.querySelector('.inscr-gestion-fiche-section--editable');
if (editableSection) { if (editableSection) {
window.setTimeout(function () { window.setTimeout(function () {
editableSection.scrollIntoView({behavior: 'smooth', block: 'start'}); editableSection.scrollIntoView({behavior: 'smooth', block: 'start'});
@ -4188,7 +4188,7 @@ if ($strLangue == 'fr') {
})(); })();
(function () { (function () {
var moduleInscr = document.getElementById('module-inscr-mobile'); var moduleInscr = document.getElementById('module-inscr-gestion');
if (!moduleInscr) { if (!moduleInscr) {
return; return;
} }
@ -4197,7 +4197,7 @@ if ($strLangue == 'fr') {
if (params.get('pec_id')) { if (params.get('pec_id')) {
moduleInscr.scrollIntoView({block: 'start'}); moduleInscr.scrollIntoView({block: 'start'});
} else if (params.get('pg') && parseInt(params.get('pg'), 10) > 1) { } else if (params.get('pg') && parseInt(params.get('pg'), 10) > 1) {
var listAnchor = document.getElementById('inscr-mobile-list'); var listAnchor = document.getElementById('inscr-gestion-list');
if (listAnchor) { if (listAnchor) {
listAnchor.scrollIntoView({block: 'start'}); listAnchor.scrollIntoView({block: 'start'});
} }

View File

@ -152,9 +152,9 @@ if (!isset($strOGDescription)) {
<?php include_once('css/theme.php'); ?> <?php include_once('css/theme.php'); ?>
<?php <?php
$blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENTRY; $blnInscrGestionShell = defined('MS1_INSCR_GESTION_ENTRY') && MS1_INSCR_GESTION_ENTRY;
?> ?>
<body<?php echo $blnInscrMobileShell ? ' class="inscr-mobile-entry-body"' : ''; ?>> <body<?php echo $blnInscrGestionShell ? ' class="inscr-gestion-entry-body"' : ''; ?>>
<?php if( $vblnEnvironementDev !== true){ ?> <?php if( $vblnEnvironementDev !== true){ ?>
<div id="preloader"> <div id="preloader">
@ -175,8 +175,8 @@ $blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENT
} ?> } ?>
<?php fxRenderEnvNoticeBar(); ?> <?php fxRenderEnvNoticeBar(); ?>
<header<?php echo $blnInscrMobileShell ? ' class="inscr-mobile-entry-header"' : ''; ?>> <header<?php echo $blnInscrGestionShell ? ' class="inscr-gestion-entry-header"' : ''; ?>>
<?php if (!$blnInscrMobileShell) { ?> <?php if (!$blnInscrGestionShell) { ?>
<div class="ms1-header-top"> <div class="ms1-header-top">
<div class="container"> <div class="container">
<div class="row align-items-center"> <div class="row align-items-center">
@ -288,7 +288,7 @@ $blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENT
<div class="container"> <div class="container">
<div class="row align-items-center"> <div class="row align-items-center">
<div class="col-lg-6 text-center text-lg-left"> <div class="col-lg-6 text-center text-lg-left">
<?php if ($blnInscrMobileShell) { ?> <?php if ($blnInscrGestionShell) { ?>
<img class="mb-3 mb-lg-0" src="<?php echo $vDomaine; ?>/images/logoms1inscription.png" alt="<?php echo $vClient; ?>"> <img class="mb-3 mb-lg-0" src="<?php echo $vDomaine; ?>/images/logoms1inscription.png" alt="<?php echo $vClient; ?>">
<?php } else { ?> <?php } else { ?>
<a href="<?php echo $vDomaine; ?>"> <a href="<?php echo $vDomaine; ?>">
@ -310,7 +310,7 @@ $blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENT
$ref_no_panier = "0"; $ref_no_panier = "0";
} }
if (!isset($_SESSION['com_id']) && !isset($_SESSION['affiche_pas_connexion'])) { if (!isset($_SESSION['com_id']) && !isset($_SESSION['affiche_pas_connexion'])) {
if ($blnInscrMobileShell) { if ($blnInscrGestionShell) {
?> ?>
<p class="mb-0 text-muted small"><?php afficheTexte('gauche_placeholder_login', 1, 1, 1); ?></p> <p class="mb-0 text-muted small"><?php afficheTexte('gauche_placeholder_login', 1, 1, 1); ?></p>
<?php <?php
@ -348,7 +348,7 @@ $blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENT
<?php <?php
} }
} else { } else {
if ($blnInscrMobileShell && isset($_SESSION['com_id'])) { if ($blnInscrGestionShell && isset($_SESSION['com_id'])) {
?> ?>
<p class="mb-2"><strong><?php afficheTexte('gauche_bonjour_user',1,1,1); ?> <?php echo $_SESSION['com_info']['com_prenom']; ?></strong></p> <p class="mb-2"><strong><?php afficheTexte('gauche_bonjour_user',1,1,1); ?> <?php echo $_SESSION['com_info']['com_prenom']; ?></strong></p>
<ul class="list-inline mb-0"> <ul class="list-inline mb-0">
@ -358,7 +358,7 @@ $blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENT
</li> </li>
</ul> </ul>
<?php <?php
} elseif (!$blnInscrMobileShell) { } elseif (!$blnInscrGestionShell) {
?> ?>
<p class="mb-2"> <p class="mb-2">
@ -409,7 +409,7 @@ $blnInscrMobileShell = defined('MS1_INSCR_MOBILE_ENTRY') && MS1_INSCR_MOBILE_ENT
</div> </div>
</header> </header>
<?php <?php
if (isset($_SESSION['com_id']) && !$blnInscrMobileShell) { if (isset($_SESSION['com_id']) && !$blnInscrGestionShell) {
$intCompte = $_SESSION['com_id']; $intCompte = $_SESSION['com_id'];
// liste attente // liste attente
if (fx_liste_attente_compte_dispo_inscrire($intCompte) > 0) { if (fx_liste_attente_compte_dispo_inscrire($intCompte) > 0) {

View File

@ -4,14 +4,14 @@
include_once('php/inc_fx_modifierinscriptions.php'); include_once('php/inc_fx_modifierinscriptions.php');
include_once('php/inc_fx_memberships.php'); include_once('php/inc_fx_memberships.php');
include_once('php/inc_fx_promoteur.php'); include_once('php/inc_fx_promoteur.php');
include_once('php/inc_fx_inscriptions_mobile.php'); include_once('php/inc_fx_inscriptions_gestion.php');
require_once('superadm/php/inc_manager.php'); require_once('superadm/php/inc_manager.php');
global $objDatabase, $vDomaine, $strLangue; global $objDatabase, $vDomaine, $strLangue;
$intEveId = 0; $intEveId = 0;
if (isset($_GET['promoteur_eve_id'])) { if (isset($_GET['promoteur_eve_id'])) {
$intEveId = fxInscrMobileParseEveId($_GET['promoteur_eve_id']); $intEveId = fxInscrGestionParseEveId($_GET['promoteur_eve_id']);
} }
if ($intEveId === 0) { if ($intEveId === 0) {
@ -23,6 +23,6 @@ if ($intEveId === 0) {
return; return;
} }
echo '<div class="inscr-mobile-page">'; echo '<div class="inscr-gestion-page">';
fxInscrMobileRun($intEveId, $strLangue); fxInscrGestionRun($intEveId, $strLangue);
echo '</div>'; echo '</div>';

View File

@ -262,11 +262,11 @@ if ($intEveId != 0) {
aria-hidden="true"></i> <?php echo afficheTexte('tableau_promoteur_menueinscription', 0); ?> aria-hidden="true"></i> <?php echo afficheTexte('tableau_promoteur_menueinscription', 0); ?>
</a> </a>
</li> </li>
<?php if (fxInscrMobileCanAccess($_SESSION['com_id'], $intEveId)) { ?> <?php if (fxInscrGestionCanAccess($_SESSION['com_id'], $intEveId)) { ?>
<li class="nav-item"> <li class="nav-item">
<a class="nav-list" <a class="nav-list"
href="<?php echo $vDomaine; ?>/compte/inc_tableau_inscriptions_mobile?promoteur_eve_id=<?php echo urlencode(base64_encode($intEveId)); ?>&amp;lng=<?php echo $strLangue; ?>"> href="<?php echo $vDomaine; ?>/compte/inc_tableau_inscriptions_gestion?promoteur_eve_id=<?php echo urlencode(base64_encode($intEveId)); ?>&amp;lng=<?php echo $strLangue; ?>">
<i class="fa fa-users" aria-hidden="true"></i> <?php echo htmlspecialchars(fxInscrMobilePromoteurMenuLabel(), ENT_QUOTES, 'UTF-8'); ?> <i class="fa fa-users" aria-hidden="true"></i> <?php echo htmlspecialchars(fxInscrGestionPromoteurMenuLabel(), ENT_QUOTES, 'UTF-8'); ?>
</a> </a>
</li> </li>
<?php } ?> <?php } ?>

View File

@ -1,13 +1,13 @@
<?php <?php
define('MS1_INSCR_MOBILE_ENTRY', true); define('MS1_INSCR_GESTION_ENTRY', true);
require_once('php/inc_start_time.php'); require_once('php/inc_start_time.php');
require_once('php/inc_fonctions.php'); require_once('php/inc_fonctions.php');
require_once('php/inc_fx_messages.php'); require_once('php/inc_fx_messages.php');
require_once('php/inc_fx_compte.php'); require_once('php/inc_fx_compte.php');
require_once('php/inc_fx_promoteur.php'); require_once('php/inc_fx_promoteur.php');
require_once('php/inc_fx_inscriptions_mobile.php'); require_once('php/inc_fx_inscriptions_gestion.php');
global $objDatabase, $vDomaine, $vPage, $vtexte_page; global $objDatabase, $vDomaine, $vPage, $vtexte_page;
@ -17,7 +17,7 @@ if (!empty($_GET['lang'])) {
$strLangue = 'fr'; $strLangue = 'fr';
} }
fxInscrMobileInitTextes($strLangue); fxInscrGestionInitTextes($strLangue);
$vPage = 'mobile.php'; $vPage = 'mobile.php';
$strCode = 'mobile'; $strCode = 'mobile';
@ -49,7 +49,7 @@ if (!isset($_SESSION['com_id'])) {
if (isset($_SESSION['msg'])) { if (isset($_SESSION['msg'])) {
echo fxMessage($_SESSION['msg'], '', $strLangue); echo fxMessage($_SESSION['msg'], '', $strLangue);
} }
fxInscrMobileRenderLoginPage($strLangue); fxInscrGestionRenderLoginPage($strLangue);
?> ?>
</div> </div>
</div> </div>
@ -64,12 +64,12 @@ unset($_SESSION['affiche_pas_connexion']);
$intEveId = 0; $intEveId = 0;
if (!empty($_GET['promoteur_eve_id'])) { if (!empty($_GET['promoteur_eve_id'])) {
$intEveId = fxInscrMobileParseEveId($_GET['promoteur_eve_id']); $intEveId = fxInscrGestionParseEveId($_GET['promoteur_eve_id']);
} }
$tabEveIds = fxInscrMobileGetPromoteurEveIds($_SESSION['com_id']); $tabEveIds = fxInscrGestionGetPromoteurEveIds($_SESSION['com_id']);
if ($intEveId > 0 && !fxInscrMobileCanAccess($_SESSION['com_id'], $intEveId)) { if ($intEveId > 0 && !fxInscrGestionCanAccess($_SESSION['com_id'], $intEveId)) {
header('Location: ' . $vDomaine . '/mobile'); header('Location: ' . $vDomaine . '/mobile');
exit; exit;
} }
@ -110,10 +110,10 @@ require_once('inc_header.php');
: 'No active mobile registration access (v2) for this account.'; : 'No active mobile registration access (v2) for this account.';
echo '</div>'; echo '</div>';
} else { } else {
fxInscrMobileRenderEventPicker($tabEveIds, $strLangue, fxInscrMobileBaseUrl($strLangue, true)); fxInscrGestionRenderEventPicker($tabEveIds, $strLangue, fxInscrGestionBaseUrl($strLangue, true));
} }
} else { } else {
include('inc_tableau_inscriptions_mobile.php'); include('inc_tableau_inscriptions_gestion.php');
} }
?> ?>
</div> </div>

View File

@ -1514,17 +1514,17 @@ function fxShowMenuCompte($arrCompteClient, $strLangue)
} }
// Inscriptions mobile v2 — lien /mobile seulement si pas de menu promoteur legacy // Inscriptions mobile v2 — lien /mobile seulement si pas de menu promoteur legacy
if (!function_exists('fxInscrMobileGetPromoteurEveIds')) { if (!function_exists('fxInscrGestionGetPromoteurEveIds')) {
require_once dirname(__FILE__) . '/inc_fx_inscriptions_mobile.php'; require_once dirname(__FILE__) . '/inc_fx_inscriptions_gestion.php';
} }
$arrMobileEveIds = fxInscrMobileGetPromoteurEveIds($arrCompteClient['com_id']); $arrMobileEveIds = fxInscrGestionGetPromoteurEveIds($arrCompteClient['com_id']);
$blnShowMobileDirect = (count($arrMobileEveIds) > 0 && !fxInscrMobileUserHasPromoteurMenu($arrCompteClient['com_id'])); $blnShowMobileDirect = (count($arrMobileEveIds) > 0 && !fxInscrGestionUserHasPromoteurMenu($arrCompteClient['com_id']));
if ($blnShowMobileDirect) { if ($blnShowMobileDirect) {
$strMobileUrl = $vDomaine . '/mobile'; $strMobileUrl = $vDomaine . '/mobile';
if (count($arrMobileEveIds) === 1) { if (count($arrMobileEveIds) === 1) {
$strMobileUrl .= '?promoteur_eve_id=' . urlencode(base64_encode($arrMobileEveIds[0])); $strMobileUrl .= '?promoteur_eve_id=' . urlencode(base64_encode($arrMobileEveIds[0]));
} }
$strMobileLabel = fxInscrMobilePromoteurMenuLabel(); $strMobileLabel = fxInscrGestionPromoteurMenuLabel();
$strRetour .= ' $strRetour .= '
<li class="nav-item"> <li class="nav-item">
<a class="nav-list" href="' . $strMobileUrl . '"><i class="fa fa-users" aria-hidden="true"></i> ' <a class="nav-list" href="' . $strMobileUrl . '"><i class="fa fa-users" aria-hidden="true"></i> '

View File

@ -162,7 +162,7 @@ function fxEveAccesGetEventIds($intComId)
} }
/** Acces web gestion inscriptions : vue API/page OU au moins une permission action inscriptions_gestion.* */ /** Acces web gestion inscriptions : vue API/page OU au moins une permission action inscriptions_gestion.* */
function fxEveAccesHasInscrMobileWebAccess($intComId, $intEveId) function fxEveAccesHasInscrGestionWebAccess($intComId, $intEveId)
{ {
if (fxEveAccesHasAnyPermission(intval($intComId), intval($intEveId), array('registrations.view', 'inscriptions_gestion.view'))) { if (fxEveAccesHasAnyPermission(intval($intComId), intval($intEveId), array('registrations.view', 'inscriptions_gestion.view'))) {
return true; return true;
@ -183,7 +183,7 @@ function fxEveAccesHasInscrMobileWebAccess($intComId, $intEveId)
return ($intNb != null && intval($intNb) > 0); return ($intNb != null && intval($intNb) > 0);
} }
function fxEveAccesGetEventIdsWithInscrMobileAccess($intComId) function fxEveAccesGetEventIdsWithInscrGestionAccess($intComId)
{ {
global $objDatabase; global $objDatabase;

File diff suppressed because it is too large Load Diff

View File

@ -300,12 +300,12 @@ function fxPromoteurHubGetEvents($intComId, $strLangue = 'fr')
'url_mobile' => '', 'url_mobile' => '',
); );
if (!function_exists('fxInscrMobileCanAccess')) { if (!function_exists('fxInscrGestionCanAccess')) {
require_once __DIR__ . '/inc_fx_inscriptions_mobile.php'; require_once __DIR__ . '/inc_fx_inscriptions_gestion.php';
} }
if (fxInscrMobileCanAccess(intval($intComId), $intEveId)) { if (fxInscrGestionCanAccess(intval($intComId), $intEveId)) {
$arrItem['url_mobile'] = fxInscrMobileBaseUrl($strLang, false) $arrItem['url_mobile'] = fxInscrGestionBaseUrl($strLang, false)
. '?promoteur_eve_id=' . urlencode(base64_encode($intEveId)); . '?promoteur_eve_id=' . urlencode(base64_encode($intEveId));
} }
@ -426,8 +426,8 @@ function fxPromoteurHubGetEventLinks($arrItem, $strLangue)
$arrGestion[] = array('label' => afficheTexte('tableau_promoteur_menueinscription', 0), 'url' => $strCompte . 'inc_tableau_inscriptions?promoteur_eve_id=' . $strE . '&lng=' . $strLangue, 'icon' => 'fa-users'); $arrGestion[] = array('label' => afficheTexte('tableau_promoteur_menueinscription', 0), 'url' => $strCompte . 'inc_tableau_inscriptions?promoteur_eve_id=' . $strE . '&lng=' . $strLangue, 'icon' => 'fa-users');
if (function_exists('fxInscrMobileCanAccess') && fxInscrMobileCanAccess($intComId, $intEveId)) { if (function_exists('fxInscrGestionCanAccess') && fxInscrGestionCanAccess($intComId, $intEveId)) {
$arrGestion[] = array('label' => fxInscrMobilePromoteurMenuLabel(), 'url' => $strCompte . 'inc_tableau_inscriptions_mobile?promoteur_eve_id=' . $strE . '&lng=' . $strLangue, 'icon' => 'fa-users'); $arrGestion[] = array('label' => fxInscrGestionPromoteurMenuLabel(), 'url' => $strCompte . 'inc_tableau_inscriptions_gestion?promoteur_eve_id=' . $strE . '&lng=' . $strLangue, 'icon' => 'fa-users');
} }
$arrGestion[] = array('label' => afficheTexte('tableau_promoteur_rabais', 0), 'url' => $strCompte . 'inc_tableau_rabais?promoteur_eve_id=' . $strE . '&lng=' . $strLangue, 'icon' => 'fa-money'); $arrGestion[] = array('label' => afficheTexte('tableau_promoteur_rabais', 0), 'url' => $strCompte . 'inc_tableau_rabais?promoteur_eve_id=' . $strE . '&lng=' . $strLangue, 'icon' => 'fa-money');

View File

@ -7,7 +7,7 @@
* Constantes * * Constantes *
* *
**************/ **************/
define('_VERSION_CODE', '4.72.706'); define('_VERSION_CODE', '4.72.707');
define('_DATE_CODE', '2026-06-27'); define('_DATE_CODE', '2026-06-27');
//MSIN-4290 //MSIN-4290
define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe'); define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');

View File

@ -0,0 +1,32 @@
-- =====================================================================
-- MSIN — Retrait du nom "mobile" du module de gestion des inscriptions
-- ---------------------------------------------------------------------
-- Renomme cote BD ce qui accompagne le renommage du code :
-- * route/page : compte_inc_tableau_inscriptions_mobile -> _gestion
-- * cles i18n : inscr_mobile_* -> inscr_gestion_*
-- Le slug public /mobile (entree mobile reelle) n'est PAS touche.
-- Script idempotent : peut etre rejoue sans erreur.
-- =====================================================================
-- 1) Page (route) : renommer le slug + le libelle administratif.
UPDATE inscriptions_pages
SET pag_code = 'compte_inc_tableau_inscriptions_gestion',
pag_label_fr = 'Gestion des inscriptions',
pag_label_en = 'Registration management'
WHERE pag_code = 'compte_inc_tableau_inscriptions_mobile';
-- 2) Cles i18n : inscr_mobile_* -> inscr_gestion_*
-- Securite (idempotence) : on retire d'abord toute cible "gestion"
-- qui aurait ENCORE son jumeau "mobile" — cas d'une execution
-- precedente interrompue — afin d'eviter une collision de cle.
DELETE g
FROM info g
JOIN info m
ON m.info_langue = g.info_langue
AND m.info_prg = g.info_prg
AND m.info_clef = CONCAT('inscr_mobile_', SUBSTRING(g.info_clef FROM 15))
WHERE g.info_clef LIKE 'inscr_gestion_%';
UPDATE info
SET info_clef = CONCAT('inscr_gestion_', SUBSTRING(info_clef FROM 14))
WHERE info_clef LIKE 'inscr_mobile_%';