From 421add1ec11f97a699ebf20b8810e98e0caf5b2a Mon Sep 17 00:00:00 2001 From: Spythere Date: Mon, 30 Sep 2024 22:32:29 +0200 Subject: [PATCH] chore: added TN/PN freight types --- .../JournalTimetables/EntryDetails.vue | 38 ++++++++--- .../JournalTimetables/EntryGeneral.vue | 25 +++++-- src/components/TrainsView/TrainInfo.vue | 66 +++++++++++++++---- src/locales/en.json | 11 +++- src/locales/pl.json | 13 ++-- src/store/mainStore.ts | 6 +- src/styles/badge.scss | 16 ++++- src/styles/global.scss | 4 +- src/styles/variables.scss | 3 - src/typings/api.ts | 9 ++- src/typings/common.ts | 4 +- 11 files changed, 152 insertions(+), 43 deletions(-) diff --git a/src/components/JournalView/JournalTimetables/EntryDetails.vue b/src/components/JournalView/JournalTimetables/EntryDetails.vue index 6983ce2..81c3cdf 100644 --- a/src/components/JournalView/JournalTimetables/EntryDetails.vue +++ b/src/components/JournalView/JournalTimetables/EntryDetails.vue @@ -66,19 +66,28 @@ + +
+

{{ $t('warnings.header-title') }}

+

+ {{ timetable.warningNotes }} +

+
@@ -234,6 +243,19 @@ hr { list-style: disc; padding-left: 1em; padding-top: 0.5em; + white-space: pre-wrap; +} + +.dangers-notes { + margin-top: 0.5em; + white-space: pre-wrap; + + p { + margin-top: 0.25em; + max-height: 200px; + max-width: 500px; + overflow: auto; + } } @include smallScreen() { diff --git a/src/components/JournalView/JournalTimetables/EntryGeneral.vue b/src/components/JournalView/JournalTimetables/EntryGeneral.vue index 3c21cf9..7c7254c 100644 --- a/src/components/JournalView/JournalTimetables/EntryGeneral.vue +++ b/src/components/JournalView/JournalTimetables/EntryGeneral.vue @@ -7,21 +7,38 @@ class="train-badge twr" v-if="timetable.twr" data-tooltip-type="BaseTooltip" - :data-tooltip-content=" - $t('general.TWR') + `${timetable.warningNotes ? ':\n' + timetable.warningNotes : ''}` - " + :data-tooltip-content="$t('warnings.TWR')" > TWR + SKR + + TN + + + + PN + + TWR - SKR + TN + + + + PN {{ train.timetableData.category }} + {{ train.trainNo }} +
@@ -142,15 +153,30 @@
-
- TWR - {{ $t('general.TWR') }} - ({{ train.timetableData?.warningNotes }}) +
+
+
TWR
+ - {{ $t('warnings.TWR') }} +
+ +
+
TN
+ - {{ $t('warnings.TN') }} +
+ +
+
PN
+ - {{ $t('warnings.PN') }} +
-
- SKR - {{ $t('general.SKR') }} +
+

{{ $t('warnings.header-title') }}

+

+ {{ train.timetableData?.warningNotes }} +

@@ -254,6 +280,24 @@ export default defineComponent({ margin-top: 0.5em; } +.dangers-badges { + display: flex; + flex-direction: column; + gap: 0.5em; +} + +.dangers-notes { + margin-top: 0.5em; + white-space: pre-wrap; + + p { + margin-top: 0.25em; + max-height: 200px; + max-width: 500px; + overflow: auto; + } +} + .train-info { display: grid; grid-template-columns: 2fr 1fr; diff --git a/src/locales/en.json b/src/locales/en.json index 8b646d3..2d59252 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -20,11 +20,16 @@ "dispatcher-message": "Dispatcher supporting the Stacjownik project!", "driver-message": "Driver supporting the Stacjownik project!" }, + "warnings": { + "TWR": "Train with high risk cargo", + "SKR": "Train with exceeded gauge", + "PN": "Train with extra deliveries", + "TN": "Train with dangerous cargo", + "header-title": "Freight notes:" + }, "general": { "and": " and ", - "refresh": "REFRESH", - "TWR": "High risk freight train", - "SKR": "Train with exceeded gauge" + "refresh": "REFRESH" }, "update": { "title": "Stacjownik update!", diff --git a/src/locales/pl.json b/src/locales/pl.json index 2063a7f..77192f2 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -20,11 +20,16 @@ "dispatcher-message": "Dyżurny wspierający projekt Stacjownika!", "driver-message": "Maszynista wspierający projekt Stacjownika!" }, + "warnings": { + "TWR": "Pociąg z towarami niebezpiecznie wysokiego ryzyka", + "SKR": "Pociąg z przekroczoną skrajnią", + "PN": "Pociąg z przesyłkami nadzwyczajnymi", + "TN": "Pociąg z towarami niebezpiecznymi", + "header-title": "Uwagi przewozowe:" + }, "general": { "and": " oraz ", - "refresh": "ODŚWIEŻ", - "TWR": "Towar niebezpieczny wysokiego ryzyka", - "SKR": "Przekroczona skrajnia" + "refresh": "ODŚWIEŻ" }, "update": { "title": "Aktualizacja Stacjownika!", @@ -364,7 +369,7 @@ "current-track": "na szlaku", "vmax-tooltip": "Maksymalna prędkość na podstawie pojazdów w składzie - nie bierze pod uwagę masy hamowania", - + "catenary-tooltip": "Szlak zelektryfikowany", "no-catenary-tooltip": "Szlak niezelektryfikowany", "sbl-tooltip": "Szlak posiadający\nsamoczynną blokadę liniową", diff --git a/src/store/mainStore.ts b/src/store/mainStore.ts index 5dea181..3fdde31 100644 --- a/src/store/mainStore.ts +++ b/src/store/mainStore.ts @@ -87,14 +87,16 @@ export const useMainStore = defineStore('mainStore', { timetableData: timetable ? { timetableId: timetable.timetableId, - SKR: timetable.SKR, - TWR: timetable.TWR, route: timetable.route, category: timetable.category, followingStops: timetable.stopList, routeDistance: timetable.stopList[timetable.stopList.length - 1].stopDistance, sceneries: timetable.sceneries, + TWR: timetable.TWR, + SKR: timetable.SKR, warningNotes: timetable.warningNotes, + hasDangerousCargo: timetable.hasDangerousCargo, + hasExtraDeliveries: timetable.hasExtraDeliveries, timetablePath: timetable.path.split(';').map((pathElementString) => { const [arrival, station, departure] = pathElementString.split(','); diff --git a/src/styles/badge.scss b/src/styles/badge.scss index edaa5a9..f29645d 100644 --- a/src/styles/badge.scss +++ b/src/styles/badge.scss @@ -79,18 +79,17 @@ } .train-badge { - display: flex; - align-items: center; + display: inline-block; gap: 0.3em; padding: 0.1em 0.3em; border-radius: 0.2em; font-weight: bold; + user-select: none; &.twr { background-color: var(--clr-twr); box-shadow: 0 0 5px 1px var(--clr-twr); - color: black; } &.skr { @@ -98,6 +97,17 @@ box-shadow: 0 0 5px 1px var(--clr-skr); } + &.tn { + background-color: var(--clr-tn); + box-shadow: 0 0 5px 1px var(--clr-tn); + } + + &.pn { + background-color: var(--clr-pn); + box-shadow: 0 0 5px 1px var(--clr-pn); + color: black; + } + &.offline { background-color: #be3728; } diff --git a/src/styles/global.scss b/src/styles/global.scss index 2d3bc8f..9b081fb 100644 --- a/src/styles/global.scss +++ b/src/styles/global.scss @@ -13,7 +13,9 @@ --clr-accent2: #ff3d5d; --clr-skr: #ff5100; - --clr-twr: #ffbb00; + --clr-twr: #ee503e; + --clr-tn: #cb4dcf; + --clr-pn: #ffd000; --clr-error: #fa3636; --clr-warning: #c59429; diff --git a/src/styles/variables.scss b/src/styles/variables.scss index c7b741d..914d8d6 100644 --- a/src/styles/variables.scss +++ b/src/styles/variables.scss @@ -9,6 +9,3 @@ $warningCol: #ffe15b; $accentCol: #ffc014; $accent2Col: #ff3d5d; - -$skr: #ff5100; -$twr: #ffbb00; diff --git a/src/typings/api.ts b/src/typings/api.ts index 8327bf6..3eb9de5 100644 --- a/src/typings/api.ts +++ b/src/typings/api.ts @@ -201,10 +201,11 @@ export namespace API { TWR: boolean; SKR: boolean; - sceneries: string[]; - - path: string; + hasDangerousCargo: boolean; + hasExtraDeliveries: boolean; warningNotes: string | null; + sceneries: string[]; + path: string; } } @@ -266,6 +267,8 @@ export namespace API { sceneryNames: string[]; path: string; warningNotes: string | null; + hasDangerousCargo: boolean; + hasExtraDeliveries: boolean; } export type Response = Data[]; diff --git a/src/typings/common.ts b/src/typings/common.ts index 7fd270e..0f1626a 100644 --- a/src/typings/common.ts +++ b/src/typings/common.ts @@ -84,10 +84,12 @@ export interface TrainTimetableData { followingStops: TrainStop[]; TWR: boolean; SKR: boolean; + hasDangerousCargo: boolean; + hasExtraDeliveries: boolean; + warningNotes: string | null; routeDistance: number; sceneries: string[]; timetablePath: TimetablePathElement[]; - warningNotes: string | null; } export interface Station {