Fixed Account pages

This commit is contained in:
2024-10-21 14:02:51 +02:00
parent 59470f5396
commit 7880a444b1
56 changed files with 208 additions and 153 deletions

View File

@@ -1,7 +1,7 @@
<script setup lang="ts">
import cardView from '@/components/basics/cardView.vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useAccountStore } from '@/stores/account.store';
import { useFeedbackStore } from '@/stores/feedbackStore';
const accountStore = useAccountStore()
const feedbackStore = useFeedbackStore()

View File

@@ -2,7 +2,7 @@
import cardView from '@/components/basics/cardView.vue';
import confirmDialog from '@/components/basics/confirmDialog.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import { ref } from 'vue';
const showConfirmDialog = ref(false)

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import cardView from '@/components/basics/cardView.vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { AddressModel } from '@/data/models/user/addressModel';
import { getNumberStartRules, getPostalRules, getStringRules } from '@/scripts/validationRules';

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import cardView from '@/components/basics/cardView.vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { PaymentModel } from '@/data/models/user/paymentModel';
import { getIbanRules, getStringRules } from '@/scripts/validationRules';

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import cardView from '@/components/basics/cardView.vue';
import { useRouter } from 'vue-router';
@@ -33,7 +33,7 @@ const router = useRouter()
<card-view
:title="$t('accountManagement')"
icon="mdi-account"
@click="router.push('/account/edit')"
@click="router.push('/account/data')"
>
{{ $t('accountManagementDescription') }}
</card-view>

View File

@@ -2,7 +2,7 @@
import { ref } from 'vue';
import cardView from '@/components/basics/cardView.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import { useRouter } from 'vue-router';
const accountStore = useAccountStore()
@@ -35,7 +35,6 @@ async function startLogin() {
if (accountStore.userAccount.id != undefined) {
router.push("/account/home")
}
// todo: Route to account home page
}
loginInProgress.value = false
@@ -43,7 +42,11 @@ async function startLogin() {
</script>
<template>
<card-view :title="$t('login')" prepend-icon="mdi-login" elevation="8">
<card-view
:title="$t('login')"
icon="mdi-login"
max-width="600"
>
<v-row>
<v-col>
<v-text-field

View File

@@ -3,8 +3,7 @@ import { AccountModel } from '@/data/models/user/accountModel';
import { ref } from 'vue';
import cardView from '@/components/basics/cardView.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useAccountStore } from '@/stores/account.store';
import { getEmailRules, getPasswordRules, getStringRules } from '@/scripts/validationRules';
const newUser = ref(new AccountModel())

View File

@@ -1,20 +1,13 @@
<script setup lang="ts">
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import orderItem from './orderItem.vue';
import { useRouter } from 'vue-router';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { getUserOrders } from '@/data/api/orderApi';
import { ref } from 'vue';
import { OrderApiModel } from '@/data/models/ordering/orderApiModel';
const accountStore = useAccountStore()
const router = useRouter()
const orders = ref<Array<OrderApiModel>>([])
getUserOrders(accountStore.userAccount.id)
.then(result => {
orders.value = result.data
})
accountStore.refreshOrders()
</script>
<template>
@@ -28,8 +21,8 @@ getUserOrders(accountStore.userAccount.id)
</v-row>
<v-row
v-if="orders.length > 0"
v-for="order in orders"
v-if="accountStore.orders.length > 0"
v-for="order in accountStore.orders"
>
<v-col>
<order-item

View File

@@ -1,7 +1,8 @@
<script setup lang="ts">
import cardView from '@/components/basics/cardView.vue';
import ticketListItem from '@/components/pageParts/ticketListItem.vue';
import { OrderApiModel } from '@/data/models/ordering/orderApiModel';
import { OrderApiModel } from '@/data/models/apiEndpoints/orderApiModel';
import moment from 'moment';
defineProps({
order: OrderApiModel,
@@ -10,18 +11,11 @@ defineProps({
default: false
}
})
function formatDateTimeString(string: string) {
let date = new Date(string)
return date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear() + ', ' +
date.getHours() + ':' + date.getMinutes()
}
</script>
<template>
<card-view
:title="$t('orderedAt') + ' ' + formatDateTimeString(order.orderedAt) + ' ' + $t('oclock')"
:title="$t('orderedAt') + ' ' + moment(order.orderedAt).format('DD.MM.YY, HH:mm') + ' ' + $t('oclock')"
variant="outlined"
>
<v-row>
@@ -53,16 +47,16 @@ function formatDateTimeString(string: string) {
<v-col>
<ticket-list-item
:concert="ticket.concert"
:event="ticket.concert.event"
:band="ticket.concert.event.band"
:event="ticket.concert.name"
:band="ticket.concert.band"
:location="ticket.concert.location"
:city="ticket.concert.location.city"
:image="ticket.concert.event.image"
/>
<!-- todo :seat-group="ticket.seat.seatRow.seatGroup.name"
:seat-row="ticket.seat.seatRow.row"
:image="ticket.concert.image"
:seat="ticket.seat.seatNr"
:standing-area="ticket.seat.seatRow.seatGroup.standingArea" -->
:seat-group="ticket.seat.seatRow.seatGroup.name"
:seat-row="ticket.seat.seatRow.row"
:standing-area="ticket.seat.seatRow.seatGroup.standingArea"
/>
</v-col>
</v-row>

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import cardWithTopImage from '@/components/basics/cardViewTopImage.vue';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useFeedbackStore } from '@/stores/feedbackStore';
import { BandApiModel } from '@/data/models/acts/bandApiModel';
const feedbackStore = useFeedbackStore()

View File

@@ -3,7 +3,7 @@ import concertListItem from '@/components/pageParts/concertListItem.vue';
import { BandApiModel } from '@/data/models/acts/bandApiModel';
import { ConcertApiModel } from '@/data/models/acts/concertApiModel';
import CardViewHorizontal from '@/components/basics/cardViewHorizontal.vue';
import { useConcertStore } from '@/data/stores/concertStore';
import { useConcertStore } from '@/stores/concertStore';
const concertStore = useConcertStore()

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import { BandModel } from '@/data/models/acts/bandModel';
import { useBandStore } from '@/data/stores/bandStore';
import { useBandStore } from '@/stores/bandStore';
const bandStore = useBandStore()

View File

@@ -6,7 +6,7 @@ import gallerySection from './gallerySection.vue';
import concertSection from './concertSection.vue';
import heroImage from '@/components/pageParts/heroImage.vue';
import sectionDivider from '@/components/basics/sectionDivider.vue';
import { useBandStore } from '@/data/stores/bandStore';
import { useBandStore } from '@/stores/bandStore';
const router = useRouter()
const bandStore = useBandStore()

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { useBandStore } from '@/data/stores/bandStore';
import { useBandStore } from '@/stores/bandStore';
import cardViewHorizontal from '@/components/basics/cardViewHorizontal.vue';
import bandListItem from '@/components/pageParts/bandListItem.vue';

View File

@@ -2,10 +2,10 @@
import seatPlanMap from '@/components/seatPlanMap/seatPlanMap.vue';
import { useRouter } from 'vue-router';
import sectionDivider from '@/components/basics/sectionDivider.vue';
import { useBasketStore } from '@/data/stores/basketStore';
import { useBasketStore } from '@/stores/basketStore';
import concertListItem from '@/components/pageParts/concertListItem.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { useConcertStore } from '@/data/stores/concertStore';
import { useConcertStore } from '@/stores/concertStore';
const router = useRouter()
const basketStore = useBasketStore()

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { useConcertStore } from '@/data/stores/concertStore';
import { useConcertStore } from '@/stores/concertStore';
import concertListItem from '@/components/pageParts/concertListItem.vue';
import cardViewHorizontal from '@/components/basics/cardViewHorizontal.vue';
import sectionDivider from '@/components/basics/sectionDivider.vue';

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import OutlinedButton from '@/components/basics/outlinedButton.vue';
import { useShoppingStore } from '@/data/stores/shoppingStore';
import { useShoppingStore } from '@/stores/shoppingStore';
import { useRouter } from 'vue-router';
const shoppingStore = useShoppingStore()

View File

@@ -5,9 +5,9 @@ import cardWithTopImage from '@/components/basics/cardViewTopImage.vue';
import { lowestTicketPrice } from '@/scripts/concertScripts';
import OutlinedButton from '@/components/basics/outlinedButton.vue';
import { useRouter } from 'vue-router';
import { useConcertStore } from '@/data/stores/concertStore';
import { useLocationStore } from '@/data/stores/locationStore';
import { useBandStore } from '@/data/stores/bandStore';
import { useConcertStore } from '@/stores/concertStore';
import { useLocationStore } from '@/stores/locationStore';
import { useBandStore } from '@/stores/bandStore';
const router = useRouter()
const concertStore = useConcertStore()

View File

@@ -4,7 +4,7 @@ import sectionDivider from '@/components/basics/sectionDivider.vue';
import seatPlanMap from '@/components/seatPlanMap/seatPlanMap.vue';
import { getLocation } from '@/data/api/locationApi';
import { ref } from 'vue';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useFeedbackStore } from '@/stores/feedbackStore';
import heroImage from '@/components/pageParts/heroImage.vue';
import concertListItem from '@/components/pageParts/concertListItem.vue';
import { LocationDetailsApiModel } from '@/data/models/locations/locationDetailsApiModel';

View File

@@ -1,9 +1,9 @@
<script setup lang="ts">
import sectionDivider from '@/components/basics/sectionDivider.vue';
import cardWithTopImage from '@/components/basics/cardViewTopImage.vue';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useFeedbackStore } from '@/stores/feedbackStore';
import locationListItem from '@/components/pageParts/locationListItem.vue';
import { useLocationStore } from '@/data/stores/locationStore';
import { useLocationStore } from '@/stores/locationStore';
const locationStore = useLocationStore()
const feedbackStore = useFeedbackStore()

View File

@@ -1,10 +1,10 @@
<script setup lang="ts">
import { useBasketStore } from '@/data/stores/basketStore';
import { useBasketStore } from '@/stores/basketStore';
import cardView from '@/components/basics/cardView.vue';
import orderingDialog from './orderingDialog.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { ref } from 'vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
import ticketsTable from './ticketsTable.vue';
const basketStore = useBasketStore()

View File

@@ -1,9 +1,9 @@
<script setup lang="ts">
import actionDialog from '@/components/basics/actionDialog.vue';
import { useBasketStore } from '@/data/stores/basketStore';
import { useBasketStore } from '@/stores/basketStore';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { ModelRef, ref } from 'vue';
import { useAccountStore } from '@/data/stores/accountStore';
import { useAccountStore } from '@/stores/account.store';
const basketStore = useBasketStore()
const accountStore = useAccountStore()

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { useBasketStore } from '@/data/stores/basketStore';
import { useBasketStore } from '@/stores/basketStore';
import { BasketItemModel } from '@/data/models/ordering/basketItemModel';
import { calcPrice } from '@/scripts/concertScripts';

View File

@@ -2,10 +2,10 @@
import { getAllExerciseGroups } from '@/data/api/exerciseApi';
import scoreCard from './scoreCard.vue';
import { ref } from 'vue';
import { ExerciseGroupModel } from '@/data/models/exercises/exerciseGroupModel';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useFeedbackStore } from '@/stores/feedbackStore';
import { ExerciseGroupApiModel } from '@/data/models/exercises/exerciseGroupApiModel';
const exerciseGroups = ref<Array<ExerciseGroupModel>>([])
const exerciseGroups = ref<Array<ExerciseGroupApiModel>>([])
const feedbackStore = useFeedbackStore()
feedbackStore.fetchDataFromServerInProgress = true

View File

@@ -1,9 +1,9 @@
<script setup lang="ts">
import cardView from '@/components/basics/cardView.vue';
import { ExerciseGroupModel } from '@/data/models/exercises/exerciseGroupModel';
import { ExerciseGroupApiModel } from '@/data/models/exercises/exerciseGroupApiModel';
defineProps({
exerciseGroup: ExerciseGroupModel,
exerciseGroup: ExerciseGroupApiModel,
loading: Boolean
})
</script>

View File

@@ -3,7 +3,7 @@ import { ThemeEnum } from '@/data/enums/themeEnums';
import { useTheme } from 'vuetify/lib/framework.mjs';
import { i18n } from '@/plugins/i18n';
import cardView from '@/components/basics/cardView.vue';
import { usePreferencesStore } from '@/data/stores/preferencesStore';
import { usePreferencesStore } from '@/stores/preferencesStore';
const preferencesStore = usePreferencesStore()
const theme = useTheme()

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import { BannerStateEnum } from '@/data/enums/bannerStateEnum';
import { useFeedbackStore } from '@/data/stores/feedbackStore';
import { useFeedbackStore } from '@/stores/feedbackStore';
import cardView from '@/components/basics/cardView.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { ref } from 'vue';

View File

@@ -5,7 +5,7 @@ import cardViewHorizontal from '@/components/basics/cardViewHorizontal.vue';
import locationListItem from '@/components/pageParts/locationListItem.vue';
import cardViewTopImage from '@/components/basics/cardViewTopImage.vue';
import bandListItem from '@/components/pageParts/bandListItem.vue';
import { useSearchStore } from '@/data/stores/searchStore';
import { useSearchStore } from '@/stores/searchStore';
const searchStore = useSearchStore()
</script>
@@ -118,7 +118,7 @@ const searchStore = useSearchStore()
</v-col>
</v-row>
<v-row
<!-- <v-row
v-else-if="searchStore.events.length > 0"
v-for="event in searchStore.events"
>
@@ -130,7 +130,7 @@ const searchStore = useSearchStore()
:loading="searchStore.searchInProgress"
/>
</v-col>
</v-row>
</v-row> -->
<v-row v-else >
<v-col>

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import cardView from '@/components/basics/cardView.vue';
import { useSearchStore } from '@/data/stores/searchStore';
import { useSearchStore } from '@/stores/searchStore';
const searchStore = useSearchStore()
</script>