chore: added internal station routes filters

This commit is contained in:
2025-03-17 14:04:43 +01:00
parent e6c064d15d
commit e41b8cfa98
5 changed files with 41 additions and 14 deletions
@@ -121,7 +121,7 @@
</section> </section>
<section class="card_sliders"> <section class="card_sliders">
<div class="slider" v-for="(slider, i) in initSliders" :key="i"> <div class="slider" v-for="(slider, i) in sliderStates" :key="i">
<input <input
class="slider-input" class="slider-input"
type="range" type="range"
@@ -178,7 +178,7 @@ import StorageManager from '../../managers/storageManager';
import { import {
filtersSections, filtersSections,
initSliders, sliderStates,
initFilters, initFilters,
getChangedFilters getChangedFilters
} from '../../managers/stationFilterManager'; } from '../../managers/stationFilterManager';
@@ -197,7 +197,7 @@ export default defineComponent({
saveOptions: false, saveOptions: false,
filtersSections, filtersSections,
initSliders, sliderStates,
minimumHours: 0, minimumHours: 0,
authors: '', authors: '',
@@ -567,7 +567,8 @@ h3.section-header {
} }
.slider { .slider {
display: flex; display: grid;
grid-template-columns: 1fr 50px 1fr;
align-items: center; align-items: center;
gap: 0.25em; gap: 0.25em;
@@ -576,6 +577,7 @@ h3.section-header {
&-value { &-value {
color: $accentCol; color: $accentCol;
padding: 0.1em 0.2em; padding: 0.1em 0.2em;
text-align: center;
} }
&-input { &-input {
@@ -602,7 +604,8 @@ h3.section-header {
border-radius: 50%; border-radius: 50%;
background: white; background: white;
border: 4px solid $accentCol; border: 3px solid $accentCol;
background-color: #333;
@include smallScreen() { @include smallScreen() {
width: 15px; width: 15px;
@@ -658,6 +661,7 @@ h3.section-header {
@include smallScreen { @include smallScreen {
.slider { .slider {
display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; justify-content: center;
+9 -1
View File
@@ -120,6 +120,8 @@ function filterSliderValues(filters: Record<string, any>, generalInfo: StationGe
const otherAvailability = const otherAvailability =
availability == 'nonPublic' || availability == 'unavailable' || availability == 'abandoned'; availability == 'nonPublic' || availability == 'unavailable' || availability == 'abandoned';
const internalRoutes = routes.all.filter((r) => r.isInternal && !r.isRouteSBL && !r.hidden);
return ( return (
filters['minLevel'] > reqLevel + (otherAvailability ? 1 : 0) || filters['minLevel'] > reqLevel + (otherAvailability ? 1 : 0) ||
filters['maxLevel'] < reqLevel + (otherAvailability ? 1 : 0) || filters['maxLevel'] < reqLevel + (otherAvailability ? 1 : 0) ||
@@ -130,7 +132,13 @@ function filterSliderValues(filters: Record<string, any>, generalInfo: StationGe
filters['minOneWayCatenary'] > routes.singleElectrifiedNames.length || filters['minOneWayCatenary'] > routes.singleElectrifiedNames.length ||
filters['minOneWay'] > routes.singleOtherNames.length || filters['minOneWay'] > routes.singleOtherNames.length ||
filters['minTwoWayCatenary'] > routes.doubleElectrifiedNames.length || filters['minTwoWayCatenary'] > routes.doubleElectrifiedNames.length ||
filters['minTwoWay'] > routes.doubleOtherNames.length // filters['minTwoWay'] > routes.doubleOtherNames.length ||
filters['minOneWayCatenaryInt'] >
internalRoutes.filter((r) => r.routeTracks == 1 && r.isElectric == true).length ||
filters['minOneWayInt'] >
internalRoutes.filter((r) => r.routeTracks == 1 && r.isElectric == false).length ||
filters['minTwoWayCatenaryInt'] >
internalRoutes.filter((r) => r.routeTracks == 2 && r.isElectric == true).length
); );
} }
+5 -1
View File
@@ -271,7 +271,11 @@
"minOneWayCatenary": "MIN. CATENARY SINGLE TRACK ROUTES", "minOneWayCatenary": "MIN. CATENARY SINGLE TRACK ROUTES",
"minOneWay": "MIN. OTHER SINGLE TRACK ROUTES", "minOneWay": "MIN. OTHER SINGLE TRACK ROUTES",
"minTwoWayCatenary": "MIN. CATENARY DOUBLE TRACK ROUTES", "minTwoWayCatenary": "MIN. CATENARY DOUBLE TRACK ROUTES",
"minTwoWay": "MIN. OTHER DOUBLE TRACK ROUTES" "minTwoWay": "MIN. OTHER DOUBLE TRACK ROUTES",
"minOneWayCatenaryInt": "MIN. INTERNAL CATENARY SINGLE TRACK ROUTES",
"minOneWayInt": "MIN. INTERNAL OTHER SINGLE TRACK ROUTES",
"minTwoWayCatenaryInt": "MIN. INTERNAL CATENARY DOUBLE TRACK ROUTES",
"minTwoWayInt": "MIN. INTERNAL OTHER DOUBLE TRACK ROUTES"
}, },
"sceneries-search": "SCENERY SEARCH:", "sceneries-search": "SCENERY SEARCH:",
"sceneries-placeholder": "Enter scenery name...", "sceneries-placeholder": "Enter scenery name...",
+5 -1
View File
@@ -269,7 +269,11 @@
"minOneWayCatenary": "SZLAKI JEDNOTOROWE ZELEKTR. (MINIMUM)", "minOneWayCatenary": "SZLAKI JEDNOTOROWE ZELEKTR. (MINIMUM)",
"minOneWay": "SZLAKI JEDNOTOROWE NIEZELEKTR. (MINIMUM)", "minOneWay": "SZLAKI JEDNOTOROWE NIEZELEKTR. (MINIMUM)",
"minTwoWayCatenary": "SZLAKI DWUTOROWE ZELEKTR. (MINIMUM)", "minTwoWayCatenary": "SZLAKI DWUTOROWE ZELEKTR. (MINIMUM)",
"minTwoWay": "SZLAKI DWUTOROWE NIEZELEKTR. (MINIMUM)" "minTwoWay": "SZLAKI DWUTOROWE NIEZELEKTR. (MINIMUM)",
"minOneWayCatenaryInt": "SZLAKI JEDNOTOROWE ZELEKTR. WEWNĘTRZNE (MINIMUM)",
"minOneWayInt": "SZLAKI JEDNOTOROWE NIEZELEKTR. WEWNĘTRZNE (MINIMUM)",
"minTwoWayCatenaryInt": "SZLAKI DWUTOROWE ZELEKTR. WEWNĘTRZNE (MINIMUM)",
"minTwoWayInt": "SZLAKI DWUTOROWE NIEZELEKTR. WEWNĘTRZNE (MINIMUM)"
}, },
"sceneries-search": "WYSZUKAJ SCENERIĘ:", "sceneries-search": "WYSZUKAJ SCENERIĘ:",
"sceneries-placeholder": "Wpisz nazwę scenerii...", "sceneries-placeholder": "Wpisz nazwę scenerii...",
+12 -5
View File
@@ -59,22 +59,29 @@ export const initFilters = {
onlineFromHours: 0, onlineFromHours: 0,
minLevel: 0, minLevel: 0,
maxLevel: 20, maxLevel: 20,
minOneWayCatenary: 0,
minOneWay: 0, minOneWay: 0,
minOneWayCatenary: 0,
minTwoWayCatenary: 0, minTwoWayCatenary: 0,
minTwoWay: 0, minOneWayInt: 0,
minOneWayCatenaryInt: 0,
minTwoWayCatenaryInt: 0,
// minTwoWay: 0,
authors: '' authors: ''
}; };
export const initSliders = [ export const sliderStates = [
{ id: 'maxVmax', minRange: 0, maxRange: 200, step: 10 }, { id: 'maxVmax', minRange: 0, maxRange: 200, step: 10 },
{ id: 'minVmax', minRange: 0, maxRange: 200, step: 10 }, { id: 'minVmax', minRange: 0, maxRange: 200, step: 10 },
{ id: 'minLevel', minRange: 0, maxRange: 20, step: 1 }, { id: 'minLevel', minRange: 0, maxRange: 20, step: 1 },
{ id: 'maxLevel', minRange: 0, maxRange: 20, step: 1 }, { id: 'maxLevel', minRange: 0, maxRange: 20, step: 1 },
{ id: 'minOneWayCatenary', minRange: 0, maxRange: 5, step: 1 },
{ id: 'minOneWay', minRange: 0, maxRange: 5, step: 1 }, { id: 'minOneWay', minRange: 0, maxRange: 5, step: 1 },
{ id: 'minOneWayCatenary', minRange: 0, maxRange: 5, step: 1 },
{ id: 'minTwoWayCatenary', minRange: 0, maxRange: 5, step: 1 }, { id: 'minTwoWayCatenary', minRange: 0, maxRange: 5, step: 1 },
{ id: 'minTwoWay', minRange: 0, maxRange: 5, step: 1 } { id: 'minOneWayInt', minRange: 0, maxRange: 5, step: 1 },
{ id: 'minOneWayCatenaryInt', minRange: 0, maxRange: 5, step: 1 },
{ id: 'minTwoWayCatenaryInt', minRange: 0, maxRange: 5, step: 1 },
// { id: 'minTwoWay', minRange: 0, maxRange: 5, step: 1 },
// { id: 'minTwoWayInt', minRange: 0, maxRange: 5, step: 1 }
]; ];
export type StationFilter = keyof typeof initFilters; export type StationFilter = keyof typeof initFilters;