Added Support and Analytics for Release

This commit is contained in:
2026-07-10 21:59:35 +10:00
parent d765161b9a
commit 85eeba982f
24 changed files with 673 additions and 320 deletions
@@ -25,6 +25,21 @@ const props = defineProps<{
const page = usePage<SharedProps>()
const reasonBadgeVariant = (reason: string) => {
switch (reason) {
case 'No Particular Reason':
return 'economy'
case 'Pleasure':
return 'generic'
case 'Business':
return 'business'
case 'Crew':
return 'crew'
case 'Visiting Friends / Relatives':
return 'general_aviation'
}
}
const showColumn = (column: string) => props.columnsToShow.includes(column)
</script>
@@ -50,6 +65,19 @@ const showColumn = (column: string) => props.columnsToShow.includes(column)
</div>
</td>
<td v-if="showColumn('airline.name')" class="v-data-table__td">
<Mono >{{ flight.airline?.name }}</Mono>
</td>
<td v-if="showColumn('airline.iata_code')" class="v-data-table__td ">
<Mono muted small >{{ flight.airline?.iata_code }}</Mono>
</td>
<td v-if="showColumn('airline.icao_code')" class="v-data-table__td ">
<Mono muted small>{{ flight.airline?.icao_code }}</Mono>
</td>
<td v-if="showColumn('departure_airport')" class="v-data-table__td">
<AirportToolTip :airport="flight.departure_airport">
<Mono class="iata">{{ flight.departure_airport.display_code }}</Mono><br/>
@@ -89,6 +117,21 @@ const showColumn = (column: string) => props.columnsToShow.includes(column)
</Mono>
</td>
<td v-if="showColumn('aircraft.manufacturer_code')" class="v-data-table__td aircraft-cell">
<Mono muted small>{{ flight.aircraft?.manufacturer_code }}</Mono>
</td>
<td v-if="showColumn('aircraft.model_full_name')" class="v-data-table__td aircraft-cell">
<Mono muted small>{{ flight.aircraft?.model_full_name }}</Mono>
</td>
<td v-if="showColumn('aircraft.display_name_short')" class="v-data-table__td aircraft-cell">
<AircraftToolTip v-if="flight.aircraft" :aircraft="flight.aircraft" :flight="flight">
<Mono muted small>{{ flight.aircraft?.display_name_short }}</Mono>
</AircraftToolTip>
</td>
<td v-if="showColumn('aircraft')" class="v-data-table__td aircraft-cell">
<AircraftToolTip v-if="flight.aircraft" :aircraft="flight.aircraft" :flight="flight">
<Mono muted small>{{ flight.aircraft?.designator }}</Mono>
@@ -99,6 +142,22 @@ const showColumn = (column: string) => props.columnsToShow.includes(column)
<Mono muted smaller v-if="flight.aircraft_registration">{{ flight.aircraft_registration }}</Mono>
</td>
<td v-if="showColumn('flight_class')" class="v-data-table__td class-badges-cell">
<FlightClassBadge :flight="flight" />
</td>
<td v-if="showColumn('seat_type_id')" class="v-data-table__td class-badges-cell">
<InlineBadge v-if="flight.seat_type?.name && flight.seat_type?.name !== 'Unassigned'" variant="economy">{{ flight.seat_type?.name }}</InlineBadge>
</td>
<td v-if="showColumn('seat_number')" class="v-data-table__td class-badges-cell">
<InlineBadge v-if="flight.seat_number" variant="economy">{{ flight.seat_number }}</InlineBadge>
</td>
<td v-if="showColumn('flight_reason_id')" class="v-data-table__td class-badges-cell">
<InlineBadge v-if="flight.flight_reason" :variant="reasonBadgeVariant(flight.flight_reason.name)">{{ flight.flight_reason?.name.replace('Visiting Friends / Relatives', 'VFR') }}</InlineBadge>
</td>
<td v-if="showColumn('class_seat_combined')" class="v-data-table__td class-badges-cell">
<span class="class-cell">
<CrewTooltip v-if="flight.flight_reason?.name == 'Crew'" :crew-type="flight.crew_type!">