Restructure translation files
This commit is contained in:
@@ -11,14 +11,14 @@ const passwordRules = [
|
||||
if (value) {
|
||||
return true
|
||||
} else {
|
||||
return feedbackStore.i18n.t('required')
|
||||
return feedbackStore.i18n.t('misc.validation.required')
|
||||
}
|
||||
},
|
||||
value => {
|
||||
if (value?.length >= 8) {
|
||||
return true
|
||||
} else {
|
||||
return feedbackStore.i18n.t('passwordToShort')
|
||||
return feedbackStore.i18n.t('misc.validation.notEnoughChars')
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -28,21 +28,21 @@ const stringRules = [
|
||||
if (value) {
|
||||
return true
|
||||
} else {
|
||||
return feedbackStore.i18n.t('required')
|
||||
return feedbackStore.i18n.t('misc.validation.required')
|
||||
}
|
||||
},
|
||||
value => {
|
||||
if (/[^0-9]/.test(value)) {
|
||||
return true
|
||||
} else {
|
||||
return feedbackStore.i18n.t('noDigitsAllowed')
|
||||
return feedbackStore.i18n.t('misc.validation.noDigitsAllowed')
|
||||
}
|
||||
},
|
||||
value => {
|
||||
if (value?.length >= 3) {
|
||||
return true
|
||||
} else {
|
||||
return feedbackStore.i18n.t('notEnoughChars')
|
||||
return feedbackStore.i18n.t('misc.validation.notEnoughChars')
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -56,7 +56,7 @@ const stringRules = [
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.email')"
|
||||
:label="$t('account.userData.email')"
|
||||
v-model="accountStore.userAccount.email"
|
||||
disabled
|
||||
/>
|
||||
@@ -65,14 +65,14 @@ const stringRules = [
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.username')"
|
||||
:label="$t('account.userData.username')"
|
||||
v-model="accountStore.userAccount.username"
|
||||
disabled
|
||||
/>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.password')"
|
||||
:label="$t('account.userData.password')"
|
||||
v-model="accountStore.userAccount.password"
|
||||
type="password"
|
||||
:rules="passwordRules"
|
||||
@@ -83,14 +83,14 @@ const stringRules = [
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.firstName')"
|
||||
:label="$t('account.userData.firstName')"
|
||||
v-model="accountStore.userAccount.firstName"
|
||||
:rules="stringRules"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.lastName')"
|
||||
:label="$t('account.userData.lastName')"
|
||||
v-model="accountStore.userAccount.lastName"
|
||||
:rules="stringRules"
|
||||
/>
|
||||
|
||||
@@ -11,7 +11,7 @@ const accountStore = useAccountStore()
|
||||
|
||||
<template>
|
||||
<card-view
|
||||
:title="$t('account.managingAccount')"
|
||||
:title="$t('account.accountManagement')"
|
||||
icon="mdi-account-edit"
|
||||
>
|
||||
<v-row>
|
||||
@@ -22,7 +22,7 @@ const accountStore = useAccountStore()
|
||||
:loading="accountStore.fetchInProgress"
|
||||
@click="showConfirmDialog = true"
|
||||
>
|
||||
{{ $t("account.delete") }}
|
||||
{{ $t("account.deleteAccount.deleteAccount") }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
|
||||
@@ -33,7 +33,7 @@ const accountStore = useAccountStore()
|
||||
:loading="accountStore.fetchInProgress"
|
||||
@click="accountStore.updateAccount()"
|
||||
>
|
||||
{{ $t("save") }}
|
||||
{{ $t("misc.actions.save") }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -41,8 +41,8 @@ const accountStore = useAccountStore()
|
||||
|
||||
<confirm-dialog
|
||||
v-model="showConfirmDialog"
|
||||
:title="$t('dialog.deleteAccount.title')"
|
||||
:description="$t('dialog.deleteAccount.description')"
|
||||
:title="$t('account.deleteAccount.dialog.title')"
|
||||
:description="$t('account.deleteAccount.dialog.description')"
|
||||
/>
|
||||
<!-- todo :onConfirm="deleteAccount" -->
|
||||
</template>
|
||||
@@ -11,7 +11,7 @@ const accountStore = useAccountStore()
|
||||
<template>
|
||||
<card-view
|
||||
icon="mdi-home"
|
||||
:title="$t('account.address')"
|
||||
:title="$t('account.userData.address')"
|
||||
>
|
||||
<v-expansion-panels v-if="accountStore.userAccount.addresses.length > 0">
|
||||
<v-expansion-panel
|
||||
@@ -26,7 +26,7 @@ const accountStore = useAccountStore()
|
||||
<v-row class="pt-5">
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.street')"
|
||||
:label="$t('account.userData.street')"
|
||||
v-model="address.street"
|
||||
:rules="getStringRules()"
|
||||
clearable
|
||||
@@ -34,7 +34,7 @@ const accountStore = useAccountStore()
|
||||
</v-col>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.houseNumber')"
|
||||
:label="$t('account.userData.houseNumber')"
|
||||
v-model="address.houseNumber"
|
||||
:rules="getNumberStartRules()"
|
||||
clearable
|
||||
@@ -45,7 +45,7 @@ const accountStore = useAccountStore()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.postalCode')"
|
||||
:label="$t('account.userData.postalCode')"
|
||||
v-model="address.postalCode"
|
||||
:rules="getPostalRules()"
|
||||
clearable
|
||||
@@ -53,7 +53,7 @@ const accountStore = useAccountStore()
|
||||
</v-col>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.city')"
|
||||
:label="$t('account.userData.placeOfResidence')"
|
||||
v-model="address.city"
|
||||
:rules="getStringRules()"
|
||||
clearable
|
||||
@@ -68,7 +68,7 @@ const accountStore = useAccountStore()
|
||||
color="red"
|
||||
prepend-icon="mdi-delete"
|
||||
>
|
||||
{{ $t('remove') }}
|
||||
{{ $t('misc.actions.remove') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -88,7 +88,7 @@ const accountStore = useAccountStore()
|
||||
prepend-icon="mdi-plus"
|
||||
color="green"
|
||||
>
|
||||
{{ $t('add') }}
|
||||
{{ $t('misc.actions.add') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
|
||||
@@ -14,7 +14,7 @@ const router = useRouter()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
|
||||
{{ $t('onePageBack') }}
|
||||
{{ $t('misc.onePageBack') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -12,7 +12,7 @@ const accountStore = useAccountStore()
|
||||
<template>
|
||||
<card-view
|
||||
icon="mdi-currency-usd"
|
||||
:title="$t('account.payment')"
|
||||
:title="$t('account.userData.payment')"
|
||||
>
|
||||
<v-expansion-panels
|
||||
v-if="accountStore.userAccount.payments.length > 0"
|
||||
@@ -28,14 +28,14 @@ const accountStore = useAccountStore()
|
||||
<v-row class="pt-5">
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.bankName')"
|
||||
:label="$t('account.userData.bankName')"
|
||||
v-model="payment.bankName"
|
||||
:rules="getStringRules()"
|
||||
/>
|
||||
</v-col>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('userInfo.iban')"
|
||||
:label="$t('account.userData.iban')"
|
||||
v-model="payment.iban"
|
||||
:rules="getIbanRules()"
|
||||
/>
|
||||
@@ -49,7 +49,7 @@ const accountStore = useAccountStore()
|
||||
color="red"
|
||||
prepend-icon="mdi-delete"
|
||||
>
|
||||
{{ $t('remove') }}
|
||||
{{ $t('misc.actions.remove') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -69,7 +69,7 @@ const accountStore = useAccountStore()
|
||||
prepend-icon="mdi-plus"
|
||||
color="green"
|
||||
>
|
||||
{{ $t('add') }}
|
||||
{{ $t('misc.actions.add') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
|
||||
@@ -12,18 +12,18 @@ const router = useRouter()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('hello') + ' ' + accountStore.userAccount.firstName + ' ' + accountStore.userAccount.lastName"
|
||||
:title="$t('misc.greeting', { msg: accountStore.userAccount.username })"
|
||||
icon="mdi-hand-wave"
|
||||
>
|
||||
<v-container>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('orders', 2)"
|
||||
:title="$t('order.orders', 2)"
|
||||
icon="mdi-basket-check"
|
||||
@click="router.push('/account/orders')"
|
||||
>
|
||||
{{ $t('ordersDescription') }}
|
||||
{{ $t('order.ordersDescription') }}
|
||||
</card-view>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -31,11 +31,11 @@ const router = useRouter()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('accountManagement')"
|
||||
:title="$t('account.accountManagement')"
|
||||
icon="mdi-account"
|
||||
@click="router.push('/account/data')"
|
||||
>
|
||||
{{ $t('accountManagementDescription') }}
|
||||
{{ $t('account.accountManagementDescription') }}
|
||||
</card-view>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -43,11 +43,11 @@ const router = useRouter()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('logout')"
|
||||
:title="$t('account.logout.logout')"
|
||||
icon="mdi-logout"
|
||||
@click="accountStore.logout(); router.push('/account/login')"
|
||||
>
|
||||
{{ $t('logoutDescription') }}
|
||||
{{ $t('account.logout.logoutDescription') }}
|
||||
</card-view>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -20,14 +20,14 @@ async function startLogin() {
|
||||
|
||||
<template>
|
||||
<card-view
|
||||
:title="$t('login')"
|
||||
:title="$t('account.login.login')"
|
||||
icon="mdi-login"
|
||||
max-width="600"
|
||||
>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.username')"
|
||||
:label="$t('account.userData.username')"
|
||||
prepend-icon="mdi-account"
|
||||
v-model="accountStore.loginData.username"
|
||||
clearable
|
||||
@@ -38,7 +38,7 @@ async function startLogin() {
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.password')"
|
||||
:label="$t('account.userData.password')"
|
||||
prepend-icon="mdi-key"
|
||||
type="password"
|
||||
v-model="accountStore.loginData.password"
|
||||
@@ -53,7 +53,7 @@ async function startLogin() {
|
||||
prepend-icon="mdi-plus"
|
||||
:loading="accountStore.fetchInProgress"
|
||||
>
|
||||
{{ $t('account.noAccountRegister') }}
|
||||
{{ $t('account.register') }}
|
||||
</outlined-button>
|
||||
|
||||
<outlined-button
|
||||
@@ -61,7 +61,7 @@ async function startLogin() {
|
||||
@click="startLogin"
|
||||
:loading="accountStore.fetchInProgress"
|
||||
>
|
||||
{{ $t('login') }}
|
||||
{{ $t('account.login.login') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
|
||||
@@ -27,7 +27,7 @@ async function registerAccount() {
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.username')"
|
||||
:label="$t('account.userData.username')"
|
||||
prepend-icon="mdi-account"
|
||||
v-model="accountStore.registerData.username"
|
||||
clearable
|
||||
@@ -39,7 +39,7 @@ async function registerAccount() {
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.password')"
|
||||
:label="$t('account.userData.password')"
|
||||
prepend-icon="mdi-key"
|
||||
type="password"
|
||||
v-model="accountStore.registerData.password"
|
||||
@@ -52,7 +52,7 @@ async function registerAccount() {
|
||||
<v-row>
|
||||
<v-col>
|
||||
<v-text-field
|
||||
:label="$t('account.email')"
|
||||
:label="$t('account.userData.email')"
|
||||
prepend-icon="mdi-mail"
|
||||
v-model="accountStore.registerData.email"
|
||||
:rules="getEmailRules()"
|
||||
@@ -67,7 +67,7 @@ async function registerAccount() {
|
||||
@click="showRegisterCard = false"
|
||||
:disabled="accountStore.fetchInProgress"
|
||||
>
|
||||
{{ $t('account.backToLogin') }}
|
||||
{{ $t('account.login.backToLogin') }}
|
||||
</outlined-button>
|
||||
|
||||
<outlined-button
|
||||
|
||||
@@ -15,7 +15,7 @@ accountStore.refreshOrders()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<outlined-button prepend-icon="mdi-arrow-left" @click="router.back()" >
|
||||
{{ $t('onePageBack') }}
|
||||
{{ $t('misc.onePageBack') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -35,8 +35,8 @@ accountStore.refreshOrders()
|
||||
<v-col>
|
||||
<v-empty-state
|
||||
icon="mdi-basket-off"
|
||||
:title="$t('noOrders')"
|
||||
:text="$t('noOrdersText')"
|
||||
:title="$t('order.noOrders')"
|
||||
:text="$t('order.noOrdersText')"
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -15,7 +15,7 @@ defineProps({
|
||||
|
||||
<template>
|
||||
<card-view
|
||||
:title="$t('orderedAt') + ' ' + moment(order.orderedAt).format('DD.MM.YY, HH:mm') + ' ' + $t('oclock')"
|
||||
:title="$t('order.orderedAt') + ' ' + moment(order.orderedAt).format('DD.MM.YY, HH:mm') + ' ' + $t('order.oclock')"
|
||||
variant="outlined"
|
||||
>
|
||||
<v-row>
|
||||
@@ -23,7 +23,7 @@ defineProps({
|
||||
<v-card variant="outlined" class="ml-5 pa-3">
|
||||
<div class="text-h6">
|
||||
<v-icon icon="mdi-home" />
|
||||
{{ $t('account.address', 1) }}
|
||||
{{ $t('account.userData.address', 1) }}
|
||||
</div>
|
||||
|
||||
<div class="pl-9">{{ order.address.street }} {{ order.address.houseNumber }}</div>
|
||||
@@ -35,7 +35,7 @@ defineProps({
|
||||
<v-card variant="outlined" class="mr-5 pa-3">
|
||||
<div class="text-h6">
|
||||
<v-icon icon="mdi-currency-usd" />
|
||||
{{ $t('account.payment', 1) }}
|
||||
{{ $t('account.userData.payment', 1) }}
|
||||
</div>
|
||||
<div class="pl-9">{{ order.payment.bankName }}</div>
|
||||
<div class="pl-9">{{ order.payment.iban }}</div>
|
||||
|
||||
@@ -34,18 +34,18 @@ concertStore.getConcerts()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('band', 2)"
|
||||
:title="$t('band.band', 2)"
|
||||
icon="mdi-guitar-electric"
|
||||
>
|
||||
<div class="text-h4 text-center">
|
||||
{{ bandStore.bands.length }} {{ $t('band', 2) }}
|
||||
{{ bandStore.bands.length }} {{ $t('band.band', 2) }}
|
||||
</div>
|
||||
|
||||
<template #actions>
|
||||
<outlined-button
|
||||
@click="router.push('/admin/bands')"
|
||||
>
|
||||
{{ $t('more') }}
|
||||
{{ $t('misc.actions.more') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
@@ -53,22 +53,22 @@ concertStore.getConcerts()
|
||||
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('concert', 2)"
|
||||
:title="$t('concert.concert', 2)"
|
||||
icon="mdi-ticket"
|
||||
>
|
||||
<div class="text-h4 text-center">
|
||||
{{ concertStore.concerts.length }} {{ $t('concert', 2) }}
|
||||
{{ concertStore.concerts.length }} {{ $t('concert.concert', 2) }}
|
||||
</div>
|
||||
|
||||
<div class="text-disabled text-center">
|
||||
{{ soldOutConcerts }} {{ $t('soldOut') }}
|
||||
{{ soldOutConcerts }} {{ $t('concert.concertSoldOut') }}
|
||||
</div>
|
||||
|
||||
<template #actions>
|
||||
<outlined-button
|
||||
@click="router.push('/admin/concerts')"
|
||||
>
|
||||
{{ $t('more') }}
|
||||
{{ $t('misc.actions.more') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
@@ -77,18 +77,18 @@ concertStore.getConcerts()
|
||||
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('location', 2)"
|
||||
:title="$t('location.location', 2)"
|
||||
icon="mdi-city"
|
||||
>
|
||||
<div class="text-h4 text-center">
|
||||
{{ locationStore.locations.length }} {{ $t('location', 2) }}
|
||||
{{ locationStore.locations.length }} {{ $t('location.location', 2) }}
|
||||
</div>
|
||||
|
||||
<template #actions>
|
||||
<outlined-button
|
||||
@click="router.push('/admin/locations')"
|
||||
>
|
||||
{{ $t('more') }}
|
||||
{{ $t('misc.actions.more') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
@@ -100,7 +100,7 @@ concertStore.getConcerts()
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('account', 2)"
|
||||
:title="$t('account.account', 2)"
|
||||
icon="mdi-account"
|
||||
>
|
||||
</card-view>
|
||||
@@ -108,37 +108,18 @@ concertStore.getConcerts()
|
||||
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('category', 2)"
|
||||
:title="$t('band.genre', 2)"
|
||||
icon="mdi-account"
|
||||
>
|
||||
<div class="text-h4 text-center">
|
||||
{{ bandStore.availableGenres.length }} {{ $t('genres', 2) }}
|
||||
{{ bandStore.availableGenres.length }} {{ $t('band.genre', 2) }}
|
||||
</div>
|
||||
|
||||
<template #actions>
|
||||
<outlined-button
|
||||
@click="router.push('/admin/genres')"
|
||||
>
|
||||
{{ $t('more') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
</v-col>
|
||||
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('genres', 2)"
|
||||
icon="mdi-guitar-electric"
|
||||
>
|
||||
<div class="text-h4 text-center">
|
||||
{{ bandStore.availableGenres.length }} {{ $t('genres', 2) }}
|
||||
</div>
|
||||
|
||||
<template #actions>
|
||||
<outlined-button
|
||||
@click="router.push('/admin/genres')"
|
||||
>
|
||||
{{ $t('more') }}
|
||||
{{ $t('misc.actions.more') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
|
||||
@@ -31,7 +31,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
|
||||
<v-col cols="10">
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('concert', 2)" />
|
||||
<section-divider :title="$t('concert.concert', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -42,7 +42,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
|
||||
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('bandMember')" />
|
||||
<section-divider :title="$t('band.bandMember')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -53,7 +53,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
|
||||
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('rating', 2)" />
|
||||
<section-divider :title="$t('band.rating', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -65,7 +65,7 @@ bandStore.getBand(String(router.currentRoute.value.params.name).replaceAll('-',
|
||||
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('image', 2)" />
|
||||
<section-divider :title="$t('band.image', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ defineProps({
|
||||
readonly
|
||||
/>
|
||||
|
||||
<div class="px-3 text-h6">{{ ratings.length }} {{ $t('rating', ratings.length) }}</div>
|
||||
<div class="px-3 text-h6">{{ ratings.length }} {{ $t('band.rating', ratings.length) }}</div>
|
||||
</div>
|
||||
</v-col>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ function itemProps(item: GenreModel) {
|
||||
|
||||
<template>
|
||||
<card-view
|
||||
:title="$t('filtering')"
|
||||
:title="$t('misc.actions.filtering')"
|
||||
icon="mdi-filter"
|
||||
>
|
||||
<v-row>
|
||||
@@ -24,7 +24,7 @@ function itemProps(item: GenreModel) {
|
||||
v-model="bandStore.filteredGenres"
|
||||
:items="bandStore.availableGenres"
|
||||
variant="outlined"
|
||||
:label="$t('genres')"
|
||||
:label="$t('band.genre', 2)"
|
||||
:item-props="itemProps"
|
||||
chips
|
||||
clearable
|
||||
@@ -38,7 +38,7 @@ function itemProps(item: GenreModel) {
|
||||
@click="bandStore.getBands"
|
||||
height="100%"
|
||||
>
|
||||
{{ $t('filtering') }}
|
||||
{{ $t('misc.actions.filtering') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -23,7 +23,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
|
||||
<v-col cols="10">
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('selectedConcert')" />
|
||||
<section-divider :title="$t('concert.selectedConcert')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -47,7 +47,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('seatSelection')" />
|
||||
<section-divider :title="$t('location.seat.seatSelection')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -61,7 +61,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
|
||||
/>
|
||||
|
||||
<div class="pt-5 text-h3">
|
||||
{{ $t('loading') }}...
|
||||
{{ $t('misc.loading') }}...
|
||||
</div>
|
||||
</v-col>
|
||||
|
||||
@@ -77,7 +77,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
|
||||
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('orderSummary')" />
|
||||
<section-divider :title="$t('order.orderSummary')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -108,7 +108,7 @@ concertStore.getConcert(Number(router.currentRoute.value.params.id))
|
||||
:disabled="basketStore.selectedSeats.length == 0"
|
||||
block
|
||||
>
|
||||
{{ $t('addToBasket') }}
|
||||
{{ $t('basket.addToBasket') }}
|
||||
</outlined-button>
|
||||
</v-row>
|
||||
</v-col>
|
||||
|
||||
@@ -20,7 +20,7 @@ function itemProps(item: CityModel) {
|
||||
|
||||
<template>
|
||||
<card-view
|
||||
:title="$t('filtering')"
|
||||
:title="$t('misc.actions.filtering')"
|
||||
icon="mdi-filter"
|
||||
>
|
||||
<v-row>
|
||||
@@ -29,7 +29,7 @@ function itemProps(item: CityModel) {
|
||||
v-model="concertStore.filteredCities"
|
||||
:items="locationStore.cities"
|
||||
variant="outlined"
|
||||
:label="$t('city', 2)"
|
||||
:label="$t('location.city', 2)"
|
||||
:item-props="itemProps"
|
||||
chips
|
||||
clearable
|
||||
@@ -43,7 +43,7 @@ function itemProps(item: CityModel) {
|
||||
@click="concertStore.getConcerts"
|
||||
height="100%"
|
||||
>
|
||||
{{ $t('filtering') }}
|
||||
{{ $t('misc.actions.filtering') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -57,7 +57,7 @@ bandStore.getBands()
|
||||
color="primary"
|
||||
@click="router.push('bands/details/' + band.name.replaceAll(' ', '-').toLowerCase())"
|
||||
>
|
||||
{{ $t('tickets', 2) }}
|
||||
{{ $t('ticket.tickets', 2) }}
|
||||
</outlined-button>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
|
||||
@@ -25,7 +25,7 @@ locationStore.getTopLocations()
|
||||
<v-col cols="10">
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('upcomingConcerts')" />
|
||||
<section-divider :title="$t('concert.upcomingConcerts')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -38,7 +38,7 @@ locationStore.getTopLocations()
|
||||
@click="router.push('/bands/details/' + concert.band.name.replaceAll(' ', '-').toLowerCase())"
|
||||
:loading="concertStore.fetchInProgress"
|
||||
>
|
||||
{{ $t("from") }} {{ (concert.price).toPrecision(4) }} €
|
||||
{{ $t("misc.from") }} {{ (concert.price).toPrecision(4) }} €
|
||||
<!-- ab € todo -->
|
||||
</card-with-top-image>
|
||||
</v-col>
|
||||
@@ -51,14 +51,14 @@ locationStore.getTopLocations()
|
||||
@click="router.push('/concerts')"
|
||||
block
|
||||
>
|
||||
{{ $t('allConcerts') }}
|
||||
{{ $t('concert.allConcerts') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('topLocations')" />
|
||||
<section-divider :title="$t('location.topLocations')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -83,7 +83,7 @@ locationStore.getTopLocations()
|
||||
@click="router.push('/locations')"
|
||||
block
|
||||
>
|
||||
{{ $t('allLocations') }}
|
||||
{{ $t('location.allLocations') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -36,7 +36,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
|
||||
<v-col cols="10">
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('concert', 2)" />
|
||||
<section-divider :title="$t('concert.concert', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -68,7 +68,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
|
||||
<v-col>
|
||||
<v-empty-state
|
||||
icon="mdi-magnify"
|
||||
:title="$t('noEventsFound')"
|
||||
:title="$t('concert.noConcertsFound')"
|
||||
/>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -76,7 +76,7 @@ locationStore.getLocationByName(String(router.currentRoute.value.params.name))
|
||||
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('seatPlan')" />
|
||||
<section-divider :title="$t('location.seat.seatPlan')" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
|
||||
@@ -14,10 +14,20 @@ const showOrderingDialog = ref()
|
||||
|
||||
<template>
|
||||
<v-container max-width="1000">
|
||||
<v-row v-if="accountStore.userAccount.id == null">
|
||||
<v-col>
|
||||
<v-alert
|
||||
color="info"
|
||||
closable
|
||||
>
|
||||
{{ $t('account.login.pleaseLoginToOrder') }}
|
||||
</v-alert>
|
||||
</v-col>
|
||||
</v-row>
|
||||
<v-row>
|
||||
<v-col>
|
||||
<card-view
|
||||
:title="$t('basket')"
|
||||
:title="$t('basket.basket')"
|
||||
v-model="showOrderingDialog"
|
||||
icon="mdi-cart"
|
||||
>
|
||||
@@ -28,13 +38,13 @@ const showOrderingDialog = ref()
|
||||
<!-- Display empty state if card is empty -->
|
||||
<v-empty-state v-else
|
||||
icon="mdi-basket-off"
|
||||
:title="$t('emptyBasketTitle')"
|
||||
:text="$t('emptyBasketText')"
|
||||
:title="$t('basket.emptyBasketTitle')"
|
||||
:text="$t('basket.emptyBasketText')"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<v-card-text class="text-right text-h5" v-if="basketStore.itemsInBasket.length > 0">
|
||||
{{ $t('totalPrice') }}: {{ (basketStore.getTotalPrice).toFixed(2) }} €
|
||||
{{ $t('misc.totalPrice') }}: {{ (basketStore.getTotalPrice).toFixed(2) }} €
|
||||
</v-card-text>
|
||||
|
||||
|
||||
@@ -46,7 +56,7 @@ const showOrderingDialog = ref()
|
||||
color="green"
|
||||
@click="showOrderingDialog = true"
|
||||
>
|
||||
{{ $t('orderNow') }}
|
||||
{{ $t('order.takeOrder') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</card-view>
|
||||
|
||||
@@ -36,7 +36,7 @@ async function doOrder() {
|
||||
|
||||
<template>
|
||||
<action-dialog
|
||||
:title="$t('ordering.ordering')"
|
||||
:title="$t('order.ordering')"
|
||||
icon="mdi-basket-check"
|
||||
v-model="showDialog"
|
||||
max-width="800"
|
||||
@@ -44,7 +44,7 @@ async function doOrder() {
|
||||
>
|
||||
<v-list class="pa-0">
|
||||
<v-list-subheader>
|
||||
{{ $t('account.address', accountStore.userAccount.addresses.length) }}
|
||||
{{ $t('account.userData.address', accountStore.userAccount.addresses.length) }}
|
||||
</v-list-subheader>
|
||||
|
||||
<v-list-item>
|
||||
@@ -62,7 +62,7 @@ async function doOrder() {
|
||||
</v-list-item>
|
||||
|
||||
<v-list-subheader>
|
||||
{{ $t('account.payment', accountStore.userAccount.payments.length) }}
|
||||
{{ $t('account.userData.payment', accountStore.userAccount.payments.length) }}
|
||||
</v-list-subheader>
|
||||
|
||||
<v-list-item>
|
||||
@@ -86,7 +86,7 @@ async function doOrder() {
|
||||
color="orange"
|
||||
:disabled="orderingInProgress"
|
||||
>
|
||||
{{ $t('dialog.cancel') }}
|
||||
{{ $t('misc.actions.cancel') }}
|
||||
</outlined-button>
|
||||
|
||||
<outlined-button
|
||||
@@ -95,7 +95,7 @@ async function doOrder() {
|
||||
prepend-icon="mdi-send"
|
||||
color="green"
|
||||
>
|
||||
{{ $t('ordering.takeOrder') }}
|
||||
{{ $t('order.takeOrder') }}
|
||||
</outlined-button>
|
||||
</template>
|
||||
</action-dialog>
|
||||
|
||||
@@ -14,11 +14,11 @@ function removeFromBasket(basketItem: BasketItemModel) {
|
||||
<v-table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ $t('band') }}</th>
|
||||
<th>{{ $t('concert') }}</th>
|
||||
<th class="text-center">{{ $t('quantity') }}</th>
|
||||
<th class="text-right">{{ $t('product.productPrice') }}</th>
|
||||
<th class="text-right">{{ $t('totalPrice') }}</th>
|
||||
<th>{{ $t('band.band') }}</th>
|
||||
<th>{{ $t('concert.concert') }}</th>
|
||||
<th class="text-center">{{ $t('misc.quantity') }}</th>
|
||||
<th class="text-right">{{ $t('misc.price') }}</th>
|
||||
<th class="text-right">{{ $t('misc.totalPrice') }}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -37,50 +37,52 @@ defineProps({
|
||||
</v-timeline>
|
||||
</card-view>
|
||||
|
||||
|
||||
<!-- todo: English -->
|
||||
<card-view
|
||||
v-else
|
||||
:title="$t('exerciseGroup') + ' ' + exerciseGroup.groupNr + ': ' + exerciseGroup.nameDe"
|
||||
:title="$t('help.scoreBoard.exerciseGroupNr', [exerciseGroup.groupNr]) + exerciseGroup.nameDe"
|
||||
:loading="loading"
|
||||
>
|
||||
<v-timeline
|
||||
direction="horizontal"
|
||||
side="start"
|
||||
class="pb-3"
|
||||
>
|
||||
<v-timeline-item
|
||||
v-for="exercise in exerciseGroup.exercises"
|
||||
:dot-color="exercise.solved ? 'green' : 'grey'"
|
||||
:icon="exercise.solved ? 'mdi-check' : 'mdi-pencil'"
|
||||
<template #borderless>
|
||||
<v-timeline
|
||||
direction="horizontal"
|
||||
side="start"
|
||||
class="pt-3"
|
||||
>
|
||||
<v-skeleton-loader
|
||||
type="text"
|
||||
:loading="loading"
|
||||
<v-timeline-item
|
||||
v-for="exercise in exerciseGroup.exercises"
|
||||
:dot-color="exercise.solved ? 'green' : 'grey'"
|
||||
:icon="exercise.solved ? 'mdi-check' : 'mdi-pencil'"
|
||||
>
|
||||
<div class="text-h6">
|
||||
{{ $t('exercise') }} {{ exercise.exerciseNr }}
|
||||
</div>
|
||||
</v-skeleton-loader>
|
||||
|
||||
|
||||
<template #opposite>
|
||||
<v-skeleton-loader
|
||||
type="text"
|
||||
:loading="loading"
|
||||
>
|
||||
<div class="text-center">
|
||||
type="text"
|
||||
:loading="loading"
|
||||
>
|
||||
<div class="text-h6">
|
||||
{{ exercise.nameDe }}
|
||||
{{ $t('help.scoreBoard.exerciseNr', [exercise.exerciseNr]) }}
|
||||
</div>
|
||||
</v-skeleton-loader>
|
||||
|
||||
|
||||
<div>
|
||||
{{ exercise.descriptionDe }}
|
||||
<template #opposite>
|
||||
<v-skeleton-loader
|
||||
type="text"
|
||||
:loading="loading"
|
||||
>
|
||||
<div class="text-center">
|
||||
<div class="text-h6">
|
||||
{{ exercise.nameDe }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<!-- todo: English -->
|
||||
{{ exercise.descriptionDe }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</v-skeleton-loader>
|
||||
</template>
|
||||
|
||||
</v-timeline-item>
|
||||
</v-timeline>
|
||||
</v-skeleton-loader>
|
||||
</template>
|
||||
</v-timeline-item>
|
||||
</v-timeline>
|
||||
</template>
|
||||
</card-view>
|
||||
</template>
|
||||
@@ -63,7 +63,7 @@ async function resetExerciseProg() {
|
||||
>
|
||||
<v-row>
|
||||
<v-col>
|
||||
{{ $t('serverState') }}:
|
||||
{{ $t('preferences.serverState') }}:
|
||||
<span v-if="serverOnline == ServerStateEnum.ONLINE" class="text-green">
|
||||
<v-icon icon="mdi-check" />
|
||||
Online
|
||||
@@ -95,7 +95,7 @@ async function resetExerciseProg() {
|
||||
color="red"
|
||||
:disabled="serverOnline != ServerStateEnum.ONLINE"
|
||||
>
|
||||
{{ $t('resetDatabase') }}
|
||||
{{ $t('preferences.resetDatabase.resetDatabase') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -108,7 +108,7 @@ async function resetExerciseProg() {
|
||||
color="red"
|
||||
:disabled="serverOnline != ServerStateEnum.ONLINE"
|
||||
>
|
||||
{{ $t('resetProgress') }}
|
||||
{{ $t('preferences.resetExerciseProgress.resetExerciseProgress') }}
|
||||
</outlined-button>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -116,16 +116,16 @@ async function resetExerciseProg() {
|
||||
|
||||
<!-- Confirm delete database -->
|
||||
<confirm-dialog
|
||||
:title="$t('resetDatabaseConfirm.title')"
|
||||
:description="$t('resetDatabaseConfirm.description')"
|
||||
:title="$t('preferences.resetDatabase.dialog.title')"
|
||||
:description="$t('preferences.resetDatabase.dialog.description')"
|
||||
v-model="showConfirmDeleteDbDialog"
|
||||
:onConfirm="resetDb"
|
||||
/>
|
||||
|
||||
<!-- Confirm delete exercise progress -->
|
||||
<confirm-dialog
|
||||
:title="$t('resetExerciseProgressConfirm.title')"
|
||||
:description="$t('resetExerciseProgressConfirm.description')"
|
||||
:title="$t('preferences.resetExerciseProgress.dialog.title')"
|
||||
:description="$t('preferences.resetExerciseProgress.dialog.description')"
|
||||
v-model="showConfirmDeleteExerciseProgressDialog"
|
||||
:onConfirm="resetExerciseProg"
|
||||
/>
|
||||
|
||||
@@ -26,7 +26,7 @@ const searchStore = useSearchStore()
|
||||
<div v-if="searchStore.alreadySearched">
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('band', 2)" />
|
||||
<section-divider :title="$t('band.band', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -55,7 +55,7 @@ const searchStore = useSearchStore()
|
||||
<v-row v-else >
|
||||
<v-col>
|
||||
<v-empty-state
|
||||
:title="$t('noBandFound')"
|
||||
:title="$t('band.noBandFound')"
|
||||
icon="mdi-guitar-electric"
|
||||
/>
|
||||
</v-col>
|
||||
@@ -66,7 +66,7 @@ const searchStore = useSearchStore()
|
||||
<!-- Section Concert results -->
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('concert', 2)" />
|
||||
<section-divider :title="$t('concert.concert', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -95,7 +95,7 @@ const searchStore = useSearchStore()
|
||||
<v-row v-else >
|
||||
<v-col>
|
||||
<v-empty-state
|
||||
:title="$t('noConcertsFound')"
|
||||
:title="$t('concert.noConcertsFound')"
|
||||
icon="mdi-party-popper"
|
||||
/>
|
||||
</v-col>
|
||||
@@ -106,7 +106,7 @@ const searchStore = useSearchStore()
|
||||
<!-- Section Location results -->
|
||||
<v-row>
|
||||
<v-col>
|
||||
<section-divider :title="$t('location', 2)" />
|
||||
<section-divider :title="$t('location.location', 2)" />
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
@@ -135,7 +135,7 @@ const searchStore = useSearchStore()
|
||||
<v-row v-else >
|
||||
<v-col>
|
||||
<v-empty-state
|
||||
:title="$t('noLocationsFound')"
|
||||
:title="$t('location.noLocationsFound')"
|
||||
icon="mdi-city"
|
||||
/>
|
||||
</v-col>
|
||||
|
||||
@@ -11,7 +11,7 @@ const searchStore = useSearchStore()
|
||||
variant="outlined"
|
||||
hide-details
|
||||
v-model="searchStore.searchTerm"
|
||||
:placeholder="$t('enterSomeKeywords')"
|
||||
:placeholder="$t('misc.enterSomeKeywords')"
|
||||
@keyup.enter="searchStore.startSearch"
|
||||
>
|
||||
<template #append-inner>
|
||||
|
||||
Reference in New Issue
Block a user