diff --git a/src/components/TrainsView/TrainInfoSimple.vue b/src/components/TrainsView/TrainInfoSimple.vue
index f73a3f9..86f60dc 100644
--- a/src/components/TrainsView/TrainInfoSimple.vue
+++ b/src/components/TrainsView/TrainInfoSimple.vue
@@ -42,11 +42,10 @@
+ {{ currentDistance(train.timetableData.followingStops) }} km /
{{ train.timetableData.routeDistance }} km
|
-
- {{ $t('trains.route-progress') }} {{ confirmedPercentage(train.timetableData.followingStops) }}%
-
+
|
@@ -118,6 +117,26 @@ export default defineComponent({
offline: require('@/assets/icon-offline.svg'),
},
}),
+
+ methods: {
+ generateProgressBar(train: Train) {
+ if (!train.timetableData) return '';
+
+ const percentage = this.confirmedPercentage(train.timetableData.followingStops);
+
+ const mainStops = train.timetableData.followingStops.filter((stop) => stop.stopName.startsWith(''));
+ const skipRatio = Math.floor(mainStops.length / 10);
+
+ let progressBarString = ` ${percentage}% `;
+
+ mainStops.forEach((stop, i) => {
+ if (skipRatio > 0 && i % 10 == skipRatio) return;
+ progressBarString += `▉`;
+ });
+
+ return progressBarString;
+ },
+ },
});
@@ -150,7 +169,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);
},