|
-
+
#{{ historyItem.id }}
|
@@ -37,11 +37,16 @@
{{ historyItem.trainNo }}
{{ historyItem.route.replace('|', ' -> ') }} |
- {{ historyItem.driverName }} |
+
+
+ {{ historyItem.driverName }}
+
+ |
+
{{ historyItem.authorName }}
{{ $t('scenery.timetable-author-unknown') }}
@@ -63,33 +68,30 @@
+
+
diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue
index 6a19398..9059faa 100644
--- a/src/components/StationsView/StationTable.vue
+++ b/src/components/StationsView/StationTable.vue
@@ -1,6 +1,10 @@
-
+
+
+
@@ -9,9 +13,10 @@
:key="headerName"
@click="changeSorter(headerName)"
class="header-text"
+ :class="headerName"
>
-
-
-
- {{ $t('sceneries.no-stations') }}
+
+ {{ $t('sceneries.no-stations') }} (region: {{ mainStore.region.name }})
+
+
diff --git a/src/components/Tooltip/DonatorTooltip.vue b/src/components/Tooltip/DonatorTooltip.vue
new file mode 100644
index 0000000..7357d1c
--- /dev/null
+++ b/src/components/Tooltip/DonatorTooltip.vue
@@ -0,0 +1,39 @@
+
+
+ 
+ {{ tooltipStore.content }}
+
+
+
+
+
+
diff --git a/src/components/Tooltip/SpawnsTooltip.vue b/src/components/Tooltip/SpawnsTooltip.vue
new file mode 100644
index 0000000..62f9ac8
--- /dev/null
+++ b/src/components/Tooltip/SpawnsTooltip.vue
@@ -0,0 +1,44 @@
+
+
+
+ |
+ {{ spawn.spawnName }} ({{ spawn.spawnLength }}m)
+
+
+
+
+
+
+
diff --git a/src/components/Tooltip/Tooltip.vue b/src/components/Tooltip/Tooltip.vue
new file mode 100644
index 0000000..0433a4b
--- /dev/null
+++ b/src/components/Tooltip/Tooltip.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Tooltip/UsersTooltip.vue b/src/components/Tooltip/UsersTooltip.vue
new file mode 100644
index 0000000..3d07f8d
--- /dev/null
+++ b/src/components/Tooltip/UsersTooltip.vue
@@ -0,0 +1,44 @@
+
+
+
+ |
+ {{ train.trainNo }} {{ train.driverName }}
+
+
+
+
+
+
+
diff --git a/src/components/Tooltip/VehiclePreviewTooltip.vue b/src/components/Tooltip/VehiclePreviewTooltip.vue
new file mode 100644
index 0000000..95bce86
--- /dev/null
+++ b/src/components/Tooltip/VehiclePreviewTooltip.vue
@@ -0,0 +1,83 @@
+
+
+
+ {{ $t('vehicle-preview.loading') }}
+
+
+ {{ $t('vehicle-preview.error') }}
+
+ ![]()
+
+
+ {{ tooltipStore.content.replace(/_/g, ' ') }}
+
+
+
+
+
+
+
diff --git a/src/components/TrainsView/StopLabel.vue b/src/components/TrainsView/StopLabel.vue
new file mode 100644
index 0000000..d7841fc
--- /dev/null
+++ b/src/components/TrainsView/StopLabel.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+ {{ timestampToString(stop.arrivalScheduled) }}
+ {{ timestampToString(stop.arrivalReal) }}
+ ({{ stop.arrivalDelay > 0 ? '+' : '' }}{{ stop.arrivalDelay }})
+
+
+
+ {{ timestampToString(stop.arrivalScheduled) }}
+
+
+
+
+ {{ stop.duration || stop.departureDelay - stop.arrivalDelay }}
+ {{ stop.type == '' ? 'pt' : stop.type }}
+
+
+
+
+ {{ timestampToString(stop.departureScheduled) }}
+ {{ timestampToString(stop.departureReal) }}
+
+ ({{ stop.departureDelay > 0 ? '+' : '' }}{{ stop.departureDelay }})
+
+
+
+ {{ timestampToString(stop.departureScheduled) }}
+
+
+
+
+
+
+
+
diff --git a/src/components/TrainsView/TrainInfo.vue b/src/components/TrainsView/TrainInfo.vue
index 7ceca4a..66edfb0 100644
--- a/src/components/TrainsView/TrainInfo.vue
+++ b/src/components/TrainsView/TrainInfo.vue
@@ -1,60 +1,86 @@
-
+
-
- ?
-
- #{{ train.timetableData.timetableId }}
-
-
-
-
- TWR
+
+
+ ?
+
+ #{{ train.timetableData.timetableId }}
-
- SKR
-
-
-
- {{ train.timetableData.category }}
- {{ train.trainNo }}
-
- •
-
- {{ train.driverLevel < 2 ? 'L' : `${train.driverLevel}` }}
-
+
+ TWR
+
+
+ SKR
+
+
-
+
+ {{ train.timetableData.category }}
+ {{ train.trainNo }}
+
+ •
- {{ train.driverName }}
-
+ {{ train.driverLevel < 2 ? 'L' : `${train.driverLevel}` }}
- {{ train.driverName }}
+
+
+
+ {{ train.driverName }}
+
+
+
+ {{ train.driverName }}
+
+
+
+
+
+
+
@@ -67,7 +93,7 @@
-
-
+
+
+ 
+ {{ train.length }}m
+
+
+
+ 
+ {{ (train.mass / 1000).toFixed(1) }}t
+
+
+
+ 
+ {{ train.speed }} km/h
+
+
+
+
{{ displayTrainPosition(train) }}
-
-
-
-
- {{ train.locoType }}
-
- • {{ $t('trains.cars') }}:
- {{ train.stockList.length - 1 }}
-
-
+
+
-
- •
- {{ `${~~((train as any)[stat.name] * (stat.multiplier || 1))}${stat.unit}` }}
+ {{ train.speed }}km/h
+
+
+ {{ train.length }}m
+ •
+ {{ (train.mass / 1000).toFixed(1) }}t
+
+ •
+ {{ $t('trains.cars') }}: {{ train.stockList.length - 1 }}
-
+
@@ -123,14 +163,16 @@
import { defineComponent } from 'vue';
import styleMixin from '../../mixins/styleMixin';
import trainInfoMixin from '../../mixins/trainInfoMixin';
-import Train from '../../scripts/interfaces/Train';
import ProgressBar from '../Global/ProgressBar.vue';
-import TrainThumbnail from '../Global/TrainThumbnail.vue';
-import { useStore } from '../../store/mainStore';
+import { useMainStore } from '../../store/mainStore';
+import { useApiStore } from '../../store/apiStore';
+import StockList from '../Global/StockList.vue';
+import modalTrainMixin from '../../mixins/modalTrainMixin';
+import { Train } from '../../typings/common';
export default defineComponent({
- mixins: [trainInfoMixin, styleMixin],
- components: { ProgressBar, TrainThumbnail },
+ mixins: [trainInfoMixin, styleMixin, modalTrainMixin],
+ components: { ProgressBar, StockList },
props: {
train: {
@@ -138,34 +180,40 @@ export default defineComponent({
required: true
},
extended: {
- type: Boolean,
- default: true
+ type: Boolean
}
},
data() {
return {
- store: useStore()
+ store: useMainStore(),
+ apiStore: useApiStore()
};
+ },
+
+ methods: {
+ navigateToJournal() {
+ this.$router.push({
+ path: '/journal/timetables',
+ query: {
+ 'search-driver': this.train.driverName
+ }
+ });
+
+ this.closeModal();
+ }
}
});
-
-
-
diff --git a/src/components/Global/TrainModal.vue b/src/components/TrainsView/TrainModal.vue
similarity index 58%
rename from src/components/Global/TrainModal.vue
rename to src/components/TrainsView/TrainModal.vue
index d05857a..daee8f1 100644
--- a/src/components/Global/TrainModal.vue
+++ b/src/components/TrainsView/TrainModal.vue
@@ -1,12 +1,8 @@
-
-
-
-
-
+
+
+
@@ -15,26 +11,29 @@
@@ -56,23 +55,6 @@ export default defineComponent({
}
}
-.exit {
- position: absolute;
- top: 0;
- right: 0;
-
- margin: 0.5em 1em;
-
- padding: 0.25em;
-
- z-index: 201;
-
- img {
- width: 1.5rem;
- vertical-align: middle;
- }
-}
-
.train-modal {
position: fixed;
top: 0;
@@ -89,7 +71,7 @@ export default defineComponent({
text-align: left;
}
-.modal_background {
+.modal-background {
position: absolute;
top: 0;
left: 0;
@@ -101,14 +83,14 @@ export default defineComponent({
background-color: rgba(0, 0, 0, 0.55);
}
-.modal_content {
+.modal-content {
position: relative;
overflow-y: scroll;
margin-top: 1em;
width: 95vw;
- max-height: 96vh;
+ max-height: 95vh;
background-color: #1a1a1a;
box-shadow: 0 0 15px 10px #0e0e0e;
diff --git a/src/components/TrainsView/TrainOptions.vue b/src/components/TrainsView/TrainOptions.vue
index 721e4f6..5763527 100644
--- a/src/components/TrainsView/TrainOptions.vue
+++ b/src/components/TrainsView/TrainOptions.vue
@@ -4,7 +4,7 @@
diff --git a/src/components/TrainsView/TrainSchedule.vue b/src/components/TrainsView/TrainSchedule.vue
index 7325905..ecb4a77 100644
--- a/src/components/TrainsView/TrainSchedule.vue
+++ b/src/components/TrainsView/TrainSchedule.vue
@@ -2,83 +2,126 @@
-
-
-
-
-
- -
+
-
-
-
-
-
-
-
- {{ Math.floor(stop.stopDistance) }}
+
+ {{ stop.distance ? stop.distance.toFixed(1) : '' }}
-
+
-
+
-
-
+
+
+
-
- {{ stop.stopNameRAW }} :
+
-
- {{ stop.departureLine }}
-
+
+
-
- {{ stop.departureLine }} /
- {{ train.timetableData!.followingStops[i + 1].arrivalLine }}
-
-
+
+
+ {{ stop.departureLine }}
+
-
-
- {{ stop.stopNameRAW }} :
+
+ {{ stop.departureLine }}
+
+ {{ scheduleStops[i + 1].sceneryName }}
+
+
+ {{ scheduleStops[i + 1].arrivalLine }}
+
+
-
-
+
+
|