'
. ''
. '' . $strMsg . ''
. '';
}
function fxChronotrackApiAdminRenderLoaderAssets($vDomaine) {
echo '';
echo '';
}
function fxChronotrackApiAdminRenderEventLinkPicker($blnClosed) {
echo '
Lecture seule.
'; } else { echo 'Cliquez sur « Charger la liste » pour voir les événements à venir (tri par date).
'; echo 'Événement lié à ChronoTrack.'; echo ' La configuration, l’envoi et le diagnostic s’ouvrent en fenêtre opération (plein écran).
'; echo ''; echo 'Statut : ' . fxChronotrackApiAdminEsc(fxChronotrackApiConfigStatusLabel($strStatus)) . ''; echo ' — CT : ' . fxChronotrackApiAdminEsc($arrConfig['ct_event_name'] ?? '') . ''; echo ' (ID ' . intval($arrConfig['ct_event_id'] ?? 0) . ')'; if ($blnClosed) { echo ' — fermé'; } echo '
'; echo '' . ' Ouvrir le tableau de bord (nouvelle fenêtre)'; echo '';
if ($blnAutoOn && $strUntilRaw !== '') {
echo 'Config enregistrée — cron auto_chronotrack_sync.php. Arrêt : '
. fxChronotrackApiAdminEsc($strUntilRaw) . '.';
} else {
echo 'Cochez, choisissez fréquence + date/heure de fin, puis Enregistrer.';
}
echo '
'; echo 'Dernier passage auto : '; if ($strLastAuto !== '' && $strLastAuto !== '0000-00-00 00:00:00') { echo fxChronotrackApiAdminEsc($strLastAuto); } else { echo 'jamais (le cron n’a pas encore poussé cet event)'; } echo '
'; echo ''; echo ''; echo 'Branchement MS1 ↔ ChronoTrack pour ' . fxChronotrackApiAdminEsc($arrEvent['eve_nom']) . ' (eve_id ' . intval($arrEvent['eve_id']) . '). Opération et config : Courses connectées.
'; if (!$blnConfigured) { echo 'Endpoint API : ' . fxChronotrackApiAdminEsc($strApiBase) . '';
if ($blnIsTestApi) {
echo ' QA';
} else {
echo ' prod';
}
echo '
Activer avant la course ; Terminer après pour bloquer la sync auto ' . 'et les changements de config. (La sync auto différentielle viendra ensuite.)
'; echo 'Aucune épreuve MS1 pour cet événement.
| Épreuve MS1 | Race ChronoTrack |
|---|---|
| ' . fxChronotrackApiAdminEsc($strLabel) . ' (epr_id ' . $intEprId . ') | '; if ($intCtRaceId > 0) { echo fxChronotrackApiAdminEsc($strCtRaceName !== '' ? $strCtRaceName : ('Race ID ' . $intCtRaceId)); echo ' (ID ' . $intCtRaceId . ')'; } else { echo '— Non mappé —'; } echo ' |
ChronoTrack event ID : ' . intval($arrConfig['ct_event_id'])
. ' — courses CT Live (race_name via GET event/{id}/race).
| Épreuve MS1 | Race ChronoTrack |
|---|---|
| ' . fxChronotrackApiAdminEsc($strLabel) . ' (epr_id ' . $intEprId . ') | '; echo ' |
En attente
'; echo 'Cliquez Actualiser pour vérifier s’il y a des changements.
'; echo ''; echo 'ChronoTrack Live : non chargé ' . '(outil dans Diagnostic).
'; echo 'Envoyer = nouveaux / modifiés. ' . 'Tout renvoyer = tous les éligibles (même barre %).
'; echo ''; echo ''; echo 'external ID = par_id_original. '
. 'Comptage Live / sondes → Diagnostic.
Outils de support et tests. Pas nécessaires pour l’opération courante.
'; echo 'Événements MS1 liés à ChronoTrack. « Ouvrir » lance le tableau de bord en nouvelle fenêtre (plein écran, sans menu).
'; if ($arrRows === null || count($arrRows) === 0) { echo '| Événement MS1 | ChronoTrack | Statut | |
|---|---|---|---|
| ' . fxChronotrackApiAdminEsc($arr['eve_nom']) . ' (' . intval($arr['eve_id']) . ') | '; echo '' . fxChronotrackApiAdminEsc($arr['ct_event_name']) . ' (' . intval($arr['ct_event_id']) . ') | '; echo '' . fxChronotrackApiAdminEsc(fxChronotrackApiConfigStatusLabel($arr['sync_status'])) . ' | '; echo 'Ouvrir | '; echo '