diff --git a/src/components/SceneryView/SceneryInfo.vue b/src/components/SceneryView/SceneryInfo.vue
index 32798be..7d84064 100644
--- a/src/components/SceneryView/SceneryInfo.vue
+++ b/src/components/SceneryView/SceneryInfo.vue
@@ -1,189 +1,49 @@
-
+
+
-
-
-
- {{ station.onlineInfo?.dispatcherRate || '0' }}
-
-
-
-
- {{ station.onlineInfo?.currentUsers || '0' }}
- /
- {{ station.onlineInfo?.maxUsers || '0' }}
-
-
-
-
- {{ station.onlineInfo?.spawns.length || '0' }}
-
-
-
-
-
- {{ station.onlineInfo?.scheduledTrains?.length || '0' }}
- /
- {{ station.onlineInfo?.scheduledTrains?.filter((train) => train.stopInfo.confirmed).length || '0' }}
-
-
-
-
-
-
-
![]()
-
-
![]()
-
-
![]()
-
-
![two way route blockade]()
-
-
![default scenery]()
-
-
![non public scenery]()
-
-
![icon unavailable]()
-
-
![real scenery]()
-
-
![icon-unknown]()
-
-
-
-
-
- {{ station.onlineInfo.dispatcherExp > 1 ? station.onlineInfo.dispatcherExp : 'L' }}
-
-
- {{ station.onlineInfo.dispatcherName }}
-
-
-
- {{ $t(`status.${station.onlineInfo.statusID}`) }}
- {{ station.onlineInfo.statusID == 'online' ? station.onlineInfo.statusTimeString : '' }}
-
-
-
- {{ $t('status.free') }}
-
-
+
+
+
+
+
+
+
-
-
+
+
-
navigateToTrain(train.trainNo)"
- @keydown="(e) => { if(e.keyCode == 13) navigateToTrain(train.trainNo) }"
- >
- {{ train.trainNo }}
- {{ train.driverName }}
-
-
-
- {{ $t('scenery.no-users') }}
-
-
-
-
-
-
-
-
- {{ spawn.spawnName }}
- {{ spawn.spawnLength }}m
-
-
-
- {{ $t('scenery.no-spawns') }}
-
-
+
+
-
diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue
new file mode 100644
index 0000000..ceb628d
--- /dev/null
+++ b/src/components/SceneryView/SceneryInfo/SceneryInfoDispatcher.vue
@@ -0,0 +1,79 @@
+
+
+
+
+ {{ station.onlineInfo.dispatcherExp > 1 ? station.onlineInfo.dispatcherExp : 'L' }}
+
+
+ {{ station.onlineInfo.dispatcherName }}
+
+
+
+ {{ $t(`status.${station.onlineInfo.statusID}`) }}
+ {{ station.onlineInfo.statusID == 'online' ? station.onlineInfo.statusTimeString : '' }}
+
+
+
+ {{ $t('status.free') }}
+
+
+
+
+
+
+
diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoHeader.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoHeader.vue
new file mode 100644
index 0000000..edf724a
--- /dev/null
+++ b/src/components/SceneryView/SceneryInfo/SceneryInfoHeader.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoIcons.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoIcons.vue
new file mode 100644
index 0000000..13b5cd9
--- /dev/null
+++ b/src/components/SceneryView/SceneryInfo/SceneryInfoIcons.vue
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoSpawnList.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoSpawnList.vue
new file mode 100644
index 0000000..988c8c8
--- /dev/null
+++ b/src/components/SceneryView/SceneryInfo/SceneryInfoSpawnList.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+ {{ spawn.spawnName }}
+ {{ spawn.spawnLength }}m
+
+
+
+ {{ $t('scenery.no-spawns') }}
+
+
+
+
+
+
+
diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoStats.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoStats.vue
new file mode 100644
index 0000000..6b5eafd
--- /dev/null
+++ b/src/components/SceneryView/SceneryInfo/SceneryInfoStats.vue
@@ -0,0 +1,90 @@
+
+
+
+
+ {{ station.onlineInfo?.dispatcherRate || '0' }}
+
+
+
+
+ {{ station.onlineInfo?.currentUsers || '0' }}
+ /
+ {{ station.onlineInfo?.maxUsers || '0' }}
+
+
+
+
+ {{ station.onlineInfo?.spawns.length || '0' }}
+
+
+
+
+
+ {{ station.onlineInfo?.scheduledTrains?.length || '0' }}
+ /
+ {{ station.onlineInfo?.scheduledTrains?.filter((train) => train.stopInfo.confirmed).length || '0' }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue
new file mode 100644
index 0000000..7c460fa
--- /dev/null
+++ b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue
@@ -0,0 +1,134 @@
+
+
+
+
+ navigateToTrain(train.trainNo)"
+ @keydown.enter="navigateToTrain(train.trainNo)"
+ >
+ {{ train.trainNo }}
+ {{ train.driverName }}
+
+
+
+ {{ $t('scenery.no-users') }}
+
+
+
+
+
+
+
diff --git a/src/components/SceneryView/SceneryTimetable.vue b/src/components/SceneryView/SceneryTimetable.vue
index 716c81c..99067eb 100644
--- a/src/components/SceneryView/SceneryTimetable.vue
+++ b/src/components/SceneryView/SceneryTimetable.vue
@@ -35,11 +35,7 @@
:key="i + 1"
tabindex="0"
@click="navigateToTrain(scheduledTrain.trainNo)"
- @keydown="
- (e) => {
- if (e.keyCode == 13) navigateToTrain(scheduledTrain.trainNo);
- }
- "
+ @keydown.enter="navigateToTrain(scheduledTrain.trainNo)"
>
diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue
index 1abdff0..ddebae8 100644
--- a/src/components/StationsView/StationTable.vue
+++ b/src/components/StationsView/StationTable.vue
@@ -38,7 +38,7 @@
v-for="(station, i) in stations"
:key="i + station.name"
@click="() => setScenery(station.name)"
- @keydown="(e) => { if(e.keyCode == 13) setScenery(station.name) }"
+ @keydown.enter="setScenery(station.name)"
tabindex="0"
>
{
- if (e.keyCode == 13) changeScheduleShowState(train.timetableData?.timetableId);
- }
- "
- :ref="
- (el) => {
- if (!train.timetableData) return;
- elList[train.timetableData.timetableId] = el;
- }
- "
+ @keydown.enter="changeScheduleShowState(train.timetableData?.timetableId)"
+
+ :ref="el => registerReference(el, train.timetableData?.timetableId)"
>
@@ -268,6 +260,10 @@ export default defineComponent({
}, 10);
},
+ registerReference(el: HTMLElement, timetableId: number | undefined) {
+ if(timetableId) this.elList[timetableId] = el;
+ },
+
focusOnTrain(trainNoStr: string) {
const timetableId = this.computedTrains.find((train) => train.trainNo == Number(trainNoStr))?.timetableData
?.timetableId;
@@ -335,7 +331,6 @@ export default defineComponent({
|