Enhance mobile registration interface by introducing key-value list rendering functions and updating CSS for improved layout. This commit adds new functions to render participant profile details in a structured format, enhancing readability and organization. The CSS is updated to support the new layout, including adjustments to padding and grid structure. The version code is incremented to 4.72.680 to reflect these changes, further improving the user experience in mobile registrations.

This commit is contained in:
2026-06-19 10:03:01 -04:00
parent 6bffbba726
commit 3a3ebec2bf
3 changed files with 112 additions and 45 deletions

View File

@ -2730,6 +2730,43 @@ a.ms1-trad-link.btn-aide-trad{
padding:12px;
}
.inscr-mobile-kv-list{
padding:4px 12px 8px;
}
.inscr-mobile-kv-row{
display:grid;
grid-template-columns:minmax(120px, 34%) 1fr;
gap:6px 16px;
align-items:baseline;
padding:4px 0;
border-bottom:1px solid #f1f3f5;
font-size:13px;
line-height:1.35;
}
.inscr-mobile-kv-row:last-child{
border-bottom:none;
}
.inscr-mobile-kv-row--profile{
border-top:1px solid #e9ecef;
margin-top:2px;
padding-top:6px;
}
.inscr-mobile-kv-row__label{
font-weight:600;
color:#6c757d;
font-size:12px;
}
.inscr-mobile-kv-row__value{
color:#212529;
min-width:0;
word-break:break-word;
}
.inscr-mobile-dl dt{
font-size:12px;
font-weight:600;
@ -2746,15 +2783,6 @@ a.ms1-trad-link.btn-aide-trad{
font-size:14px;
}
.inscr-mobile-fiche-profile{
border-top:1px solid #eee;
margin-top:4px;
}
.inscr-mobile-dl--profile{
padding-top:8px;
}
.inscr-mobile-bib-row{
display:flex;
gap:8px;
@ -2819,4 +2847,10 @@ a.ms1-trad-link.btn-aide-trad{
margin-left:0;
text-align:left;
}
.inscr-mobile-kv-row{
grid-template-columns:1fr;
gap:2px;
padding:6px 0;
}
}

View File

@ -209,6 +209,35 @@ function fxInscrMobileBibDisplay($arrRow) {
return fxShowBibNumber($arrRow['no_bib'], $arrRow['epr_id'], 'participant');
}
function fxInscrMobileRenderKvListOpen() {
echo '<div class="inscr-mobile-kv-list">';
}
function fxInscrMobileRenderKvListClose() {
echo '</div>';
}
function fxInscrMobileRenderKvRow($strLabel, $strValue, $blnHtml = false, $strExtraClass = '') {
if (!$blnHtml && trim((string)$strValue) === '') {
return;
}
$strClass = 'inscr-mobile-kv-row';
if ($strExtraClass !== '') {
$strClass .= ' ' . $strExtraClass;
}
echo '<div class="' . fxInscrMobileEsc($strClass) . '">';
echo '<div class="inscr-mobile-kv-row__label">' . fxInscrMobileEsc($strLabel) . '</div>';
echo '<div class="inscr-mobile-kv-row__value">';
if ($blnHtml) {
echo $strValue;
} else {
echo fxInscrMobileEsc($strValue);
}
echo '</div></div>';
}
function fxInscrMobileFetchFicheProfile($arrRow, $strLangue) {
global $objDatabase;
@ -293,42 +322,49 @@ function fxInscrMobileFetchFicheProfile($arrRow, $strLangue) {
);
}
function fxInscrMobileRenderFicheProfileDetails($arrRow, $strLangue) {
function fxInscrMobileRenderFicheProfileKvRows($arrRow, $strLangue) {
$tabProfile = fxInscrMobileFetchFicheProfile($arrRow, $strLangue);
$blnFirstProfile = true;
$blnHasRole = ($tabProfile['role'] !== '' && $tabProfile['name'] !== '');
$blnHasEmail = ($tabProfile['email'] !== '');
$blnHasBirth = ($tabProfile['birth_gender'] !== '');
$blnHasQuestions = (count($tabProfile['questions']) > 0);
if (!$blnHasRole && !$blnHasEmail && !$blnHasBirth && !$blnHasQuestions) {
return;
if ($tabProfile['role'] !== '' && $tabProfile['name'] !== '') {
fxInscrMobileRenderKvRow(
$tabProfile['role'],
$tabProfile['name'],
false,
$blnFirstProfile ? 'inscr-mobile-kv-row--profile' : ''
);
$blnFirstProfile = false;
}
echo '<div class="inscr-mobile-fiche-profile">';
echo '<dl class="inscr-mobile-dl inscr-mobile-dl--profile">';
if ($blnHasRole) {
echo '<dt>' . fxInscrMobileEsc($tabProfile['role']) . '</dt>';
echo '<dd>' . fxInscrMobileEsc($tabProfile['name']) . '</dd>';
if ($tabProfile['email'] !== '') {
fxInscrMobileRenderKvRow(
fxInscrMobileT('inscr_mobile_email'),
$tabProfile['email'],
false,
$blnFirstProfile ? 'inscr-mobile-kv-row--profile' : ''
);
$blnFirstProfile = false;
}
if ($blnHasEmail) {
echo '<dt>' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_email')) . '</dt>';
echo '<dd>' . fxInscrMobileEsc($tabProfile['email']) . '</dd>';
}
if ($blnHasBirth) {
echo '<dt>' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_birthdate')) . '</dt>';
echo '<dd>' . fxInscrMobileEsc($tabProfile['birth_gender']) . '</dd>';
if ($tabProfile['birth_gender'] !== '') {
fxInscrMobileRenderKvRow(
fxInscrMobileT('inscr_mobile_birthdate'),
$tabProfile['birth_gender'],
false,
$blnFirstProfile ? 'inscr-mobile-kv-row--profile' : ''
);
$blnFirstProfile = false;
}
foreach ($tabProfile['questions'] as $tabQuestion) {
echo '<dt>' . fxInscrMobileEsc($tabQuestion['label']) . '</dt>';
echo '<dd>' . fxInscrMobileEsc($tabQuestion['value']) . '</dd>';
fxInscrMobileRenderKvRow(
$tabQuestion['label'],
$tabQuestion['value'],
false,
$blnFirstProfile ? 'inscr-mobile-kv-row--profile' : ''
);
$blnFirstProfile = false;
}
echo '</dl></div>';
}
/** Code statut course par défaut (Confirmé). */
@ -819,15 +855,12 @@ function fxInscrMobileRenderFiche($intEveId, $strLangue, $strBaseUrl, $arrReq, $
echo '<div class="inscr-mobile-fiche-section inscr-mobile-fiche-section--details">';
fxInscrMobileRenderSectionTitle(fxInscrMobileT('inscr_mobile_details'), 'fa-info-circle');
echo '<dl class="inscr-mobile-dl">';
echo '<dt>' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_epreuve')) . '</dt>';
echo '<dd>' . fxInscrMobileEsc(fxInscrMobileEpreuveLabel($arrRow['epr_id'], $strLangue)) . '</dd>';
echo '<dt>' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_type')) . '</dt>';
echo '<dd>' . fxInscrMobileEsc($strDetailsType) . '</dd>';
echo '<dt>' . fxInscrMobileEsc(fxInscrMobileT('inscr_mobile_modified')) . '</dt>';
echo '<dd>' . fxCheckMAJ($arrRow['pec_id_original'], $intParId, $strLangue) . '</dd>';
echo '</dl>';
fxInscrMobileRenderFicheProfileDetails($arrRow, $strLangue);
fxInscrMobileRenderKvListOpen();
fxInscrMobileRenderKvRow(fxInscrMobileT('inscr_mobile_epreuve'), fxInscrMobileEpreuveLabel($arrRow['epr_id'], $strLangue));
fxInscrMobileRenderKvRow(fxInscrMobileT('inscr_mobile_type'), $strDetailsType);
fxInscrMobileRenderKvRow(fxInscrMobileT('inscr_mobile_modified'), fxCheckMAJ($arrRow['pec_id_original'], $intParId, $strLangue), true);
fxInscrMobileRenderFicheProfileKvRows($arrRow, $strLangue);
fxInscrMobileRenderKvListClose();
echo '</div>';
$strStyleEdit = $strStyleCancel = '';

View File

@ -7,7 +7,7 @@
* Constantes *
*
**************/
define('_VERSION_CODE', '4.72.679');
define('_VERSION_CODE', '4.72.680');
define('_DATE_CODE', '2026-06-18');
//MSIN-4290
define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');