From 56ae593d5e2877de496ca2c84b143df22a6b8031 Mon Sep 17 00:00:00 2001 From: Spythere Date: Fri, 29 Nov 2024 01:30:12 +0100 Subject: [PATCH] chore: added new wiki list filters --- src/components/tabs/WikiListTab.vue | 49 +++++++++++++++++++++++------ src/locales/en.json | 22 ++++++++----- src/locales/pl.json | 10 ++++-- 3 files changed, 61 insertions(+), 20 deletions(-) diff --git a/src/components/tabs/WikiListTab.vue b/src/components/tabs/WikiListTab.vue index 010243a..2ca7612 100644 --- a/src/components/tabs/WikiListTab.vue +++ b/src/components/tabs/WikiListTab.vue @@ -104,13 +104,22 @@ import stockMixin from '../../mixins/stockMixin'; import imageMixin from '../../mixins/imageMixin'; const sorters = ['type', 'group', 'length', 'weight', 'maxSpeed'] as const; -const filters = ['vehicles-all', 'vehicles-traction', 'vehicles-wagon'] as const; + +enum VehicleFilter { + AllVehicles = 'vehicles-all', + AllTractions = 'vehicles-tractions-all', + ElectricTraction = 'vehicles-tractions-electric', + DieselTraction = 'vehicles-tractions-diesel', + EmuTraction = 'vehicles-tractions-emu', + DmuTraction = 'vehicles-tractions-dmu', + AllWagons = 'vehicles-wagons-all', + PassengerWagons = 'vehicles-wagons-passenger', + FreightWagons = 'vehicles-wagons-freight', +} type SorterType = (typeof sorters)[number]; type SorterDirection = 'asc' | 'desc'; -type FilterType = (typeof filters)[number]; - export default defineComponent({ mixins: [stockPreviewMixin, stockMixin, imageMixin], @@ -120,14 +129,14 @@ export default defineComponent({ observer: null as IntersectionObserver | null, sorters: sorters, - filters: filters, + filters: Object.values(VehicleFilter), searchedVehicleTypeName: '', sorterType: 'type' as SorterType, sorterDirection: 'asc' as SorterDirection, - filterType: 'vehicles-all' as FilterType, + filterType: VehicleFilter.AllVehicles, lastScrollTop: 0, }; @@ -170,11 +179,31 @@ export default defineComponent({ ) return false; - if ( - (this.filterType == 'vehicles-traction' && !isTractionUnit(v)) || - (this.filterType == 'vehicles-wagon' && isTractionUnit(v)) - ) - return false; + switch (this.filterType) { + case VehicleFilter.AllTractions: + return isTractionUnit(v); + + case VehicleFilter.ElectricTraction: + return isTractionUnit(v) && v.group == 'loco-electric'; + + case VehicleFilter.DieselTraction: + return isTractionUnit(v) && v.group == 'loco-diesel'; + + case VehicleFilter.EmuTraction: + return isTractionUnit(v) && v.group == 'unit-electric'; + + case VehicleFilter.DmuTraction: + return isTractionUnit(v) && v.group == 'unit-diesel'; + + case VehicleFilter.AllWagons: + return !isTractionUnit(v); + + case VehicleFilter.PassengerWagons: + return !isTractionUnit(v) && v.group == 'wagon-passenger'; + + case VehicleFilter.FreightWagons: + return !isTractionUnit(v) && v.group == 'wagon-freight'; + } return true; }, diff --git a/src/locales/en.json b/src/locales/en.json index a8acb06..b4a3af8 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -128,20 +128,20 @@ "EI": "EI - domestic express", "EC": "EC - international express", "EN": "EN - domestic night express", - + "MP": "MP - intervoivodeship bullet", "MO": "MO - intervoivodeship regio", "MM": "MM - international bullet", "MH": "MH - intervoivodeship night bullet", - + "RP": "RP - voivodeship bullet", "RM": "RM - international voivodeship regio", "RO": "RO - voivodeship regio", "RA": "RA - voivodeship regio (urban)", - + "PW": "PW - empty passenger", "PX": "PX - empty passenger test drive", - + "TC": "TC - international freight (intermodal)", "TG": "TG - international freight (organized cargo)", "TR": "TR - international freight (unorganized cargo)", @@ -151,12 +151,12 @@ "TK": "TK - freight (for stations & sidings)", "TS": "TS - empty freight test drive", "TH": "TH - locomotive rolling stock (over 3 vehicles)", - + "LT": "LT - freight locomotive only", "LP": "LP - passenger locomotive only", "LS": "LS - shunting locomotive only", "LZ": "LS - shunting locomotive only", - + "ZN": "ZN - inspection / diagnostic type", "ZU": "ZU - other maintenance type" } @@ -173,8 +173,14 @@ }, "filters": { "vehicles-all": "all", - "vehicles-traction": "traction units", - "vehicles-wagon": "wagons" + "vehicles-tractions-all": "traction units - all", + "vehicles-tractions-electric": "electric locomotives", + "vehicles-tractions-diesel": "diesel locomotives", + "vehicles-tractions-emu": "electric units", + "vehicles-tractions-dmu": "diesel units", + "vehicles-wagons-all": "wagons - all", + "vehicles-wagons-passenger": "wagons - passenger", + "vehicles-wagons-freight": "wagons - freight" }, "sort-by": { "type": "name", diff --git a/src/locales/pl.json b/src/locales/pl.json index a7990a5..136ae01 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -173,8 +173,14 @@ }, "filters": { "vehicles-all": "wszystkie", - "vehicles-traction": "trakcyjne", - "vehicles-wagon": "wagony" + "vehicles-tractions-all": "trakcyjne - wszystkie", + "vehicles-tractions-electric": "elektrowozy", + "vehicles-tractions-diesel": "spalinowozy", + "vehicles-tractions-emu": "EZT", + "vehicles-tractions-dmu": "SZT", + "vehicles-wagons-all": "wagony - wszystkie", + "vehicles-wagons-passenger": "wagony pasażerskie", + "vehicles-wagons-freight": "wagony towarowe" }, "sort-by": { "type": "nazwa",