Added Crew and General Aviation Filters
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
import MainLayout from "@/Layouts/MainLayout.vue";
|
||||
import { Head } from '@inertiajs/vue3'
|
||||
import {ref, computed, defineAsyncComponent, watchEffect, onMounted} from 'vue'
|
||||
import {ref, computed, watchEffect} from 'vue'
|
||||
import { Flight, ProfileView, User } from "@/Types/types"
|
||||
import { router } from '@inertiajs/vue3'
|
||||
import { useFlightStats, FlightStats } from "@/Composables/useFlightStats"
|
||||
import { useFlightStats } from "@/Composables/useFlightStats"
|
||||
import ProfileViewSwitcher from "@/Components/FlightsGoneBy/ProfileViewSwitcher.vue"
|
||||
import ProfileLayout from "@/Components/FlightsGoneBy/ProfileLayout.vue"
|
||||
import DepartureBoard from "@/Components/FlightsGoneBy/DepartureBoard.vue"
|
||||
@@ -29,6 +29,7 @@ const selectedAirlines = ref<number[]>([])
|
||||
const selectedCountries = ref<string[]>([])
|
||||
const selectedContinents = ref<string[]>([])
|
||||
const selectedFlightClasses = ref<number[]>([])
|
||||
const selectedCrewTypes = ref<number[]>([])
|
||||
|
||||
function onFiltersChange(filters: {
|
||||
years: number[]
|
||||
@@ -36,18 +37,17 @@ function onFiltersChange(filters: {
|
||||
countries: string[]
|
||||
continents: string[]
|
||||
flightClasses: number[]
|
||||
crewTypes: number[]
|
||||
}) {
|
||||
localSelectedFlightId.value = null
|
||||
console.time('filter+stats')
|
||||
selectedYears.value = filters.years
|
||||
selectedAirlines.value = filters.airlines
|
||||
selectedCountries.value = filters.countries
|
||||
selectedContinents.value = filters.continents
|
||||
selectedFlightClasses.value = filters.flightClasses
|
||||
console.timeEnd('filter+stats')
|
||||
selectedCrewTypes.value = filters.crewTypes
|
||||
}
|
||||
|
||||
|
||||
function matchesFilters(f: Flight): boolean {
|
||||
const date = new Date(f.departure_date)
|
||||
if (selectedYears.value.length && !selectedYears.value.includes(date.getFullYear())) return false
|
||||
@@ -62,8 +62,10 @@ function matchesFilters(f: Flight): boolean {
|
||||
const arrCode = f.arrival_airport.region?.continent?.code
|
||||
if (!selectedContinents.value.includes(depCode ?? '') && !selectedContinents.value.includes(arrCode ?? '')) return false
|
||||
}
|
||||
return !(selectedFlightClasses.value.length && !selectedFlightClasses.value.includes(f.flight_class?.id ?? -1));
|
||||
if (selectedFlightClasses.value.length && !selectedFlightClasses.value.includes(f.flight_class?.id ?? -1)) return false
|
||||
if (selectedCrewTypes.value.length && !selectedCrewTypes.value.includes(f.crew_type?.id ?? -1)) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
const filteredFlights = computed(() => {
|
||||
@@ -77,7 +79,6 @@ const stats = useFlightStats(filteredFlights)
|
||||
|
||||
watchEffect(() => {
|
||||
console.time('all.charts.input')
|
||||
// just access each stat to trigger the log
|
||||
const _ = [
|
||||
stats.perYear.value,
|
||||
stats.perMonth.value,
|
||||
|
||||
Reference in New Issue
Block a user