diff --git a/src/components/JournalView/JournalTimetables/EntryDetails.vue b/src/components/JournalView/JournalTimetables/EntryDetails.vue
index 81c3cdf..5c47d06 100644
--- a/src/components/JournalView/JournalTimetables/EntryDetails.vue
+++ b/src/components/JournalView/JournalTimetables/EntryDetails.vue
@@ -95,7 +95,11 @@
{{ $t('journal.stock-preview') }}:
-
+
+
+
-
-
-
+
+
+
+
@@ -79,6 +82,7 @@ import { useMainStore } from '../store/mainStore';
import { useApiStore } from '../store/apiStore';
import { Status } from '../typings/common';
import { regions as regionsJSON } from '../data/options.json';
+import { useI18n } from 'vue-i18n';
const props = defineProps({
trainId: {
@@ -93,6 +97,8 @@ const props = defineProps({
const mainStore = useMainStore();
const apiStore = useApiStore();
+const i18n = useI18n();
+
const chosenTrain = computed(() =>
mainStore.trainList.find((train) => train.id == props.trainId || train.modalId == props.modalId)
);
@@ -104,6 +110,24 @@ const otherDriverTrains = computed(() => {
(train.timetableData || train.online || train.lastSeen >= Date.now() - 60000)
);
});
+
+function copyStockToClipboard() {
+ const stockString = chosenTrain.value?.stockList.join(';');
+
+ if (!stockString) {
+ alert(i18n.t('trains.stock-clipboard-failure'));
+ return;
+ }
+
+ navigator.clipboard
+ .writeText(stockString)
+ .then(() => {
+ prompt(i18n.t('trains.stock-clipboard-success'), stockString);
+ })
+ .catch(() => {
+ alert(i18n.t('trains.stock-clipboard-failure'));
+ });
+}