diff --git a/src/components/TrainsView/TrainInfoSimple.vue b/src/components/TrainsView/TrainInfoSimple.vue index f73a3f9..8a7113a 100644 --- a/src/components/TrainsView/TrainInfoSimple.vue +++ b/src/components/TrainsView/TrainInfoSimple.vue @@ -42,16 +42,14 @@
+ +  {{ currentDistance(train.timetableData.followingStops) }} km / {{ train.timetableData.routeDistance }} km | - - {{ $t('trains.route-progress') }} {{ confirmedPercentage(train.timetableData.followingStops) }}% - - |
-
+
{{ $t('trains.current-scenery') }} {{ train['currentStationName'] }}  @@ -118,6 +116,22 @@ export default defineComponent({ offline: require('@/assets/icon-offline.svg'), }, }), + + methods: { + generateProgressBar(train: Train) { + if (!train.timetableData) return ''; + + const percentage = Math.floor(Number(this.confirmedPercentage(train.timetableData.followingStops))); + + let progressBarString = ` ${percentage}% `; + + for (let i = 0; i < 5; i++) { + progressBarString += ``; + } + + return progressBarString; + }, + }, }); @@ -150,7 +164,8 @@ export default defineComponent({ background-color: #202020; gap: 0.5em; - &:hover, &:focus { + &:hover, + &:focus { background: #292929; } } diff --git a/src/components/TrainsView/TrainTimetableCard.vue b/src/components/TrainsView/TrainTimetableCard.vue index da400a0..626cf96 100644 --- a/src/components/TrainsView/TrainTimetableCard.vue +++ b/src/components/TrainsView/TrainTimetableCard.vue @@ -71,9 +71,10 @@ export default defineComponent({ max-width: 1300px; max-height: calc(100vh - 2em); + background-color: #202020; + + top: 0; transform: translate(-50%, 1em); - - border: 1px solid white; } diff --git a/src/mixins/trainInfoMixin.ts b/src/mixins/trainInfoMixin.ts index f6b1e54..f19ca60 100644 --- a/src/mixins/trainInfoMixin.ts +++ b/src/mixins/trainInfoMixin.ts @@ -63,6 +63,10 @@ export default defineComponent({ .join(' > '); }, + currentDistance(stops: TrainStop[]) { + return stops.filter(stop => stop.confirmed).slice(-1)[0]?.stopDistance || 0; + }, + confirmedPercentage(stops: TrainStop[]) { return ((stops.filter((stop) => stop.confirmed).length / stops.length) * 100).toFixed(0); },