Last minute fixes
This commit is contained in:
+6
-2
@@ -9,8 +9,11 @@
|
|||||||
"login_instead": "Stattdessen anmelden",
|
"login_instead": "Stattdessen anmelden",
|
||||||
"logout": "Abmelden",
|
"logout": "Abmelden",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
|
"name_help": "Nutze entweder deinen echten Namen oder wähle einen zufälligen aus!",
|
||||||
"old_invalid": "Altes Passwort inkorrekt!",
|
"old_invalid": "Altes Passwort inkorrekt!",
|
||||||
"password": "Passwort",
|
"password": "Passwort",
|
||||||
|
"password_help": "Dein Passwort wird selbstverständlich sicher gehashed.",
|
||||||
|
"password_length": "Mindestens 8 Zeichen lang",
|
||||||
"register": "Registrieren",
|
"register": "Registrieren",
|
||||||
"register_instead": "Stattdessen registrieren",
|
"register_instead": "Stattdessen registrieren",
|
||||||
"reset": "Zurücksetzen",
|
"reset": "Zurücksetzen",
|
||||||
@@ -36,7 +39,8 @@
|
|||||||
"INTEGER": "Ganzzahl",
|
"INTEGER": "Ganzzahl",
|
||||||
"NUMBER": "Zahl",
|
"NUMBER": "Zahl",
|
||||||
"TEXT": "Freitext",
|
"TEXT": "Freitext",
|
||||||
"WORD": "Ein Wort"
|
"WORD": "Ein Wort",
|
||||||
|
"CHAR": "Ein Zeichen"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
@@ -45,7 +49,7 @@
|
|||||||
"default": "Unbekannter Fehler",
|
"default": "Unbekannter Fehler",
|
||||||
"team_not_found": "Team nicht gefunden oder Passwort inkorrekt!"
|
"team_not_found": "Team nicht gefunden oder Passwort inkorrekt!"
|
||||||
},
|
},
|
||||||
"hello": "Hallo",
|
"hello": "Willkommen zu PicHunt!",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"default_tile": "PicHunt",
|
"default_tile": "PicHunt",
|
||||||
"refresh": "Aktualisieren",
|
"refresh": "Aktualisieren",
|
||||||
|
|||||||
+6
-2
@@ -9,8 +9,11 @@
|
|||||||
"login_instead": "Login instead",
|
"login_instead": "Login instead",
|
||||||
"logout": "Logout",
|
"logout": "Logout",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
|
"name_help": "Use either your real name or choose a random one!",
|
||||||
"old_invalid": "Old password incorrect!",
|
"old_invalid": "Old password incorrect!",
|
||||||
"password": "Password",
|
"password": "Password",
|
||||||
|
"password_help": "Your password will of course be securely hashed.",
|
||||||
|
"password_length": "At least 8 characters long",
|
||||||
"register": "Register",
|
"register": "Register",
|
||||||
"register_instead": "Register instead",
|
"register_instead": "Register instead",
|
||||||
"reset": "Reset",
|
"reset": "Reset",
|
||||||
@@ -36,7 +39,8 @@
|
|||||||
"INTEGER": "Whole number",
|
"INTEGER": "Whole number",
|
||||||
"NUMBER": "Number",
|
"NUMBER": "Number",
|
||||||
"TEXT": "Free text",
|
"TEXT": "Free text",
|
||||||
"WORD": "One Word"
|
"WORD": "One word",
|
||||||
|
"CHAR": "One character"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
@@ -45,7 +49,7 @@
|
|||||||
"default": "Unknown error",
|
"default": "Unknown error",
|
||||||
"team_not_found": "Team not found or password incorrect!"
|
"team_not_found": "Team not found or password incorrect!"
|
||||||
},
|
},
|
||||||
"hello": "Hello",
|
"hello": "Welcome to PicHunt!",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"default_tile": "PicHunt",
|
"default_tile": "PicHunt",
|
||||||
"refresh": "Refresh",
|
"refresh": "Refresh",
|
||||||
|
|||||||
@@ -35,16 +35,6 @@ const slugs = computed(() => checkSlug(route.params));
|
|||||||
<template #center>
|
<template #center>
|
||||||
{{ titleStore.title || t('layouts.default_tile') }}</template
|
{{ titleStore.title || t('layouts.default_tile') }}</template
|
||||||
>
|
>
|
||||||
<template #right>
|
|
||||||
<VaButton
|
|
||||||
round
|
|
||||||
icon="help"
|
|
||||||
:to="$localePath('/help')"
|
|
||||||
title="Help"
|
|
||||||
:preset="$localePath('/help') === route.path ? 'secondary' : ''"
|
|
||||||
:border-color="$localePath('/help') === route.path ? 'primary' : ''"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</VaNavbar>
|
</VaNavbar>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -1,90 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { useTitleStore } from '~/stores/title';
|
|
||||||
|
|
||||||
const { t } = useI18n();
|
|
||||||
const titleStore = useTitleStore();
|
|
||||||
useHead({
|
|
||||||
title: t('layouts.title', {
|
|
||||||
title: t('page.help.title')
|
|
||||||
})
|
|
||||||
});
|
|
||||||
titleStore.title = t('page.help.head');
|
|
||||||
|
|
||||||
// TODO: add help texts
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div>
|
|
||||||
<h1 class="text-3xl">
|
|
||||||
{{ t('page.help.title') }}
|
|
||||||
</h1>
|
|
||||||
<p>
|
|
||||||
{{ t('page.help.subtitle') }}
|
|
||||||
</p>
|
|
||||||
<div class="mt-4 grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3">
|
|
||||||
<VaCard>
|
|
||||||
<VaCardTitle>PicHunt</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>tolle seite für fotosafaris</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
|
|
||||||
<VaCard>
|
|
||||||
<VaCardTitle>Hunts</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>haben meistens zeitrahmen</p>
|
|
||||||
<p>abgaben danach können evtl nicht bewertet werden</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
|
|
||||||
<VaCard>
|
|
||||||
<VaCardTitle>Teams</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>anmeldung pro user erforderlich!</p>
|
|
||||||
<p>dann einladecode an user teilen und beitreten</p>
|
|
||||||
<p>im team gemeinsam antworten abgeben</p>
|
|
||||||
<p>bei problemen admins ansprechen</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
|
|
||||||
<VaCard>
|
|
||||||
<VaCardTitle>Quests</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>aufgabe, die mit foto zu lösen ist</p>
|
|
||||||
<p>manchmal ist auch antwortstext erforderlich</p>
|
|
||||||
<p>
|
|
||||||
manchmal gibts extra punkte, dann steht erklärt nach welchen
|
|
||||||
kriterien die vergeben werden
|
|
||||||
</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
|
|
||||||
<VaCard stripe stripe-color="primary">
|
|
||||||
<VaCardTitle>Answers</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>zusammen an antwort feilen "zwischenspeichern"</p>
|
|
||||||
<p>wird erst bewertet wenn finalisiert, dann nicht mehr änderbar</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
|
|
||||||
<VaCard color="info">
|
|
||||||
<VaCardTitle>Reviews</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>
|
|
||||||
admin team bewertet über den zeitraum alle finalisierten antworten
|
|
||||||
</p>
|
|
||||||
<p>vergibt punkte und prüft auf richtige antworten</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
|
|
||||||
<VaCard>
|
|
||||||
<VaCardTitle>Showcase</VaCardTitle>
|
|
||||||
<VaCardContent class="flex flex-col gap-2">
|
|
||||||
<p>
|
|
||||||
nach Hunt gibt es showcase der besten antworten und siegerehrung
|
|
||||||
</p>
|
|
||||||
</VaCardContent>
|
|
||||||
</VaCard>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
@@ -85,7 +85,7 @@ ${document.location.href}`
|
|||||||
<VaButton
|
<VaButton
|
||||||
icon="replay"
|
icon="replay"
|
||||||
:disabled="pending"
|
:disabled="pending"
|
||||||
title="Refresh"
|
:title="t('page.common.refresh')"
|
||||||
@click="refresh"
|
@click="refresh"
|
||||||
>{{ t('page.common.refresh') }}</VaButton
|
>{{ t('page.common.refresh') }}</VaButton
|
||||||
>
|
>
|
||||||
|
|||||||
+8
-4
@@ -11,7 +11,7 @@ watch(loggedIn, () => refresh());
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<h1 class="text-primary text-3xl">{{ t('hello') }}</h1>
|
<h1 class="text-primary mb-3 text-3xl">{{ t('hello') }}</h1>
|
||||||
<VaButton icon="refresh" :disabled="pending" @click="refresh">{{
|
<VaButton icon="refresh" :disabled="pending" @click="refresh">{{
|
||||||
t('layouts.refresh')
|
t('layouts.refresh')
|
||||||
}}</VaButton>
|
}}</VaButton>
|
||||||
@@ -68,9 +68,13 @@ watch(loggedIn, () => refresh());
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<VaButton color="info" icon="login" :to="$localePath(`/login`)">{{
|
<VaButton
|
||||||
t('page.home.login_first')
|
class="mt-6"
|
||||||
}}</VaButton>
|
color="info"
|
||||||
|
icon="login"
|
||||||
|
:to="$localePath(`/login`)"
|
||||||
|
>{{ t('page.home.login_first') }}</VaButton
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-8">
|
<div class="mt-8">
|
||||||
<VaDivider />
|
<VaDivider />
|
||||||
|
|||||||
+3
-1
@@ -29,7 +29,9 @@ async function submit() {
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: form
|
body: form
|
||||||
});
|
});
|
||||||
|
form.password = '';
|
||||||
await fetch();
|
await fetch();
|
||||||
|
form.email = '';
|
||||||
await router.push(
|
await router.push(
|
||||||
localePath(
|
localePath(
|
||||||
(route.query.to
|
(route.query.to
|
||||||
@@ -124,7 +126,7 @@ async function submit() {
|
|||||||
class="w-full text-center"
|
class="w-full text-center"
|
||||||
>{{ t(error) }}</VaAlert
|
>{{ t(error) }}</VaAlert
|
||||||
>
|
>
|
||||||
<VaButtonGroup>
|
<VaButtonGroup grow>
|
||||||
<VaButton color="success" type="submit" :disabled="!isValid">{{
|
<VaButton color="success" type="submit" :disabled="!isValid">{{
|
||||||
t('auth.login')
|
t('auth.login')
|
||||||
}}</VaButton>
|
}}</VaButton>
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ async function submit() {
|
|||||||
validation.max(t('auth.name'), 64),
|
validation.max(t('auth.name'), 64),
|
||||||
validation.min(t('auth.name'), 1)
|
validation.min(t('auth.name'), 1)
|
||||||
]"
|
]"
|
||||||
|
:messages="t('auth.name_help')"
|
||||||
required
|
required
|
||||||
>
|
>
|
||||||
<template #prependInner>
|
<template #prependInner>
|
||||||
@@ -118,6 +119,7 @@ async function submit() {
|
|||||||
validation.required(t('auth.password')),
|
validation.required(t('auth.password')),
|
||||||
validation.min(t('auth.password'), 8)
|
validation.min(t('auth.password'), 8)
|
||||||
]"
|
]"
|
||||||
|
:messages="[t('auth.password_help'), t('auth.password_length')]"
|
||||||
autocomplete="current-password"
|
autocomplete="current-password"
|
||||||
:minlength="8"
|
:minlength="8"
|
||||||
required
|
required
|
||||||
@@ -156,7 +158,7 @@ async function submit() {
|
|||||||
>{{ t(error) }}</VaAlert
|
>{{ t(error) }}</VaAlert
|
||||||
>
|
>
|
||||||
|
|
||||||
<VaButtonGroup>
|
<VaButtonGroup grow>
|
||||||
<VaButton color="success" type="submit" :disabled="!isValid">{{
|
<VaButton color="success" type="submit" :disabled="!isValid">{{
|
||||||
t('auth.register')
|
t('auth.register')
|
||||||
}}</VaButton>
|
}}</VaButton>
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
-- AlterEnum
|
||||||
|
ALTER TYPE "public"."TextType" ADD VALUE 'CHAR';
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "public"."HuntQuest" ALTER COLUMN "description_de" SET DEFAULT '',
|
||||||
|
ALTER COLUMN "description_en" SET DEFAULT '';
|
||||||
@@ -153,6 +153,7 @@ model TeamMember {
|
|||||||
enum TextType {
|
enum TextType {
|
||||||
TEXT
|
TEXT
|
||||||
WORD
|
WORD
|
||||||
|
CHAR
|
||||||
NUMBER
|
NUMBER
|
||||||
INTEGER
|
INTEGER
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user