From 5750490f01d482ae404e9ee9614f0e374e937151 Mon Sep 17 00:00:00 2001 From: Spythere Date: Mon, 8 Apr 2024 23:21:50 +0200 Subject: [PATCH 01/28] refactor: journals --- .../JournalTimetablesList.vue | 67 +++++- .../JournalTimetables/TimetableDetails.vue | 195 ++++++++++++++++++ .../JournalTimetables/TimetableExtra.vue | 173 ---------------- .../JournalTimetables/TimetableGeneral.vue | 46 +++-- .../TimetableHistoryList.vue | 8 +- .../SceneryInfo/SceneryInfoIcons.vue | 7 +- src/components/StationsView/StationTable.vue | 5 +- src/locales/en.json | 17 +- src/locales/pl.json | 19 +- src/mixins/stationInfoMixin.ts | 24 --- src/store/apiStore.ts | 7 +- vite.config.ts | 44 ++-- 12 files changed, 355 insertions(+), 257 deletions(-) create mode 100644 src/components/JournalView/JournalTimetables/TimetableDetails.vue delete mode 100644 src/components/JournalView/JournalTimetables/TimetableExtra.vue delete mode 100644 src/mixins/stationInfoMixin.ts diff --git a/src/components/JournalView/JournalTimetables/JournalTimetablesList.vue b/src/components/JournalView/JournalTimetables/JournalTimetablesList.vue index 9f9f616..b1bfaa6 100644 --- a/src/components/JournalView/JournalTimetables/JournalTimetablesList.vue +++ b/src/components/JournalView/JournalTimetables/JournalTimetablesList.vue @@ -17,7 +17,34 @@
- +
    + +
  • +
    + + + + + {{ timetable.route.replace('|', ' - ') }} + + +
    + + + + + + + +
    +
  • +
    +
@@ -80,4 +128,15 @@ export default defineComponent({ diff --git a/src/components/JournalView/JournalTimetables/TimetableDetails.vue b/src/components/JournalView/JournalTimetables/TimetableDetails.vue new file mode 100644 index 0000000..a9964f4 --- /dev/null +++ b/src/components/JournalView/JournalTimetables/TimetableDetails.vue @@ -0,0 +1,195 @@ + + + + + diff --git a/src/components/JournalView/JournalTimetables/TimetableExtra.vue b/src/components/JournalView/JournalTimetables/TimetableExtra.vue deleted file mode 100644 index 50b9d3b..0000000 --- a/src/components/JournalView/JournalTimetables/TimetableExtra.vue +++ /dev/null @@ -1,173 +0,0 @@ - - - - - diff --git a/src/components/JournalView/JournalTimetables/TimetableGeneral.vue b/src/components/JournalView/JournalTimetables/TimetableGeneral.vue index 8b2e2bd..b966037 100644 --- a/src/components/JournalView/JournalTimetables/TimetableGeneral.vue +++ b/src/components/JournalView/JournalTimetables/TimetableGeneral.vue @@ -64,11 +64,11 @@
@@ -104,8 +104,8 @@ export default defineComponent({ diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue index 14930fe..06db7fb 100644 --- a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue +++ b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue @@ -32,7 +32,7 @@ import { PropType, defineComponent } from 'vue'; import modalTrainMixin from '../../../mixins/modalTrainMixin'; import routerMixin from '../../../mixins/routerMixin'; -import { ActiveScenery } from '../../../store/typings'; +import { ActiveScenery } from '../../../typings/common'; export default defineComponent({ mixins: [routerMixin, modalTrainMixin], diff --git a/src/components/SceneryView/SceneryTimetable.vue b/src/components/SceneryView/SceneryTimetable.vue index a0d140d..279775f 100644 --- a/src/components/SceneryView/SceneryTimetable.vue +++ b/src/components/SceneryView/SceneryTimetable.vue @@ -14,14 +14,6 @@ - - icon-tablice @@ -186,12 +178,11 @@ import { useRoute } from 'vue-router'; import Loading from '../Global/Loading.vue'; import dateMixin from '../../mixins/dateMixin'; import routerMixin from '../../mixins/routerMixin'; -import Station from '../../scripts/interfaces/Station'; import { useMainStore } from '../../store/mainStore'; import modalTrainMixin from '../../mixins/modalTrainMixin'; import ScheduledTrainStatus from './ScheduledTrainStatus.vue'; -import { ActiveScenery } from '../../store/typings'; import { useApiStore } from '../../store/apiStore'; +import { ActiveScenery, Station } from '../../typings/common'; export default defineComponent({ name: 'SceneryTimetable', diff --git a/src/components/SceneryView/SceneryTimetablesHistory.vue b/src/components/SceneryView/SceneryTimetablesHistory.vue index 4fefc36..0c35eb6 100644 --- a/src/components/SceneryView/SceneryTimetablesHistory.vue +++ b/src/components/SceneryView/SceneryTimetablesHistory.vue @@ -71,12 +71,10 @@ import { defineComponent, PropType } from 'vue'; import dateMixin from '../../mixins/dateMixin'; -import Station from '../../scripts/interfaces/Station'; import Loading from '../Global/Loading.vue'; import listObserverMixin from '../../mixins/listObserverMixin'; -import { ActiveScenery } from '../../store/typings'; import { API } from '../../typings/api'; -import { Status } from '../../typings/common'; +import { ActiveScenery, Station, Status } from '../../typings/common'; import { useApiStore } from '../../store/apiStore'; export default defineComponent({ diff --git a/src/components/SceneryView/ScheduledTrainStatus.vue b/src/components/SceneryView/ScheduledTrainStatus.vue index 3187b21..6d69c01 100644 --- a/src/components/SceneryView/ScheduledTrainStatus.vue +++ b/src/components/SceneryView/ScheduledTrainStatus.vue @@ -11,7 +11,7 @@ + + diff --git a/src/store/mainStore.ts b/src/store/mainStore.ts index a8f9408..dbda7fc 100644 --- a/src/store/mainStore.ts +++ b/src/store/mainStore.ts @@ -32,10 +32,7 @@ export const useMainStore = defineStore('mainStore', { modalLastClickedTarget: null, mousePos: { x: 0, y: 0 }, - popUpData: { key: null, content: '' }, - - stations: [] as Station[], - trainsOnline: [] as Train[] + popUpData: { key: null, content: '' } }) as MainStoreState, getters: { diff --git a/src/store/typings.ts b/src/store/typings.ts index b018c02..7860510 100644 --- a/src/store/typings.ts +++ b/src/store/typings.ts @@ -17,8 +17,6 @@ export interface MainStoreState { modalLastClickedTarget: EventTarget | null; mousePos: { x: number; y: number }; popUpData: { key: PopUpType | null; content: string }; - stations: Station[]; - trainsOnline: Train[]; } export interface StationJSONData { diff --git a/src/styles/global.scss b/src/styles/global.scss index 8d1fd59..feab088 100644 --- a/src/styles/global.scss +++ b/src/styles/global.scss @@ -298,3 +298,23 @@ a.a-button { } } } + +// Basic tooltip +[data-tooltip]:hover::after, +[data-tooltip]:focus::after { + position: absolute; + transform: translate(10px, -50%); + + content: attr(data-tooltip); + color: white; + background-color: #171717; + border-radius: 0.5em; + padding: 0.5em; + margin: 0 0.25em; + max-width: 300px; + z-index: 100; +} + +[data-tooltip] { + cursor: help; +} diff --git a/src/views/StationsView.vue b/src/views/StationsView.vue index 2bfcce0..fb4a830 100644 --- a/src/views/StationsView.vue +++ b/src/views/StationsView.vue @@ -22,13 +22,7 @@ -
-
- Średnia liczba rozkładów jazdy na dyżurnego: {{ avgTimetableCount }} | Dostępne - szlaki 1-torowe: {{ oneWayTracks }} (zelektr.) / {{ 0 }} (spalinowe) | - Dostępne szlaki 2-torowe: {{ 0 }} (zelektr.) / {{ 0 }} (spalinowe) | Otwarte - spawny: {{ 0 }} (PAS.) / {{ 0 }} (TOW.) / {{ 0 }} (LUZ.) -
+ @@ -40,56 +34,28 @@ import StationFilterCard from '../components/StationsView/StationFilterCard.vue' import { useStationFiltersStore } from '../store/stationFiltersStore'; import { useMainStore } from '../store/mainStore'; import Donation from '../components/Global/Donation.vue'; +import StationsStats from '../components/StationsView/StationsStats.vue'; export default defineComponent({ components: { StationTable, StationFilterCard, + StationsStats, Donation }, data: () => ({ filterCardOpen: false, - modalHidden: true, - STORAGE_KEY: 'options_saved', - focusedStationName: '', - filterStore: useStationFiltersStore(), - store: useMainStore(), + isDonationModalOpen: false, - isDonationModalOpen: false + filterStore: useStationFiltersStore(), + store: useMainStore() }), mounted() { this.filterStore.setupFilters(); }, - computed: { - avgTimetableCount() { - const scheduledTrainsTotal = this.store.activeSceneryList.reduce((acc, sc) => { - if (sc.region != 'eu') return acc; - - acc += sc.scheduledTrainCount.all; - - return acc; - }, 0); - - return ( - this.store.activeSceneryList.length != 0 - ? scheduledTrainsTotal / this.store.activeSceneryList.length - : 0 - ).toFixed(2); - }, - - oneWayTracks() { - // return this.computedStationList - // .filter((st) => st.onlineInfo && st.generalInfo?.routes.single) - // .map((st) => st.generalInfo!.routes.single.map((r) => r.routeName)) - // .join(', '); - - return []; - } - }, - methods: { toggleDonationModal(value: boolean) { this.isDonationModalOpen = value; @@ -102,30 +68,6 @@ export default defineComponent({ @import '../styles/variables.scss'; @import '../styles/responsive.scss'; -@keyframes blinkAnim { - 0%, - 100% { - opacity: 1; - } - - 50% { - opacity: 0; - } -} - -.indicator-anim { - &-enter-active, - &-leave-active { - transition: all 0.25s ease-in-out; - } - - &-enter, - &-leave-to { - transform: translateY(100%); - opacity: 0; - } -} - .stations-view { position: relative; display: flex; @@ -148,11 +90,6 @@ export default defineComponent({ margin-bottom: 0.5em; } -.stations-stats { - text-align: center; - color: #ccc; -} - button.btn-donation { $btnColor: #254069; From d366a877a49d4e7cf49b9301a914169288f07c89 Mon Sep 17 00:00:00 2001 From: Spythere Date: Mon, 6 May 2024 16:37:56 +0200 Subject: [PATCH 14/28] refactor: popups -> tooltips --- src/App.vue | 41 ++++----------- src/components/Global/StockList.vue | 24 ++++----- .../JournalDispatchersList.vue | 7 +-- .../JournalTimetables/TimetableGeneral.vue | 16 ++++-- .../SceneryView/SceneryDispatchersHistory.vue | 3 +- .../SceneryInfo/SceneryInfoDispatcher.vue | 13 +++-- .../SceneryView/SceneryTimetablesHistory.vue | 3 +- src/components/StationsView/StationTable.vue | 21 +++++--- .../BaseTooltip.vue} | 10 ++-- .../DonatorTooltip.vue} | 10 ++-- .../{PopUp/PopUp.vue => Tooltip/Tooltip.vue} | 33 ++++++------ .../VehiclePreviewTooltip.vue} | 16 +++--- src/components/TrainsView/TrainInfo.vue | 8 +-- src/locales/en.json | 4 +- src/locales/pl.json | 4 +- src/mixins/donatorMixin.ts | 16 ------ src/mixins/listObserverMixin.ts | 27 ---------- src/mixins/modalTrainMixin.ts | 6 ++- src/mixins/popupMixin.ts | 27 ---------- src/store/mainStore.ts | 5 +- src/store/stationFiltersStore.ts | 2 - src/store/tooltipStore.ts | 52 +++++++++++++++++++ src/store/typings.ts | 7 +-- src/store/utils.ts | 16 ++++-- src/typings/common.ts | 14 +++-- 25 files changed, 186 insertions(+), 199 deletions(-) rename src/components/{PopUp/TrainCommentsPopUp.vue => Tooltip/BaseTooltip.vue} (69%) rename src/components/{PopUp/DonatorPopUp.vue => Tooltip/DonatorTooltip.vue} (70%) rename src/components/{PopUp/PopUp.vue => Tooltip/Tooltip.vue} (58%) rename src/components/{PopUp/VehiclePreviewPopUp.vue => Tooltip/VehiclePreviewTooltip.vue} (77%) delete mode 100644 src/mixins/donatorMixin.ts delete mode 100644 src/mixins/listObserverMixin.ts delete mode 100644 src/mixins/popupMixin.ts create mode 100644 src/store/tooltipStore.ts diff --git a/src/App.vue b/src/App.vue index e2eae3f..57fc7e1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,6 @@