From 3a2978bbe30d327a91cc7a0cde27a95af876efb2 Mon Sep 17 00:00:00 2001 From: Spythere Date: Sun, 11 Sep 2022 02:00:58 +0200 Subject: [PATCH] =?UTF-8?q?Usprawniono=20dzia=C5=82anie=20listy=20dziennik?= =?UTF-8?q?a=20dy=C5=BCurnych?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JournalView/JournalDispatchers.vue | 8 +- .../JournalView/JournalDispatchersList.vue | 108 +++++++++--------- src/components/JournalView/JournalOptions.vue | 4 +- src/components/TrainsView/TrainTable.vue | 5 +- src/types/Journal/JournalDispatcherTypes.ts | 2 +- 5 files changed, 64 insertions(+), 63 deletions(-) diff --git a/src/components/JournalView/JournalDispatchers.vue b/src/components/JournalView/JournalDispatchers.vue index 14d0fb4..368c5c4 100644 --- a/src/components/JournalView/JournalDispatchers.vue +++ b/src/components/JournalView/JournalDispatchers.vue @@ -106,6 +106,7 @@ export default defineComponent({ const searchersValues = reactive({ 'search-dispatcher': '', 'search-station': '', + 'search-date': '', } as JournalDispatcherSearcher); const countFromIndex = ref(0); @@ -211,14 +212,15 @@ export default defineComponent({ const queries: string[] = []; - // const dispatcher = props.searchers?.find((s) => s.id == 'search-dispatcher')?.value.trim(); - // const station = props.searchers?.find((s) => s.id == 'search-station')?.value.trim(); - const dispatcher = props.searchers?.['search-dispatcher'].trim(); const station = props.searchers?.['search-station'].trim(); + const dateString = props.searchers?.['search-date'].trim(); + const timestampFrom = dateString ? Date.parse(new Date(dateString).toISOString()) - 120 * 60 * 1000 : undefined; + const timestampTo = timestampFrom ? timestampFrom + 86400000 : undefined; if (dispatcher) queries.push(`dispatcherName=${dispatcher}`); if (station) queries.push(`stationName=${station}`); + if (timestampFrom && timestampTo) queries.push(`timestampFrom=${timestampFrom}`, `timestampTo=${timestampTo}`); // Z API: const SORT_TYPES = ['allStopsCount', 'endDate', 'beginDate', 'routeDistance']; if (this.sorterActive.id == 'timestampFrom') queries.push('sortBy=timestampFrom'); diff --git a/src/components/JournalView/JournalDispatchersList.vue b/src/components/JournalView/JournalDispatchersList.vue index 60f36f6..f701998 100644 --- a/src/components/JournalView/JournalDispatchersList.vue +++ b/src/components/JournalView/JournalDispatchersList.vue @@ -1,41 +1,42 @@ @@ -54,6 +55,17 @@ export default defineComponent({ mixins: [dateMixin], + computed: { + computedDispatcherHistory() { + return this.dispatcherHistory.reduce((acc, historyItem, i) => { + if (this.isAnotherDay(i - 1, i)) acc.push(new Date(historyItem.timestampFrom).toLocaleDateString('pl-PL')); + acc.push(historyItem); + + return acc; + }, [] as (DispatcherHistory | string)[]); + }, + }, + methods: { navigateToScenery(name: string, isOnline: boolean) { if (!isOnline) return; @@ -87,6 +99,11 @@ export default defineComponent({ } } +li.sticky { + position: sticky; + top: 0; +} + .journal_item { display: flex; justify-content: space-between; @@ -108,36 +125,19 @@ export default defineComponent({ } .journal_day { - position: relative; - text-align: center; - background-color: #4d4d4d; - margin: 1em 0; + padding: 0.5em; + font-weight: bold; + + background-color: #333; span { position: relative; - background-color: #4d4d4d; + background-color: inherit; z-index: 10; + padding-right: 1em; - padding: 0 0.5em; - } - - &::after { - position: absolute; - content: ''; - - z-index: 0; - - left: 50%; - top: 50%; - - transform: translate(-50%, -50%); - - height: 3px; - width: 60%; - min-width: 200px; - - background-color: white; + font-weight: bold; } } diff --git a/src/components/JournalView/JournalOptions.vue b/src/components/JournalView/JournalOptions.vue index a02ce28..9ea25a6 100644 --- a/src/components/JournalView/JournalOptions.vue +++ b/src/components/JournalView/JournalOptions.vue @@ -75,10 +75,10 @@ -
+
diff --git a/src/components/TrainsView/TrainTable.vue b/src/components/TrainsView/TrainTable.vue index ba1dc09..a68b28b 100644 --- a/src/components/TrainsView/TrainTable.vue +++ b/src/components/TrainsView/TrainTable.vue @@ -118,11 +118,10 @@ export default defineComponent({ text-align: center; padding: 1em 0; - margin: 1em 0; font-size: 1.5em; - background: #333; + background: #1a1a1a; } img.train-image { @@ -195,4 +194,4 @@ img.train-image { text-align: center; } } - + \ No newline at end of file diff --git a/src/types/Journal/JournalDispatcherTypes.ts b/src/types/Journal/JournalDispatcherTypes.ts index 9de65af..2c101e4 100644 --- a/src/types/Journal/JournalDispatcherTypes.ts +++ b/src/types/Journal/JournalDispatcherTypes.ts @@ -1,5 +1,5 @@ export type JournalDispatcherSearcher = { - [key in 'search-dispatcher' | 'search-station']: string; + [key in 'search-dispatcher' | 'search-station' | 'search-date']: string; }; export interface JournalDispatcherSorter {