Fix ordre des pistes dans virtual sample
All checks were successful
Deploy Preprod / Build and Deploy to Preprod (push) Successful in 30s

Respect de l'ordre des groupes défini dans le champ groups du panel.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-01-30 08:29:14 +01:00
parent f9be7fa025
commit 2b5175900c

View file

@ -142,19 +142,19 @@ class ProjectPage extends NotificationsPage {
if ($child->hasChildren()) {
$files['dynamic'] = [];
foreach ($child->children() as $key => $track) {
$trackData = [
'title' => (string) $track->title(),
'slug' => (string) $track->slug(),
'backgroundColor' => (string) $track->backgroundColor(),
'files' => [],
];
];
foreach ($track->views()->toFiles() as $view) {
$trackData['files'][] = getFileData($view, true);
}
if ($track->group()->isNotEmpty()) {
$files['dynamic'][$track->group()->value()][] = $trackData;
} else {
@ -162,12 +162,36 @@ class ProjectPage extends NotificationsPage {
}
}
// Récupérer l'ordre des groupes depuis le champ groups
$orderedGroups = $child->groups()->split();
// Réorganiser $files['dynamic'] selon l'ordre défini
if (!empty($orderedGroups)) {
$orderedDynamic = [];
foreach ($orderedGroups as $group) {
if (isset($files['dynamic'][$group])) {
$orderedDynamic[$group] = $files['dynamic'][$group];
}
}
// Ajouter les groupes non définis dans le champ à la fin
foreach ($files['dynamic'] as $group => $tracks) {
if (!isset($orderedDynamic[$group])) {
$orderedDynamic[$group] = $tracks;
}
}
$files['dynamic'] = $orderedDynamic;
}
// Toujours mettre "Autres pistes" à la fin
if (isset($files['dynamic']['Autres pistes'])) {
$others = $files['dynamic']['Autres pistes'];
unset($files['dynamic']['Autres pistes']);
$files['dynamic']['Autres pistes'] = $others;
}
}
if ($child->rawGlass()->isNotEmpty() || $child->finishedGlass()->isNotEmpty()) {
@ -177,7 +201,7 @@ class ProjectPage extends NotificationsPage {
if ($child->rawGlass()->isNotEmpty()) {
$files['static']['rawGlass'] = getFileData($child->rawGlass()->toFile());
}
if ($child->finishedGlass()->isNotEmpty()) {
$files['static']['finishedGlass'] = getFileData($child->finishedGlass()->toFile());
}