diff --git a/src/routes/events/[event_id]/(badges)/badges/+page.svelte b/src/routes/events/[event_id]/(badges)/badges/+page.svelte index cfb7cbcc..d8313175 100644 --- a/src/routes/events/[event_id]/(badges)/badges/+page.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/+page.svelte @@ -317,6 +317,26 @@ async function handle_search_refresh(params: any) { ); case 'print_count_desc': return (b.print_count ?? 0) - (a.print_count ?? 0); + case 'print_first_desc': + return ( + new Date(b.print_first_datetime || 0).getTime() - + new Date(a.print_first_datetime || 0).getTime() + ); + case 'print_last_desc': + return ( + new Date(b.print_last_datetime || 0).getTime() - + new Date(a.print_last_datetime || 0).getTime() + ); + case 'badge_type_asc': + return (a.badge_type_code ?? '').localeCompare( + b.badge_type_code ?? '' + ); + case 'affiliations_asc': + return ( + (a.affiliations_override ?? a.affiliations ?? '').localeCompare( + b.affiliations_override ?? b.affiliations ?? '' + ) + ); default: return (a.given_name ?? '').localeCompare( b.given_name ?? '' @@ -372,6 +392,18 @@ async function handle_search_refresh(params: any) { case 'print_count_desc': order_by_li = { print_count: 'DESC' }; break; + case 'print_first_desc': + order_by_li = { print_first_datetime: 'DESC' }; + break; + case 'print_last_desc': + order_by_li = { print_last_datetime: 'DESC' }; + break; + case 'badge_type_asc': + order_by_li = { badge_type_code: 'ASC' }; + break; + case 'affiliations_asc': + order_by_li = { affiliations: 'ASC' }; + break; default: order_by_li = { given_name: 'ASC' }; }