Number tracks without titles

This commit is contained in:
Elias Projahn 2023-11-24 14:26:12 +01:00
parent 19670da538
commit e26444c982

View file

@ -194,29 +194,36 @@ impl MusicusHomePage {
let mut tracks = tracks.into_iter(); let mut tracks = tracks.into_iter();
let first_track = tracks.next().unwrap(); let first_track = tracks.next().unwrap();
let track_title = |track: &Track| -> String { let track_title = |track: &Track, number: usize| -> String {
track let title = track
.work_parts .work_parts
.iter() .iter()
.map(|w| work_parts[*w].clone()) .map(|w| work_parts[*w].clone())
.collect::<Vec<String>>() .collect::<Vec<String>>()
.join(", ") .join(", ");
if title.is_empty() {
format!("Track {number}")
} else {
title
}
}; };
items.push(PlaylistItem::new( items.push(PlaylistItem::new(
true, true,
&title, &title,
performances.as_ref().map(|x| x.as_str()), performances.as_ref().map(|x| x.as_str()),
Some(&track_title(&first_track)), Some(&track_title(&first_track, 1)),
&first_track.path, &first_track.path,
)); ));
while let Some(track) = tracks.next() { for (index, track) in tracks.enumerate() {
items.push(PlaylistItem::new( items.push(PlaylistItem::new(
false, false,
&title, &title,
performances.as_ref().map(|x| x.as_str()), performances.as_ref().map(|x| x.as_str()),
Some(&track_title(&track)), // track number = track index + 1 (first track) + 1 (zero based)
Some(&track_title(&track, index + 2)),
&track.path, &track.path,
)); ));
} }