diff --git a/src/assets/icon-history.svg b/src/assets/icon-history.svg deleted file mode 100644 index 634fb64..0000000 --- a/src/assets/icon-history.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/Global/SelectBox.vue b/src/components/Global/SelectBox.vue index 3c44b0e..22e4274 100644 --- a/src/components/Global/SelectBox.vue +++ b/src/components/Global/SelectBox.vue @@ -190,7 +190,7 @@ ul.options { height: auto; - z-index: 10; + z-index: 100; width: 100%; } diff --git a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue index f724377..0e7336b 100644 --- a/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue +++ b/src/components/SceneryView/SceneryInfo/SceneryInfoUserList.vue @@ -79,6 +79,7 @@ $terminated: salmon; $disconnected: slategray; .info-user-list { + width: 100%; ul { display: flex; diff --git a/src/components/SceneryView/SceneryTimetable.vue b/src/components/SceneryView/SceneryTimetable.vue index e715d9b..5ab33e9 100644 --- a/src/components/SceneryView/SceneryTimetable.vue +++ b/src/components/SceneryView/SceneryTimetable.vue @@ -1,15 +1,28 @@ + + diff --git a/src/scripts/interfaces/api/TimetablesAPIData.ts b/src/scripts/interfaces/api/TimetablesAPIData.ts index 18aecb2..48710a4 100644 --- a/src/scripts/interfaces/api/TimetablesAPIData.ts +++ b/src/scripts/interfaces/api/TimetablesAPIData.ts @@ -1,4 +1,3 @@ - export interface TimetableHistory { timetableId: number; trainNo: number; @@ -28,3 +27,9 @@ export interface TimetableHistory { authorName?: string; authorId?: number; } + +export interface SceneryTimetableHistory { + sceneryTimetables: TimetableHistory[]; + totalCount: number; + sceneryName: string; +} diff --git a/src/views/SceneryView.vue b/src/views/SceneryView.vue index 9ce0e66..50ac872 100644 --- a/src/views/SceneryView.vue +++ b/src/views/SceneryView.vue @@ -22,16 +22,26 @@
- - - +
- + + + + +
@@ -49,22 +59,48 @@ import { useRoute } from 'vue-router'; import { useStore } from '@/store/store'; import routerMixin from '@/mixins/routerMixin'; +import SceneryTimetablesHistory from '../components/SceneryView/SceneryTimetablesHistory.vue'; + +enum SceneryViewMode { + 'TIMETABLES_ACTIVE', + 'TIMETABLES_HISTORY', + 'SCENERY_HISTORY', +} export default defineComponent({ - components: { SceneryInfo, SceneryTimetable, ActionButton, SceneryHeader }, + components: { SceneryInfo, SceneryTimetable, ActionButton, SceneryHeader, SceneryTimetablesHistory }, mixins: [routerMixin], data: () => ({ icons: { - history: require('@/assets/icon-history.svg'), user: require('@/assets/icon-user.svg'), back: require('@/assets/icon-back.svg'), }, + viewModes: [ + { + name: SceneryViewMode.TIMETABLES_ACTIVE, + value: 'Aktywne rozkłady jazdy', + component: 'SceneryTimetable', + }, + { + name: SceneryViewMode.TIMETABLES_HISTORY, + value: 'Historia rozkładów scenerii', + component: 'SceneryTimetablesHistory', + }, + { + name: SceneryViewMode.SCENERY_HISTORY, + value: 'Historia dyżurów scenerii', + component: 'SceneryDispatchersHistory', + }, + ], + + sceneryViewMode: SceneryViewMode, + selectedCheckpoint: '', - viewMode: 'info', + currentViewCompontent: 'SceneryTimetable', onlineFrom: -1, }), @@ -94,8 +130,8 @@ export default defineComponent({ }, methods: { - setCardViewMode(mode: string) { - this.viewMode = mode; + setViewMode(componentName: string) { + this.currentViewCompontent = componentName; }, loadSelectedCheckpoint() { @@ -157,7 +193,6 @@ button.back-btn { width: 100%; max-width: 1700px; - padding: 1em; margin: 1rem 0; text-align: center; @@ -187,7 +222,7 @@ button.back-btn { max-height: 1000px; display: grid; - grid-template-rows: 50px 1fr; + grid-template-rows: auto 1fr; gap: 1em; } @@ -198,10 +233,17 @@ button.back-btn { .info-actions { display: flex; justify-content: center; + align-items: center; .btn { margin: 0.5em; + padding: 0.5em; box-shadow: 0 0 10px 4px #242424; + + &[data-checked='true'] { + color: var(--clr-primary); + font-weight: bold; + } } } @@ -234,8 +276,18 @@ button.back-btn { } .scenery-left { + border-radius: 1em; + margin-bottom: 1em; height: auto; - margin-bottom: 2em; + } + + .scenery-right { + border-radius: 1em; + height: auto; + } + + .info-actions { + flex-wrap: wrap; } }