diff --git a/src/components/Global/Loading.vue b/src/components/Global/Loading.vue index b30e787..753d50a 100644 --- a/src/components/Global/Loading.vue +++ b/src/components/Global/Loading.vue @@ -30,8 +30,8 @@ export default defineComponent({ } .loading-circle { - width: 1.25em; - padding-top: 1.25em; + width: 1.25rem; + padding-top: 1.25rem; border-radius: 50%; diff --git a/src/components/JournalView/JournalDispatchers.vue b/src/components/JournalView/JournalDispatchers.vue index 168d332..6060f47 100644 --- a/src/components/JournalView/JournalDispatchers.vue +++ b/src/components/JournalView/JournalDispatchers.vue @@ -33,9 +33,7 @@
-
- {{ $t('app.loading') }} -
+
{{ $t('app.error') }} @@ -112,6 +110,7 @@ import DispatcherStats from '@/components/JournalView/DispatcherStats.vue'; import { URLs } from '@/scripts/utils/apiURLs'; import { useStore } from '@/store/store'; import { DispatcherStatsAPIData } from '@/scripts/interfaces/api/DispatcherStatsAPIData'; +import Loading from '../Global/Loading.vue'; const PROD_MODE = process.env.VUE_APP_JORUNAL_DISPATCHERS_DEV != '1' || process.env.NODE_ENV === 'production'; @@ -137,7 +136,7 @@ interface DispatcherHistoryItem { } export default defineComponent({ - components: { SearchBox, ActionButton, JournalOptions, DispatcherStats }, + components: { SearchBox, ActionButton, JournalOptions, DispatcherStats, Loading }, mixins: [dateMixin], name: 'JournalDispatchers', diff --git a/src/components/JournalView/JournalTimetables.vue b/src/components/JournalView/JournalTimetables.vue index f4e7d6e..4908390 100644 --- a/src/components/JournalView/JournalTimetables.vue +++ b/src/components/JournalView/JournalTimetables.vue @@ -30,9 +30,7 @@
-
- {{ $t('app.loading') }} -
+
{{ $t('app.error') }} @@ -177,6 +175,7 @@ import routerMixin from '@/mixins/routerMixin'; import { useStore } from '@/store/store'; import DriverStats from './DriverStats.vue'; import { TimetableHistory } from '@/scripts/interfaces/api/TimetablesAPIData'; +import Loading from '../Global/Loading.vue'; const PROD_MODE = process.env.VUE_APP_JOURNAL_TIMETABLES_DEV != '1' || process.env.NODE_ENV === 'production'; @@ -185,7 +184,7 @@ const TIMETABLES_API_URL = PROD_MODE : 'http://localhost:3001/api/getTimetables'; export default defineComponent({ - components: { SearchBox, ActionButton, JournalOptions, DriverStats }, + components: { SearchBox, ActionButton, JournalOptions, DriverStats, Loading }, mixins: [dateMixin, routerMixin], name: 'JournalTimetables', @@ -401,7 +400,6 @@ export default defineComponent({ this.historyDataStatus.error = 'Ups! Coś poszło nie tak!'; console.error(error); - } }, }, diff --git a/src/components/SceneryView/SceneryTimetable.vue b/src/components/SceneryView/SceneryTimetable.vue index 5cb3f43..c968b83 100644 --- a/src/components/SceneryView/SceneryTimetable.vue +++ b/src/components/SceneryView/SceneryTimetable.vue @@ -30,10 +30,10 @@
-
- - {{ $t('app.loading') }} - +
+
+ +
{{ $t('scenery.no-timetables') }} @@ -144,14 +144,13 @@ import Station from '@/scripts/interfaces/Station'; import SelectBox from '../Global/SelectBox.vue'; import { computed, defineComponent, ref } from '@vue/runtime-core'; import { useRoute } from 'vue-router'; -import { DataStatus } from '@/scripts/enums/DataStatus'; -import { ComputedRef } from 'vue'; import dateMixin from '@/mixins/dateMixin'; import routerMixin from '@/mixins/routerMixin'; import { useStore } from '@/store/store'; +import Loading from '../Global/Loading.vue'; export default defineComponent({ - components: { SelectBox }, + components: { SelectBox, Loading }, mixins: [dateMixin, routerMixin], @@ -180,8 +179,6 @@ export default defineComponent({ const store = useStore(); - const trainsDataStatus = store.dataStatuses.trains; - const selectedCheckpoint = ref( props.station?.generalInfo?.checkpoints?.length == 0 ? '' @@ -216,7 +213,7 @@ export default defineComponent({ currentURL, selectedCheckpoint, computedScheduledTrains, - trainsDataStatus, + store, }; }, @@ -317,13 +314,9 @@ h3.timetable-header { cursor: pointer; z-index: 10; - &.loading, &.empty { padding: 1rem; font-size: 1.2em; - } - - &.empty { color: #bbb; } } diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue index b10c919..ed7119a 100644 --- a/src/components/StationsView/StationTable.vue +++ b/src/components/StationsView/StationTable.vue @@ -213,12 +213,10 @@
-
- {{ $t('sceneries.no-stations') }} -
+ -
- {{ $t('app.loading') }} +
+ {{ $t('sceneries.no-stations') }}
@@ -234,6 +232,7 @@ import { computed, ComputedRef, defineComponent } from '@vue/runtime-core'; import Station from '@/scripts/interfaces/Station'; import { StoreData } from '@/scripts/interfaces/StoreData'; import { useStore } from '@/store/store'; +import Loading from '../Global/Loading.vue'; export default defineComponent({ props: { @@ -241,18 +240,17 @@ export default defineComponent({ type: Array as () => Station[], required: true, }, - sorterActive: { - type: Object as () => { index: number; dir: number }, + type: Object as () => { + index: number; + dir: number; + }, required: true, }, - setFocusedStation: { type: Function, required: true }, changeSorter: { type: Function, required: true }, }, - mixins: [styleMixin, dateMixin, stationInfoMixin, returnBtnMixin], - data: () => ({ likeIcon: require('@/assets/icon-like.svg'), spawnIcon: require('@/assets/icon-spawn.svg'), @@ -265,50 +263,38 @@ export default defineComponent({ unavailableIcon: require('@/assets/icon-unavailable.svg'), unknownIcon: require('@/assets/icon-unknown.svg'), abandonedIcon: require('@/assets/icon-abandoned.svg'), - ascIcon: require('@/assets/icon-arrow-asc.svg'), descIcon: require('@/assets/icon-arrow-desc.svg'), - headIds: ['station', 'min-lvl', 'status', 'dispatcher', 'dispatcher-lvl', 'routes', 'general'], - headIconsIds: ['user', 'spawn', 'timetable'], - lastSelectedStationName: '', }), - setup() { const store = useStore(); - const isDataLoaded = computed(() => { return store.dataStatuses.sceneries != DataStatus.Loading; }); - return { isDataLoaded, }; }, - methods: { setScenery(name: string) { const station = this.stations.find((station) => station.name === name); - if (!station) return; - this.lastSelectedStationName = station.name; - this.$router.push({ name: 'SceneryView', query: { station: station.name.replaceAll(' ', '_') }, }); }, - openForumSite(e: Event, url: string | undefined) { if (!url) return; - e.preventDefault(); window.open(url, '_blank'); }, }, + components: { Loading }, }); diff --git a/src/components/TrainsView/TrainTable.vue b/src/components/TrainsView/TrainTable.vue index eaffd0e..ca23e4d 100644 --- a/src/components/TrainsView/TrainTable.vue +++ b/src/components/TrainsView/TrainTable.vue @@ -5,19 +5,13 @@ -
- +
+ -
+
{{ $t('trains.no-trains') }}
-
- {{ $t('trains.loading') }} -
-