diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoRoutes.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoRoutes.vue index 95cce2b..44c6687 100644 --- a/src/components/SceneryView/SceneryInfo/SceneryInfoRoutes.vue +++ b/src/components/SceneryView/SceneryInfo/SceneryInfoRoutes.vue @@ -81,11 +81,11 @@ export default defineComponent({ computed: { filteredOneWayRoutes() { - return this.station.generalInfo?.routes.oneWay.filter(routeFilter) || []; + return this.station.generalInfo?.routes.single.filter(routeFilter) || []; }, filteredTwoWayRoutes() { - return this.station.generalInfo?.routes.twoWay.filter(routeFilter) || []; + return this.station.generalInfo?.routes.double.filter(routeFilter) || []; } } }); diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue index 548adcc..def5b98 100644 --- a/src/components/StationsView/StationTable.vue +++ b/src/components/StationsView/StationTable.vue @@ -144,60 +144,54 @@ - - - {{ station.generalInfo.routes.twoWayCatenaryRouteNames.length }} - + +
+
+ + {{ station.generalInfo.routes.doubleElectrifiedNames.length }} + - - {{ station.generalInfo.routes.twoWayNoCatenaryRouteNames.length }} - + + {{ station.generalInfo.routes.doubleOtherNames.length }} + +
- +
- - {{ station.generalInfo.routes.oneWayCatenaryRouteNames.length }} - +
+ + {{ station.generalInfo.routes.singleElectrifiedNames.length }} + - - {{ station.generalInfo.routes.oneWayNoCatenaryRouteNames.length }} - + + {{ station.generalInfo.routes.singleOtherNames.length }} + +
+
@@ -541,6 +535,10 @@ tr { .station-info { /* Images */ + display: flex; + gap: 5px; + justify-content: center; + .icon-info { vertical-align: middle; line-height: 32px; @@ -549,14 +547,34 @@ tr { height: 32px; font-size: 12px; - margin: 0 4px; - outline: 2px solid #2b2b2b; border-radius: 5px; } } .station-tracks { + & > div { + display: grid; + grid-template-columns: 3em 3px 3em; + gap: 5px; + justify-content: center; + + & > div { + display: flex; + gap: 5px; + + &.double-tracks { + justify-content: flex-end; + } + + &.single-tracks { + justify-content: flex-start; + } + } + } + + text-align: center; + .no-catenary { background-color: #939393; } @@ -566,14 +584,15 @@ tr { } .separator { - border-left: 3px solid #b3b3b3; + background-color: #b3b3b3; + padding: 2px; } .track { - margin: 0 0.35em; - padding: 0.35em; - font-size: 1.05em; - white-space: pre-wrap; + width: 1.25em; + text-align: center; + padding: 0.35em 0; + font-size: 1.1em; } } diff --git a/src/locales/en.json b/src/locales/en.json index 5484f96..8630c2c 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -238,7 +238,7 @@ "status": "Status", "dispatcher": "Dispatcher", "dispatcher-lvl": "Dispatcher\nlevel", - "routes": "Routes\ndouble / single", + "routes": "Routes\ndouble {'|'} single", "general": "General info", "user": "Drivers online", "spawn": "Spawns online", diff --git a/src/locales/pl.json b/src/locales/pl.json index cc5b243..2cfd36d 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -230,7 +230,7 @@ "status": "Status", "dispatcher": "Dyżurny", "dispatcher-lvl": "Poziom\ndyżurnego", - "routes": "Szlaki\n2tor / 1tor", + "routes": "Szlaki\n2tor {'|'} 1tor", "general": "Informacje\nogólne", "user": "Maszyniści online", "spawn": "Otwarte spawny", diff --git a/src/scripts/interfaces/StationRoutes.ts b/src/scripts/interfaces/StationRoutes.ts index 24c82d3..f206773 100644 --- a/src/scripts/interfaces/StationRoutes.ts +++ b/src/scripts/interfaces/StationRoutes.ts @@ -1,13 +1,12 @@ import { StationRoutesInfo } from '../../store/typings'; export interface StationRoutes { - oneWay: StationRoutesInfo[]; - twoWay: StationRoutesInfo[]; + single: StationRoutesInfo[]; + double: StationRoutesInfo[]; - /* [catenary, noCatenary] */ - oneWayCatenaryRouteNames: string[]; - oneWayNoCatenaryRouteNames: string[]; - twoWayCatenaryRouteNames: string[]; - twoWayNoCatenaryRouteNames: string[]; - sblRouteNames: string[]; + singleElectrifiedNames: string[]; + singleOtherNames: string[]; + doubleElectrifiedNames: string[]; + doubleOtherNames: string[]; + sblNames: string[]; } diff --git a/src/scripts/utils/filterUtils.ts b/src/scripts/utils/filterUtils.ts index 9033ffc..6f9389e 100644 --- a/src/scripts/utils/filterUtils.ts +++ b/src/scripts/utils/filterUtils.ts @@ -176,21 +176,21 @@ export const filterStations = (station: Station, filters: Filter) => { if ( filters['no-1track'] && - (routes.oneWayCatenaryRouteNames.length != 0 || routes.oneWayNoCatenaryRouteNames.length != 0) + (routes.singleElectrifiedNames.length != 0 || routes.singleOtherNames.length != 0) ) return false; if ( filters['no-2track'] && - (routes.twoWayCatenaryRouteNames.length != 0 || routes.twoWayNoCatenaryRouteNames.length != 0) + (routes.doubleElectrifiedNames.length != 0 || routes.doubleOtherNames.length != 0) ) return false; - if (routes.oneWayCatenaryRouteNames.length < filters['minOneWayCatenary']) return false; - if (routes.oneWayNoCatenaryRouteNames.length < filters['minOneWay']) return false; + if (routes.singleElectrifiedNames.length < filters['minOneWayCatenary']) return false; + if (routes.singleOtherNames.length < filters['minOneWay']) return false; - if (routes.twoWayCatenaryRouteNames.length < filters['minTwoWayCatenary']) return false; - if (routes.twoWayNoCatenaryRouteNames.length < filters['minTwoWay']) return false; + if (routes.doubleElectrifiedNames.length < filters['minTwoWayCatenary']) return false; + if (routes.doubleOtherNames.length < filters['minTwoWay']) return false; if (filters[controlType]) return false; if (filters[signalType]) return false; @@ -198,8 +198,8 @@ export const filterStations = (station: Station, filters: Filter) => { if (filters['SUP'] && SUP) return false; if (filters['noSUP'] && !SUP) return false; - if (filters['SBL'] && routes.sblRouteNames.length > 0) return false; - if (filters['PBL'] && routes.sblRouteNames.length == 0) return false; + if (filters['SBL'] && routes.sblNames.length > 0) return false; + if (filters['PBL'] && routes.sblNames.length == 0) return false; if ( filters['authors'].length > 3 && diff --git a/src/store/mainStore.ts b/src/store/mainStore.ts index ff7ca19..8885e60 100644 --- a/src/store/mainStore.ts +++ b/src/store/mainStore.ts @@ -230,27 +230,27 @@ export const useMainStore = defineStore('store', { return apiStore.sceneryData.map((scenery) => { const routes = scenery.routesInfo.reduce( (acc, route) => { - const tracksKey = route.routeTracks == 2 ? 'twoWay' : 'oneWay'; + const tracksKey = route.routeTracks == 2 ? 'double' : 'single'; const isElectric = route.isElectric; const routesKey: keyof StationRoutes = `${tracksKey}${ - !isElectric ? 'No' : '' - }CatenaryRouteNames`; + !isElectric ? 'Other' : 'Electrified' + }Names`; if (!route.isInternal) acc[routesKey].push(route.routeName); - if (route.isRouteSBL) acc['sblRouteNames'].push(route.routeName); + if (route.isRouteSBL) acc['sblNames'].push(route.routeName); acc[tracksKey].push(route); return acc; }, { - oneWay: [], - oneWayCatenaryRouteNames: [], - oneWayNoCatenaryRouteNames: [], - twoWay: [], - twoWayCatenaryRouteNames: [], - twoWayNoCatenaryRouteNames: [], - sblRouteNames: [] + single: [], + singleElectrifiedNames: [], + singleOtherNames: [], + double: [], + doubleElectrifiedNames: [], + doubleOtherNames: [], + sblNames: [] } as StationRoutes );