From a6ca7eeddec828c8122a2c941c910c2da1da16e8 Mon Sep 17 00:00:00 2001 From: Tobias Zoghaib Date: Sun, 29 Sep 2024 14:28:29 +0200 Subject: [PATCH] Filterable tours --- software/backend/models/acts/tour.model.ts | 2 +- software/src/App.vue | 18 +++- .../navigation/navigationPrependItems.vue | 2 +- .../src/data/models/{ => acts}/bandModel.ts | 11 +-- .../src/data/models/{ => acts}/cityModel.ts | 0 .../data/models/{ => acts}/concertModel.ts | 0 .../src/data/models/{ => acts}/genreModel.ts | 5 -- .../data/models/{ => acts}/locationModel.ts | 1 - .../src/data/models/{ => acts}/ratingModel.ts | 0 .../src/data/models/{ => acts}/tourModel.ts | 2 +- software/src/data/models/memberModel.ts | 7 -- .../models/{ => ordering}/basketItemModel.ts | 2 +- .../models/{ => ordering}/orderItemModel.ts | 2 +- .../data/models/{ => ordering}/orderModel.ts | 4 +- .../data/models/{ => user}/accountModel.ts | 0 .../src/data/models/{ => user}/accountRole.ts | 0 .../data/models/{ => user}/addressModel.ts | 0 .../data/models/{ => user}/paymentModel.ts | 0 software/src/data/stores/accountStore.ts | 8 +- software/src/data/stores/basketStore.ts | 8 +- software/src/data/stores/concertStore.ts | 77 ++++++++++++++-- software/src/locales/de.json | 13 +-- software/src/locales/en.json | 14 +-- .../account/accountDataPage/addressesCard.vue | 2 +- .../account/accountDataPage/paymentsCard.vue | 2 +- .../pages/account/loginPage/registerForm.vue | 2 +- .../pages/account/ordersPage/ordersCard.vue | 2 +- .../index.vue | 2 +- .../shows/ticketsPage/filterNavDrawer.vue | 2 - .../src/pages/shows/ticketsPage/index.vue | 6 +- .../ticketsPage/productDetailsDialog.vue | 44 +++++----- .../src/pages/shows/ticketsPage/tourCard.vue | 19 ++-- .../src/pages/shows/toursPage/filterBar.vue | 87 +++++++++++++++++++ .../{concertsPage => toursPage}/index.vue | 23 ++++- software/src/router/show.routes.ts | 4 +- software/src/scripts/concertScripts.ts | 8 +- 36 files changed, 265 insertions(+), 114 deletions(-) rename software/src/data/models/{ => acts}/bandModel.ts (65%) rename software/src/data/models/{ => acts}/cityModel.ts (100%) rename software/src/data/models/{ => acts}/concertModel.ts (100%) rename software/src/data/models/{ => acts}/genreModel.ts (59%) rename software/src/data/models/{ => acts}/locationModel.ts (90%) rename software/src/data/models/{ => acts}/ratingModel.ts (100%) rename software/src/data/models/{ => acts}/tourModel.ts (85%) delete mode 100644 software/src/data/models/memberModel.ts rename software/src/data/models/{ => ordering}/basketItemModel.ts (82%) rename software/src/data/models/{ => ordering}/orderItemModel.ts (70%) rename software/src/data/models/{ => ordering}/orderModel.ts (69%) rename software/src/data/models/{ => user}/accountModel.ts (100%) rename software/src/data/models/{ => user}/accountRole.ts (100%) rename software/src/data/models/{ => user}/addressModel.ts (100%) rename software/src/data/models/{ => user}/paymentModel.ts (100%) rename software/src/pages/shows/{tourDetailPage => bandDetailPage}/index.vue (80%) create mode 100644 software/src/pages/shows/toursPage/filterBar.vue rename software/src/pages/shows/{concertsPage => toursPage}/index.vue (63%) diff --git a/software/backend/models/acts/tour.model.ts b/software/backend/models/acts/tour.model.ts index c59d90c..e1eec93 100644 --- a/software/backend/models/acts/tour.model.ts +++ b/software/backend/models/acts/tour.model.ts @@ -23,5 +23,5 @@ export class Tour extends Model { band: Band @HasMany(() => Concert) - shows: Concert[] + concerts: Concert[] } \ No newline at end of file diff --git a/software/src/App.vue b/software/src/App.vue index 3577c3d..6f26b62 100644 --- a/software/src/App.vue +++ b/software/src/App.vue @@ -7,6 +7,7 @@ import navigationPrependItems from './components/navigation/navigationPrependIte import { usePreferencesStore } from './data/stores/preferencesStore'; import { useFeedbackStore } from './data/stores/feedbackStore'; import { useConcertStore } from './data/stores/concertStore'; +import { LocationModel } from './data/models/acts/locationModel'; const preferencesStore = usePreferencesStore() const concertStore = useConcertStore() @@ -22,6 +23,19 @@ concertStore.fetchAllTours() watch(() => preferencesStore.language, () => { i18n.global.locale = preferencesStore.language }, { immediate: true }) + +watch(() => concertStore.cityFilter, () => { + concertStore.locationFilter = new LocationModel() + concertStore.filterTours() +}) + +watch(() => concertStore.locationFilter, () => { + concertStore.filterTours() +}) + +watch(() => concertStore.genreFilter, () => { + concertStore.filterTours() +}) --> - +