diff --git a/src/components/Global/StockList.vue b/src/components/Global/StockList.vue index 3500fc4..fe0a894 100644 --- a/src/components/Global/StockList.vue +++ b/src/components/Global/StockList.vue @@ -180,7 +180,6 @@ export default defineComponent({ align-items: flex-end; overflow: auto; margin: 0 auto; - padding: 1em 0; } ul > li > span { diff --git a/src/components/JournalView/JournalTimetables/EntryDetails.vue b/src/components/JournalView/JournalTimetables/EntryDetails.vue index 14f8c48..4259679 100644 --- a/src/components/JournalView/JournalTimetables/EntryDetails.vue +++ b/src/components/JournalView/JournalTimetables/EntryDetails.vue @@ -17,23 +17,24 @@
-
+
+ -
- +
+ +
+ {{ $t('journal.dispatcher-name') }} {{ timetable.authorName }} -
-
- + {{ $t('journal.stock-max-speed') }} {{ timetable.maxSpeed }}km/h - + {{ $t('journal.stock-length') }} {{ @@ -44,13 +45,13 @@ - + {{ $t('journal.stock-mass') }} {{ Math.floor( (currentHistoryIndex == 0 - ? timetable.stockMass! + ? timetable.stockMass : stockHistory[currentHistoryIndex].stockMass || timetable.stockMass) / 1000 ) }}t @@ -58,32 +59,56 @@
- -
- +
+
+ + {{ $t('journal.stock-dangers') }}: + +
    +
  • + {{ $t('general.TWR') }} (TWR) + + | {{ timetable.warningNotes }} + +
  • + +
  • + {{ $t('general.SKR') }} + + | Komentarze: {{ timetable.warningNotes }} + +
  • +
-
- + +
+
+ {{ $t('journal.stock-preview') }}: +
+ +
+ +
+ +
- -
TWR: {{ timetable.warningNotes }}
@@ -189,7 +214,6 @@ export default defineComponent({ display: flex; flex-wrap: wrap; gap: 0.5em; - margin-top: 0.5em; .badge { margin: 0; @@ -201,6 +225,16 @@ export default defineComponent({ } } +hr { + margin: 0.5em 0; +} + +.stock-dangers ul { + list-style: disc; + padding-left: 1em; + padding-top: 0.5em; +} + ul.stock-list { display: flex; align-items: flex-end; diff --git a/src/components/JournalView/JournalTimetables/EntryStops.vue b/src/components/JournalView/JournalTimetables/EntryStops.vue index 2b27038..5ac1be3 100644 --- a/src/components/JournalView/JournalTimetables/EntryStops.vue +++ b/src/components/JournalView/JournalTimetables/EntryStops.vue @@ -70,23 +70,20 @@ -
- -
- +
  • - / {{ pathData.arrival }} > + > + {{ pathData.arrival }} {{ pathData.sceneryName }} - - > {{ pathData.departure }}  - - -
  • + {{ pathData.departure }} + +
    @@ -193,7 +190,6 @@ export default defineComponent({ word-wrap: break-word; gap: 0.25em; font-size: 0.95em; - color: #adadad; } .stop-list { @@ -251,13 +247,45 @@ export default defineComponent({ } } -.entry-path-details { +.timetable-path-list { + display: flex; + flex-wrap: wrap; + gap: 0.5em 0; padding: 0.5em 0; + color: #ccc; + + li > .path-scenery:first-child, + li > .path-arrival:nth-child(2) { + border-radius: 0.5em 0 0 0.5em; + } + + li > :last-child { + border-radius: 0 0.5em 0.5em 0; + } } -.entry-path-details > span[data-visited='true'] { +.path-scenery { + padding: 0.25em 0.5em; + background-color: #303030; +} + +.path-arrival, +.path-departure { + padding: 0.25em; + display: inline-block; + background-color: #4e4e4e; + min-width: 25px; + text-align: center; +} + +.path-arrow { + padding: 0 0.5em; +} + +.timetable-path-list > li[data-visited='true'] { .path-arrival, - .path-scenery { + .path-scenery, + .path-arrow { color: lightgreen; } diff --git a/src/components/JournalView/JournalTimetables/JournalTimetableEntry.vue b/src/components/JournalView/JournalTimetables/JournalTimetableEntry.vue index bce35ff..f68f9bc 100644 --- a/src/components/JournalView/JournalTimetables/JournalTimetableEntry.vue +++ b/src/components/JournalView/JournalTimetables/JournalTimetableEntry.vue @@ -5,9 +5,9 @@
    - +
    {{ timetableEntry.route.replace('|', ' - ') }} - +

    @@ -134,8 +134,16 @@ export default defineComponent({ diff --git a/src/components/TrainsView/TrainInfo.vue b/src/components/TrainsView/TrainInfo.vue index 9a8fd37..ea0912e 100644 --- a/src/components/TrainsView/TrainInfo.vue +++ b/src/components/TrainsView/TrainInfo.vue @@ -8,11 +8,21 @@ #{{ train.timetableData.timetableId }}
    - + TWR - + SKR @@ -129,6 +139,20 @@
    {{ displayTrainPosition(train) }}
    + +
    +
    + TWR - {{ $t('general.TWR') }} + ({{ train.timetableData?.warningNotes }}) +
    + +
    + SKR - {{ $t('general.SKR') }} +
    +
    @@ -199,7 +223,7 @@ export default defineComponent({ query: { 'search-driver': this.train.driverName } - } + }; } } }); @@ -226,6 +250,10 @@ export default defineComponent({ line-height: 1.5em; } +.train-dangers { + margin-top: 0.5em; +} + .train-info { display: grid; grid-template-columns: 2fr 1fr; diff --git a/src/locales/en.json b/src/locales/en.json index d5fe900..68f3c50 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -441,6 +441,7 @@ "no-further-data": "No further data for current parameters", "loading-further-data": "Loading...", + "route-length": "Route length:", "station-count": "Stations:", @@ -460,10 +461,14 @@ "entry-details": "DETAILS", "no-entry-details": "NO DETAILS AVAILABLE", + "stock-length": "Length", "stock-mass": "Mass", "stock-max-speed": "Max. speed", + "stock-dangers": "ADDITIONAL NOTES", + "stock-preview": "STOCK PREVIEW", + "load-data": "Load further data...", "last-seen-at": "Last seen at", diff --git a/src/locales/pl.json b/src/locales/pl.json index b494ac4..2842955 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -450,6 +450,9 @@ "stock-mass": "Masa", "stock-max-speed": "Prędkość maks.", + "stock-dangers": "DODATKOWE UWAGI", + "stock-preview": "PODGLĄD SKŁADU", + "load-data": "Pobierz dalszą historię...", "last-seen-at": "Ostatnio widziany na: ", diff --git a/src/store/mainStore.ts b/src/store/mainStore.ts index 67d5a1c..5dea181 100644 --- a/src/store/mainStore.ts +++ b/src/store/mainStore.ts @@ -94,7 +94,8 @@ export const useMainStore = defineStore('mainStore', { followingStops: timetable.stopList, routeDistance: timetable.stopList[timetable.stopList.length - 1].stopDistance, sceneries: timetable.sceneries, - // sceneryNames: sceneryNames.reverse(), + warningNotes: timetable.warningNotes, + timetablePath: timetable.path.split(';').map((pathElementString) => { const [arrival, station, departure] = pathElementString.split(','); diff --git a/src/styles/global.scss b/src/styles/global.scss index 4c4519a..6b5f8a1 100644 --- a/src/styles/global.scss +++ b/src/styles/global.scss @@ -355,4 +355,5 @@ a.a-button { width: 100%; height: 2px; background-color: #aaa; + margin: 0.5em 0; } diff --git a/src/typings/api.ts b/src/typings/api.ts index 9a53a89..8327bf6 100644 --- a/src/typings/api.ts +++ b/src/typings/api.ts @@ -204,6 +204,7 @@ export namespace API { sceneries: string[]; path: string; + warningNotes: string | null; } } diff --git a/src/typings/common.ts b/src/typings/common.ts index 97f7ad4..7fd270e 100644 --- a/src/typings/common.ts +++ b/src/typings/common.ts @@ -72,19 +72,22 @@ export interface Train { isTimeout: boolean; isSupporter: boolean; - driverRouteLocation: RouteLocationRaw, + driverRouteLocation: RouteLocationRaw; - timetableData?: { - timetableId: number; - category: string; - route: string; - followingStops: TrainStop[]; - TWR: boolean; - SKR: boolean; - routeDistance: number; - sceneries: string[]; - timetablePath: TimetablePathElement[]; - }; + timetableData?: TrainTimetableData; +} + +export interface TrainTimetableData { + timetableId: number; + category: string; + route: string; + followingStops: TrainStop[]; + TWR: boolean; + SKR: boolean; + routeDistance: number; + sceneries: string[]; + timetablePath: TimetablePathElement[]; + warningNotes: string | null; } export interface Station {