From 4537341a5713fa78cc99ce428cb2c269b2e05484 Mon Sep 17 00:00:00 2001 From: Spythere Date: Wed, 30 Aug 2023 20:31:40 +0200 Subject: [PATCH 01/16] =?UTF-8?q?od=C5=9Bwie=C5=BCony=20wygl=C4=85d=20dzie?= =?UTF-8?q?nnika=20RJ?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Global/ProgressBar.vue | 62 +++++++++++ .../JournalView/JournalTimetablesList.vue | 103 +++++++++--------- src/components/TrainsView/TrainInfo.vue | 34 +----- src/locales/en.json | 2 +- src/locales/pl.json | 2 +- src/mixins/dateMixin.ts | 7 ++ 6 files changed, 126 insertions(+), 84 deletions(-) create mode 100644 src/components/Global/ProgressBar.vue diff --git a/src/components/Global/ProgressBar.vue b/src/components/Global/ProgressBar.vue new file mode 100644 index 0000000..211d228 --- /dev/null +++ b/src/components/Global/ProgressBar.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/components/JournalView/JournalTimetablesList.vue b/src/components/JournalView/JournalTimetablesList.vue index 51d2c0f..6207df9 100644 --- a/src/components/JournalView/JournalTimetablesList.vue +++ b/src/components/JournalView/JournalTimetablesList.vue @@ -41,7 +41,14 @@ - {{ localeDay(timetable.beginDate, $i18n.locale) }} + {{ + new Date(timetable.createdAt).getTime() - new Date(timetable.beginDate).getTime() < 0 + ? localeDateTime(timetable.createdAt, $i18n.locale) + : localeDateTime(timetable.beginDate, $i18n.locale) + }} + + +
- - {{ $t('journal.route-length') }} - {{ !timetable.fulfilled ? timetable.currentDistance + ' /' : '' }} - {{ timetable.routeDistance }} km + + + + + {{ timetable.currentDistance + ' km' }} + + / + {{ timetable.routeDistance }} km - • - - {{ $t('journal.station-count') }} - {{ timetable.confirmedStopsCount }} / - {{ timetable.allStopsCount }} - - - • + + {{ $t(`journal.${timetable.terminated ? 'last-seen-at' : 'currently-at'}`) }} {{ timetable.currentSceneryName.replace(/.[a-zA-Z0-9]+.sc/, '') }} @@ -121,22 +129,6 @@
- -
- {{ $t('journal.dispatcher-name') }}  - - {{ timetable.authorName }} - - - ({{ - (new Date(timetable.createdAt).getTime() - new Date(timetable.beginDate).getTime() < 0 - ? new Date(timetable.createdAt) - : new Date(timetable.beginDate) - ).toLocaleString($i18n.locale, { timeStyle: 'short', dateStyle: 'full' }) - }}) - -
-
- - OD {{ new Date(onlineFrom).toLocaleTimeString('pl-PL', { hour: '2-digit', minute: '2-digit' }) }} - - - - {{ $t(`status.${station.onlineInfo.statusID}`) }} - {{ station.onlineInfo.statusID == 'online' ? timestampToString(station.onlineInfo.statusTimestamp) : '' }} - - - - {{ $t('status.free') }} - + @@ -43,20 +36,21 @@ import imageMixin from '../../../mixins/imageMixin'; import routerMixin from '../../../mixins/routerMixin'; import styleMixin from '../../../mixins/styleMixin'; import Station from '../../../scripts/interfaces/Station'; +import StationStatusBadge from '../../Global/StationStatusBadge.vue'; export default defineComponent({ - mixins: [styleMixin, dateMixin, routerMixin, imageMixin], - props: { - station: { - type: Object as () => Station, - default: {}, + mixins: [styleMixin, dateMixin, routerMixin, imageMixin], + props: { + station: { + type: Object as () => Station, + default: {}, + }, + onlineFrom: { + type: Number, + default: -1, + }, }, - - onlineFrom: { - type: Number, - default: -1, - }, - }, + components: { StationStatusBadge } }); @@ -104,3 +98,4 @@ export default defineComponent({ } } + diff --git a/src/components/StationsView/StationTable.vue b/src/components/StationsView/StationTable.vue index 5f7fbd7..480066a 100644 --- a/src/components/StationsView/StationTable.vue +++ b/src/components/StationsView/StationTable.vue @@ -93,16 +93,11 @@ - - {{ $t(`status.${station.onlineInfo.statusID}`) }} - {{ - station.onlineInfo.statusID == 'online' ? timestampToString(station.onlineInfo.statusTimestamp) : '' - }} - - - - {{ $t('status.free') }} - + @@ -253,6 +248,7 @@ import { useStationFiltersStore } from '../../store/stationFiltersStore'; import { useStore } from '../../store/store'; import Loading from '../Global/Loading.vue'; import { HeadIdsTypes, headIconsIds, headIds } from '../../scripts/data/stationHeaderNames'; +import StationStatusBadge from '../Global/StationStatusBadge.vue'; export default defineComponent({ props: { @@ -262,7 +258,7 @@ export default defineComponent({ }, }, - components: { Loading }, + components: { Loading, StationStatusBadge }, mixins: [styleMixin, dateMixin, stationInfoMixin, returnBtnMixin, imageMixin], data: () => ({ diff --git a/src/locales/en.json b/src/locales/en.json index 43b9a30..803c783 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -335,7 +335,14 @@ "stats-error": "Oops! An unexpected error occurred while trying to fetch statistics! :/", "timetable-location-signal": "signal:", - "timetable-location-route": "route:" + "timetable-location-route": "route:", + + "history-name": "Scenery name", + "history-hash": "Hash", + "history-dispatcher": "Dispatcher", + "history-level": "Level", + "history-rate": "Rate", + "history-date": "Service date" }, "scenery": { "users": "PLAYERS ONLINE", diff --git a/src/locales/pl.json b/src/locales/pl.json index 37c8f18..b053f57 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -338,7 +338,14 @@ "stats-error": "Ups! Wystąpił błąd podczas próby pobrania statystyk! :/", "timetable-location-signal": "semafor:", - "timetable-location-route": "szlak:" + "timetable-location-route": "szlak:", + + "history-name": "Sceneria", + "history-hash": "Hash", + "history-dispatcher": "Dyżurny", + "history-level": "Poziom", + "history-rate": "Ocena", + "history-date": "Data służby" }, "scenery": { "users": "GRACZE ONLINE", diff --git a/src/scripts/interfaces/api/DispatchersAPIData.ts b/src/scripts/interfaces/api/DispatchersAPIData.ts index 26e39ca..5961188 100644 --- a/src/scripts/interfaces/api/DispatchersAPIData.ts +++ b/src/scripts/interfaces/api/DispatchersAPIData.ts @@ -7,6 +7,7 @@ export interface DispatcherHistory { dispatcherLevel: number | null; dispatcherRate: number; dispatcherIsSupporter: boolean; + dispatcherStatus?: number; isOnline: boolean; lastOnlineTimestamp: number; region: string; diff --git a/src/styles/scenery_status.scss b/src/styles/scenery_status.scss deleted file mode 100644 index c3f8dc8..0000000 --- a/src/styles/scenery_status.scss +++ /dev/null @@ -1,56 +0,0 @@ -$free: #8a8a8a; -$ending: #e6c300; -$no-limit: #117fc9; -$unav: #ff3d5d; -$brb: #e6a100; -$no-space: #222; -$taken: #09a116; -$unknown: rgb(185, 60, 60); - -.status-badge { - border-radius: 1rem; - font-weight: 500; - - padding: 0.2em .55em; - - background-color: $taken; - - &.free { - background-color: $free; - font-size: 0.95em; - } - - &.ending { - background-color: $ending; - color: black; - font-size: 0.9em; - } - - &.no-limit { - background-color: $no-limit; - font-size: 0.85em; - } - - &.not-signed, - &.unavailable { - background-color: $unav; - font-size: 0.85em; - } - - &.brb { - background-color: $brb; - color: black; - font-size: 0.95em; - } - - &.no-space { - background-color: $no-space; - color: white; - font-size: 0.85em; - } - - &.unknown { - background-color: $unknown; - font-size: 0.95em; - } -} \ No newline at end of file diff --git a/src/views/JournalDispatchers.vue b/src/views/JournalDispatchers.vue index 2074a76..a5e3daa 100644 --- a/src/views/JournalDispatchers.vue +++ b/src/views/JournalDispatchers.vue @@ -6,7 +6,7 @@ Date: Sat, 2 Sep 2023 18:53:23 +0200 Subject: [PATCH 06/16] station filters active indicator --- src/components/StationsView/StationFilterCard.vue | 12 +++++------- src/styles/filters_options.scss | 9 --------- src/styles/global.scss | 9 +++++++++ 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/components/StationsView/StationFilterCard.vue b/src/components/StationsView/StationFilterCard.vue index 5504862..3b4d8e2 100644 --- a/src/components/StationsView/StationFilterCard.vue +++ b/src/components/StationsView/StationFilterCard.vue @@ -4,6 +4,7 @@