diff --git a/public/images/icon-w4a.png b/public/images/icon-we4a.png similarity index 100% rename from public/images/icon-w4a.png rename to public/images/icon-we4a.png diff --git a/src/components/TrainsView/StopLabel.vue b/src/components/TrainsView/StopLabel.vue index d7841fc..2681592 100644 --- a/src/components/TrainsView/StopLabel.vue +++ b/src/components/TrainsView/StopLabel.vue @@ -9,12 +9,13 @@ stop.arrivalDelay > 0 && stop.status != 'unconfirmed' ? 'delayed' : stop.arrivalDelay < 0 && stop.status != 'unconfirmed' - ? 'preponed' - : stop.arrivalDelay == 0 && stop.status == 'confirmed' - ? 'on-time' - : '' + ? 'preponed' + : stop.arrivalDelay == 0 && stop.status == 'confirmed' + ? 'on-time' + : '' " > + p. {{ timestampToString(stop.arrivalScheduled) }} {{ timestampToString(stop.arrivalReal) }} @@ -39,7 +40,11 @@ stop.departureDelay - stop.arrivalDelay > 0 && !stop.duration ? 'delayed' : '' " > - {{ stop.duration || stop.departureDelay - stop.arrivalDelay }} + {{ + stop.duration == 0 && stop.departureDelay > 0 + ? stop.departureDelay - stop.arrivalDelay + : stop.duration + }} {{ stop.type == '' ? 'pt' : stop.type }} @@ -53,12 +58,13 @@ stop.departureDelay > 0 && stop.status == 'confirmed' ? 'delayed' : stop.departureDelay < 0 && stop.status == 'confirmed' - ? 'preponed' - : stop.departureDelay == 0 && stop.status == 'confirmed' - ? 'on-time' - : '' + ? 'preponed' + : stop.departureDelay == 0 && stop.status == 'confirmed' + ? 'on-time' + : '' " > + o. {{ timestampToString(stop.departureScheduled) }} {{ timestampToString(stop.departureReal) }} @@ -96,7 +102,7 @@ $delayedClr: salmon; $dateClr: #525151; $stopExchangeClr: #db8e29; $stopDefaultClr: #252525; -$stopNameClr: #22a8d1; +$stopNameClr: #303030; .stop-label { display: flex; @@ -117,6 +123,7 @@ $stopNameClr: #22a8d1; .name { background: $stopNameClr; + border-radius: 0.5em 0 0 0.5em; padding: 0.3em 0.5em; display: flex; @@ -130,6 +137,10 @@ $stopNameClr: #22a8d1; .date { background: $dateClr; padding: 0.3em 0.5em; + + &:last-child { + border-radius: 0 0.5em 0.5em 0; + } } .stop { @@ -150,7 +161,7 @@ $stopNameClr: #22a8d1; .departure { &[data-status='delayed'] { s { - color: #999; + color: #ccc; } span { @@ -160,7 +171,7 @@ $stopNameClr: #22a8d1; &[data-status='preponed'] { s { - color: #999; + color: #ccc; } span { diff --git a/src/components/TrainsView/TrainSchedule.vue b/src/components/TrainsView/TrainSchedule.vue index 961f5c6..554de01 100644 --- a/src/components/TrainsView/TrainSchedule.vue +++ b/src/components/TrainsView/TrainSchedule.vue @@ -14,7 +14,6 @@ :data-stop-type="stop.type" :data-minor-stop-active="stop.isActive" :data-last-confirmed="stop.isLastConfirmed" - x > @@ -48,51 +47,46 @@ - {{ stop.departureLine }} - - -
- {{ stop.departureLine }} | {{ stop.departureLineSpeed }} - - - - + {{ stop.departureLine }} + + | {{ stop.departureLineInfo.routeSpeed }} + + +
- {{ scheduleStops[i + 1].sceneryName }} + {{ scheduleStops[i + 1].sceneryName }} + +
- - {{ scheduleStops[i + 1].arrivalLine }} | - {{ scheduleStops[i + 1].arrivalLineSpeed }} + {{ scheduleStops[i + 1].arrivalLine }} + + + | {{ scheduleStops[i + 1].arrivalLineInfo!.routeSpeed }} + + - - - -
@@ -110,7 +104,7 @@ import StopLabel from './StopLabel.vue'; import StockList from '../Global/StockList.vue'; import { useMainStore } from '../../store/mainStore'; import { useApiStore } from '../../store/apiStore'; -import { Train } from '../../typings/common'; +import { StationRoutesInfo, Train } from '../../typings/common'; export interface TrainScheduleStop { nameHtml: string; @@ -136,17 +130,15 @@ export interface TrainScheduleStop { isSBL: boolean; sceneryName: string | null; - sceneryHash: string; distance: number; arrivalLine: string | null; departureLine: string | null; - arrivalLineSpeed: number; - arrivalLineElectrified: boolean | null; + arrivalLineInfo?: StationRoutesInfo; + departureLineInfo?: StationRoutesInfo; - departureLineSpeed: number; - departureLineElectrified: boolean | null; + isExternal: boolean; comments: string | null; } @@ -177,13 +169,14 @@ export default defineComponent({ return ( this.train.timetableData?.followingStops.map((stop, i, arr) => { - if ( + const isExternal = i > 0 && - stop.arrivalLine && - stop.arrivalLine != arr[i - 1].departureLine && - !/sbl/gi.test(stop.arrivalLine) - ) - currentSceneryIndex++; + stop.arrivalLine != null && + (stop.arrivalLine != arr[i - 1].departureLine || + (stop.arrivalLine == arr[i - 1].departureLine && + !/-|_|(^it\d+)|(^sbl)/gi.test(stop.arrivalLine))); + + if (isExternal) currentSceneryIndex++; const sceneryName = this.train.timetableData!.sceneryNames[currentSceneryIndex]; const sceneryInfo = this.apiStore.sceneryData.find((st) => st.name == sceneryName); @@ -214,12 +207,12 @@ export default defineComponent({ comments: stop.comments ?? null, arrivalLine: stop.arrivalLine, - arrivalLineSpeed: arrivalLineInfo?.routeSpeed ?? 0, - arrivalLineElectrified: arrivalLineInfo?.isElectric ?? null, - departureLine: stop.departureLine, - departureLineSpeed: departureLineInfo?.routeSpeed ?? 0, - departureLineElectrified: departureLineInfo?.isElectric ?? null, + + arrivalLineInfo: arrivalLineInfo, + departureLineInfo: departureLineInfo, + + isExternal, type: stop.stopType, distance: stop.stopDistance, @@ -227,7 +220,6 @@ export default defineComponent({ isLastConfirmed: this.lastConfirmed === i && !stop.terminatesHere, isSBL: /sbl/gi.test(stop.stopName), position: stop.beginsHere ? 'begin' : stop.terminatesHere ? 'end' : 'en-route', - sceneryHash: '', sceneryName, status: stop.confirmed ? 'confirmed' : stop.stopped ? 'stopped' : 'unconfirmed' }; @@ -531,9 +523,9 @@ $blinkAnim: 0.5s ease-in-out alternate infinite blink; } .scenery-route { - display: flex; - align-items: center; - gap: 5px; + img { + vertical-align: middle; + } } .scenery-change-name { diff --git a/src/locales/en.json b/src/locales/en.json index 2f8696d..165b8ba 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -332,6 +332,7 @@ "current-track": "on track", "vmax-tooltip": "Maximum train speed based on rolling stock vehicles - braked weight is not included", + "we4a-tooltip": "Non-electrified track", "delayed": "Delayed: ", "preponed": "Ahead of schedule: ", diff --git a/src/locales/pl.json b/src/locales/pl.json index 958ae2b..db452a2 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -318,6 +318,7 @@ "current-track": "na szlaku", "vmax-tooltip": "Maksymalna prędkość na podstawie pojazdów w składzie - nie bierze pod uwagę masy hamowania", + "we4a-tooltip": "Szlak niezelektryfikowany", "delayed": "Opóźniony: ", "preponed": "Przed czasem: ",