Bugfixes, reset exercise progress from frontend

This commit is contained in:
2024-10-10 14:29:45 +02:00
parent 8d78a9eeb7
commit 5f8adbaf10
7 changed files with 55 additions and 14 deletions

View File

@@ -9,4 +9,8 @@ export function getServerState() {
export function resetDatabase() {
return axios.get(BASE_URL + "/resetdatabase")
}
export function resetExerciseProgress() {
return axios.get(BASE_URL + "/resetExerciseProgress")
}

View File

@@ -14,6 +14,9 @@ export enum BannerStateEnum {
// Status: 200 OK
DATABASERESETSUCCESSFUL,
// Status: 200 OK
EXERCISEPROGRESSRESETSUCCESSFUL,
////////// API Endpoint /accounts //////////

View File

@@ -7,7 +7,7 @@
"concert": "Konzert | Konzerte",
"resetPreferences": "Einstellungen zurücksetzen",
"resetDatabase": "Datenbank zurücksetzen",
"resetConfirm": {
"resetDatabaseConfirm": {
"title": "Datenbank zurücksetzen?",
"description": "Soll die Datenbank des Servers wirklich zurückgesetzt werden? Dies kann nicht rückgänig gemacht werden! Der Bearbeitungsfortschritt der Aufgaben wird nicht gelöscht."
},
@@ -164,5 +164,9 @@
"exercise": "Aufgabe",
"resetProgress": "Aufgabenfortschritt zurücksetzen",
"youAreHere": "Du bist hier:",
"standingPlaces": "Stehplätze"
"standingPlaces": "Stehplätze",
"resetExerciseProgressConfirm": {
"title": "Übungsfortschritt zurücksetzen?",
"description": "Soll der Bearbeitungsfortschritt der Übungen wirklich zurückgesetzt werden? Dies kann nicht rückgänig gemacht werden!"
}
}

View File

@@ -164,5 +164,9 @@
"exercise": "Exercise",
"resetProgress": "Reset Exercise Progress",
"youAreHere": "You are here:",
"standingPlaces": "Standing capacity"
"standingPlaces": "Standing capacity",
"resetExerciseProgressConfirm": {
"title": "Reset Exercise progress?",
"description": "Do you really want to reset the exercise progress? This can't be undone!"
}
}

View File

@@ -27,7 +27,7 @@ defineProps({
<v-col>
<concert-list-item
:title="dateStringToHumanReadableString(concert.date)"
:image="concert.location.image"
:image="concert.location.imageOutdoor"
@click="(concert.inStock > 0) && router.push('/concert/' + concert.id)"
:link="concert.inStock > 0"
:append-icon="concert.inStock == 0 ? 'mdi-minus-circle' : 'mdi-ticket'"

View File

@@ -40,7 +40,7 @@ getConcert(Number(router.currentRoute.value.params.id))
:loading="feedbackStore.fetchDataFromServerInProgress"
:link="false"
:title="concertModel.event.band.name + ' - ' + concertModel.event.name"
:image="concertModel.location.image"
:image="concertModel.location.imageOutdoor"
>
<template #description>
<p>{{ dateStringToHumanReadableString(concertModel.date) }}</p>
@@ -71,7 +71,8 @@ getConcert(Number(router.currentRoute.value.params.id))
</v-col>
<v-col v-else>
<seat-plan-map :concert="concertModel" :seat-groups="seatGroups" />
<seat-plan-map
:concert="concertModel" :seat-groups="seatGroups" :location="concertModel.location" />
</v-col>
</v-row>

View File

@@ -5,12 +5,13 @@ import cardView from '@/components/basics/cardView.vue';
import outlinedButton from '@/components/basics/outlinedButton.vue';
import { ref } from 'vue';
import confirmDialog from '@/components/basics/confirmDialog.vue';
import { getServerState, resetDatabase } from '@/data/api/mainApi';
import { getServerState, resetDatabase, resetExerciseProgress } from '@/data/api/mainApi';
import { ServerStateEnum } from '@/data/enums/serverStateEnum';
import packageJson from './../../../../package.json'
const feedbackStore = useFeedbackStore()
const showConfirmDialog = ref(false)
const showConfirmDeleteDbDialog = ref(false)
const showConfirmDeleteExerciseProgressDialog = ref(false)
const serverOnline = ref(ServerStateEnum.PENDING)
getServerState()
@@ -34,11 +35,25 @@ async function resetDb() {
feedbackStore.changeBanner(BannerStateEnum.DATABASERESETSUCCESSFUL)
serverOnline.value = ServerStateEnum.ONLINE
}
})
showConfirmDialog.value = false
// todo: Request all data
showConfirmDeleteDbDialog.value = false
})
}
async function resetExerciseProg() {
serverOnline.value = ServerStateEnum.PENDING
await resetExerciseProgress()
.then(result => {
if (result.status == 200) {
feedbackStore.changeBanner(BannerStateEnum.EXERCISEPROGRESSRESETSUCCESSFUL)
serverOnline.value = ServerStateEnum.ONLINE
}
showConfirmDeleteExerciseProgressDialog.value = false
})
}
</script>
<template>
@@ -75,7 +90,7 @@ async function resetDb() {
<v-row>
<v-col class="d-flex justify-center align-center">
<outlined-button
@click="showConfirmDialog = true"
@click="showConfirmDeleteDbDialog = true"
prepend-icon="mdi-database-refresh"
color="red"
:disabled="serverOnline != ServerStateEnum.ONLINE"
@@ -88,8 +103,10 @@ async function resetDb() {
<v-row>
<v-col class="d-flex justify-center align-center">
<outlined-button
@click="showConfirmDeleteExerciseProgressDialog = true"
prepend-icon="mdi-progress-close"
color="red"
:disabled="serverOnline != ServerStateEnum.ONLINE"
>
{{ $t('resetProgress') }}
</outlined-button>
@@ -97,11 +114,19 @@ async function resetDb() {
</v-row>
</card-view>
<!-- Confirm delete database -->
<confirm-dialog
:title="$t('resetDatabaseConfirm.title')"
:description="$t('resetDatabaseConfirm.description')"
v-model="showConfirmDialog"
v-model="showConfirmDeleteDbDialog"
:onConfirm="resetDb"
/>
<!-- Confirm delete exercise progress -->
<confirm-dialog
:title="$t('resetExerciseProgressConfirm.title')"
:description="$t('resetExerciseProgressConfirm.description')"
v-model="showConfirmDeleteExerciseProgressDialog"
:onConfirm="resetExerciseProg"
/>
</template>