diff --git a/src/assets/car-cargo-unknown.png b/src/assets/car-cargo-unknown.png
new file mode 100644
index 0000000..3a270b5
Binary files /dev/null and b/src/assets/car-cargo-unknown.png differ
diff --git a/src/assets/car-passenger-unknown.png b/src/assets/car-passenger-unknown.png
new file mode 100644
index 0000000..0a930b9
Binary files /dev/null and b/src/assets/car-passenger-unknown.png differ
diff --git a/src/assets/loco-e-unknown.png b/src/assets/loco-e-unknown.png
new file mode 100644
index 0000000..c95616f
Binary files /dev/null and b/src/assets/loco-e-unknown.png differ
diff --git a/src/assets/loco-ezt-unknown.png b/src/assets/loco-ezt-unknown.png
new file mode 100644
index 0000000..357177d
Binary files /dev/null and b/src/assets/loco-ezt-unknown.png differ
diff --git a/src/assets/loco-s-unknown.png b/src/assets/loco-s-unknown.png
new file mode 100644
index 0000000..6ed3948
Binary files /dev/null and b/src/assets/loco-s-unknown.png differ
diff --git a/src/components/Global/AddDataButton.vue b/src/components/Global/AddDataButton.vue
new file mode 100644
index 0000000..edf888a
--- /dev/null
+++ b/src/components/Global/AddDataButton.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
diff --git a/src/components/JournalView/JournalTimetables/ItemExtra.vue b/src/components/JournalView/JournalTimetables/ItemExtra.vue
new file mode 100644
index 0000000..b59fac7
--- /dev/null
+++ b/src/components/JournalView/JournalTimetables/ItemExtra.vue
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
diff --git a/src/components/JournalView/JournalTimetables/ItemGeneral.vue b/src/components/JournalView/JournalTimetables/ItemGeneral.vue
new file mode 100644
index 0000000..433e19c
--- /dev/null
+++ b/src/components/JournalView/JournalTimetables/ItemGeneral.vue
@@ -0,0 +1,137 @@
+
+
+
+ #{{ timetable.id }}
+
+
+ TWR
+ SKR
+
+
+
+
+ {{ timetable.trainCategoryCode }}
+
+ {{ timetable.trainNo }}
+
+ •
+
+ {{ timetable.driverLevel < 2 ? 'L' : `${timetable.driverLevel}` }}
+
+
+ {{ timetable.driverName }}
+
+
+
+ {{
+ new Date(timetable.createdAt).getTime() - new Date(timetable.beginDate).getTime() < 0
+ ? localeDateTime(timetable.createdAt, $i18n.locale)
+ : localeDateTime(timetable.beginDate, $i18n.locale)
+ }}
+
+
+
+ {{
+ !timetable.terminated
+ ? $t('journal.timetable-active')
+ : timetable.fulfilled
+ ? $t('journal.timetable-fulfilled')
+ : `${$t('journal.timetable-abandoned')} ${localeTime(timetable.endDate, $i18n.locale)}`
+ }}
+
+
+
+
+
+
+
+
diff --git a/src/components/JournalView/JournalTimetables/ItemStatus.vue b/src/components/JournalView/JournalTimetables/ItemStatus.vue
new file mode 100644
index 0000000..6239423
--- /dev/null
+++ b/src/components/JournalView/JournalTimetables/ItemStatus.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+ {{ timetable.currentDistance + ' km' }}
+
+ /
+ {{ timetable.routeDistance }} km
+ |
+ {{ timetable.confirmedStopsCount }}/{{ timetable.allStopsCount }}
+
+
+
+
+ {{ $t(`journal.${timetable.terminated ? 'last-seen-at' : 'currently-at'}`) }}
+ {{ timetable.currentSceneryName.replace(/.[a-zA-Z0-9]+.sc/, '') }}
+
+ (
+
+
+ {{ $t('journal.timetable-location-route') }} {{ timetable.currentLocation[1] }}
+
+
+
+ {{ $t('journal.timetable-location-signal') }} {{ timetable.currentLocation[0] }}
+
+
+ )
+
+
+
+
+
+
+
+
diff --git a/src/components/JournalView/JournalTimetables/ItemStops.vue b/src/components/JournalView/JournalTimetables/ItemStops.vue
new file mode 100644
index 0000000..c53e427
--- /dev/null
+++ b/src/components/JournalView/JournalTimetables/ItemStops.vue
@@ -0,0 +1,107 @@
+
+
+
+
+ >
+
+ ... (+{{ timetableStops.length - 2 }}) >
+
+
+
+ {{ stop.stopName }}
+
+
+
+
+
+
+
+
diff --git a/src/components/JournalView/JournalTimetables/ListItem.vue b/src/components/JournalView/JournalTimetables/ListItem.vue
new file mode 100644
index 0000000..672b78f
--- /dev/null
+++ b/src/components/JournalView/JournalTimetables/ListItem.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+ {{ timetable.route.replace('|', ' - ') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/JournalView/JournalTimetablesList.vue b/src/components/JournalView/JournalTimetablesList.vue
index d1f5583..e44f52a 100644
--- a/src/components/JournalView/JournalTimetablesList.vue
+++ b/src/components/JournalView/JournalTimetablesList.vue
@@ -17,227 +17,18 @@
-
-
-
-
-
- #{{ timetable.id }}
+
+
+
-
- TWR
- SKR
-
-
-
-
- {{ timetable.trainCategoryCode }}
-
- {{ timetable.trainNo }}
-
- •
-
- {{ timetable.driverLevel < 2 ? 'L' : `${timetable.driverLevel}` }}
-
-
- {{ timetable.driverName }}
-
-
-
- {{
- new Date(timetable.createdAt).getTime() - new Date(timetable.beginDate).getTime() < 0
- ? localeDateTime(timetable.createdAt, $i18n.locale)
- : localeDateTime(timetable.beginDate, $i18n.locale)
- }}
-
-
-
- {{
- !timetable.terminated
- ? $t('journal.timetable-active')
- : timetable.fulfilled
- ? $t('journal.timetable-fulfilled')
- : `${$t('journal.timetable-abandoned')} ${localeTime(timetable.endDate, $i18n.locale)}`
- }}
-
-
-
-
-
- {{ timetable.route.replace('|', ' - ') }}
-
-
-
-
-
-
-
-
- >
-
- ... (+{{ stops.length - 2 }}) >
-
-
-
- {{ stop.stopName }}
-
-
-
-
-
-
-
-
-
-
- {{ timetable.currentDistance + ' km' }}
-
- /
- {{ timetable.routeDistance }} km
- |
- {{ timetable.confirmedStopsCount }}/{{ timetable.allStopsCount }}
-
-
-
-
- {{ $t(`journal.${timetable.terminated ? 'last-seen-at' : 'currently-at'}`) }}
- {{ timetable.currentSceneryName.replace(/.[a-zA-Z0-9]+.sc/, '') }}
-
- (
-
-
- {{ $t('journal.timetable-location-route') }} {{ timetable.currentLocation[1] }}
-
-
-
- {{ $t('journal.timetable-location-signal') }} {{ timetable.currentLocation[0] }}
-
-
- )
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $t('journal.dispatcher-name') }}
- {{ timetable.authorName }}
-
-
-
-
-
- {{ $t('journal.stock-max-speed') }}
- {{ timetable.maxSpeed }}km/h
-
-
-
- {{ $t('journal.stock-length') }}
-
- {{
- item.currentHistoryIndex.value == 0
- ? timetable.stockLength
- : stockHistoryComp[item.currentHistoryIndex.value].stockLength || timetable.stockLength
- }}m
-
-
-
-
- {{ $t('journal.stock-mass') }}
-
- {{
- Math.floor(
- (item.currentHistoryIndex.value == 0
- ? timetable.stockMass!
- : stockHistoryComp[item.currentHistoryIndex.value].stockMass || timetable.stockMass) /
- 1000
- )
- }}t
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -248,20 +39,18 @@
diff --git a/src/views/JournalDispatchers.vue b/src/views/JournalDispatchers.vue
index a5e3daa..0f1cf02 100644
--- a/src/views/JournalDispatchers.vue
+++ b/src/views/JournalDispatchers.vue
@@ -1,5 +1,5 @@
-