From f74fbc30920dada1fa29cbb1bf94963ee1ee3d77 Mon Sep 17 00:00:00 2001 From: stephan Date: Tue, 21 Jul 2026 15:30:04 -0400 Subject: [PATCH] =?UTF-8?q?MSIN-4470=20=E2=80=94=20Implement=20functionali?= =?UTF-8?q?ty=20to=20position=20the=20PDF=20tool=20detail=20dynamically=20?= =?UTF-8?q?based=20on=20the=20selected=20tool.=20Update=20race=20label=20h?= =?UTF-8?q?andling=20in=20production=20XML=20generation=20to=20avoid=20rep?= =?UTF-8?q?etition.=20Add=20default=20slot=20for=20tool=20detail=20in=20th?= =?UTF-8?q?e=20UI.=20Increment=20version=20code=20to=204.72.860.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/v2/bib-assignments.js | 21 +++++++++++++++++++++ php/inc_fx_bib_production.php | 6 ++++-- php/inc_fx_promoteur.php | 1 + php/inc_settings.php | 2 +- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/js/v2/bib-assignments.js b/js/v2/bib-assignments.js index 5430b74..fa5b7ac 100644 --- a/js/v2/bib-assignments.js +++ b/js/v2/bib-assignments.js @@ -635,6 +635,25 @@ : ''; } + // MSIN-4470 — Le panneau PDF s'ouvre immédiatement sous la barre supérieure. + function bibPositionToolDetail(toolId) { + var detail = document.getElementById('bib-tool-detail'); + var defaultSlot = document.getElementById('bib-tool-detail-default-slot'); + if (!detail || !defaultSlot || !defaultSlot.parentNode) { + return; + } + + if (toolId === 'dist_print') { + var firstWorkspacePanel = moduleBib.querySelector('[data-bib-workspace-panel]'); + if (firstWorkspacePanel && firstWorkspacePanel.parentNode) { + firstWorkspacePanel.parentNode.insertBefore(detail, firstWorkspacePanel); + } + return; + } + + defaultSlot.parentNode.insertBefore(detail, defaultSlot.nextSibling); + } + function bibCloseTool() { if (!bibActiveTool) { return; @@ -655,6 +674,7 @@ if (detail) { detail.classList.add('bib-ui-hidden'); } + bibPositionToolDetail(null); } function bibSyncToolNavBadges(toolId) { @@ -795,6 +815,7 @@ bibActiveTool = toolId; bibSetActiveToolButton(toolId); bibSetToolDetailTitle(toolId); + bibPositionToolDetail(toolId); var detail = document.getElementById('bib-tool-detail'); if (detail) { diff --git a/php/inc_fx_bib_production.php b/php/inc_fx_bib_production.php index a9ef2b1..db37a8e 100644 --- a/php/inc_fx_bib_production.php +++ b/php/inc_fx_bib_production.php @@ -450,9 +450,11 @@ function fxBibProductionBuildOrderXml($strXml, array $tabSnapshot, array $tabLab $tabOrderRows = []; foreach ($tabSnapshot['races'] as $tabRace) { - foreach ($tabRace['ranges'] as $tabRange) { + foreach ($tabRace['ranges'] as $intRangeIndex => $tabRange) { $tabOrderRows[] = [ - 'label' => $tabRace['label'], + // MSIN-4470 — Une ligne reste réservée à chaque séquence, + // mais le nom de l'épreuve n'est répété que sur la première. + 'label' => $intRangeIndex === 0 ? $tabRace['label'] : '', 'start' => (int)$tabRange['start'], 'finish' => (int)$tabRange['finish'], 'quantity' => (int)$tabRange['quantity'], diff --git a/php/inc_fx_promoteur.php b/php/inc_fx_promoteur.php index 559acd2..0ba7f50 100644 --- a/php/inc_fx_promoteur.php +++ b/php/inc_fx_promoteur.php @@ -5223,6 +5223,7 @@ function renderBibToolNav($int_eve_id, $tabEpreuves, $strLangue = 'fr') { +
diff --git a/php/inc_settings.php b/php/inc_settings.php index 3994a6d..10defe6 100644 --- a/php/inc_settings.php +++ b/php/inc_settings.php @@ -7,7 +7,7 @@ * Constantes * * **************/ -define('_VERSION_CODE', '4.72.858'); // MSIN-4470 +define('_VERSION_CODE', '4.72.860'); // MSIN-4470 define('_DATE_CODE', '2026-07-21'); //MSIN-4290 define('QR_SECRET_KEY', 'ms1_qr_2026_cle_secrete_longue_et_fixe');