Uprava setovani 404 (asi porad nefunguje), ruzne podminky, priprava na zapomenute heslo, sjednoceni nacitani letu v profilu
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
<script setup>
|
||||
|
||||
import {useRoute, useRouter} from "vue-router";
|
||||
import {computed, onMounted} from "vue";
|
||||
import {computed, onMounted, ref} from "vue";
|
||||
import {useLoggedUserStore} from "stores/LoggedUser";
|
||||
import {useAuthStore} from "stores/Auth";
|
||||
|
||||
const $route = useRoute();
|
||||
const $router = useRouter();
|
||||
|
||||
const url = computed(() => $route.query.url);
|
||||
const url = computed(() => $route.query.url || '/moje');
|
||||
|
||||
const showLoginInfo = ref(false);
|
||||
|
||||
onMounted(() => {
|
||||
console.log(useAuthStore().getAccessToken());
|
||||
@@ -17,10 +19,39 @@ onMounted(() => {
|
||||
}).catch(e => {
|
||||
$router.push({name: "login"})
|
||||
});
|
||||
|
||||
setTimeout(() => showLoginInfo.value = true, 1000);
|
||||
setTimeout(() => $router.push(url), 10000);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<q-spinner />
|
||||
|
||||
<div class="row justify-center">
|
||||
<div class="col-4">
|
||||
<transition
|
||||
v-if="showLoginInfo"
|
||||
appear
|
||||
enter-active-class="animated fadeIn"
|
||||
leave-active-class="animated fadeOut"
|
||||
>
|
||||
<q-card style="max-width: 100%" class="q-my-lg">
|
||||
<q-card-section class="text-center">
|
||||
<q-spinner size="80px" color="primary"/>
|
||||
<br>
|
||||
<p class="q-my-lg">
|
||||
Probíhá přihlašování. Za okamžik dojde k přesměrování. Pokud se tak nestane, klikni na tlačítko
|
||||
|
||||
</p>
|
||||
</q-card-section>
|
||||
<q-card-actions>
|
||||
<q-btn class="full-width" color="primary" size="lg" :to="url">Návrat do rozhraní</q-btn>
|
||||
</q-card-actions>
|
||||
</q-card>
|
||||
</transition>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
@@ -6,29 +6,19 @@ import {useAppStore} from "stores/App";
|
||||
import BasicInfoBanner from "components/banners/BasicInfoBanner.vue";
|
||||
import {useFlightsStore} from "stores/Flights";
|
||||
import {storeToRefs} from "pinia";
|
||||
import {ref} from "vue";
|
||||
import {loadPage, paginationLimit} from "src/composables/pagination";
|
||||
|
||||
useAppStore().setPageTitle("Moje lety");
|
||||
|
||||
const paginationLimit = ref(10);
|
||||
const paginationOffset = ref(0);
|
||||
|
||||
const loadNextPage = (appendItems) => {
|
||||
return useFlightsStore().fetch({
|
||||
limit: paginationLimit.value,
|
||||
offset: paginationOffset.value,
|
||||
appendItems
|
||||
}).then(() => {
|
||||
paginationOffset.value += paginationLimit.value;
|
||||
})
|
||||
}
|
||||
|
||||
const loadNextPage = (appendItems) => loadPage({
|
||||
fetchFunc: useFlightsStore().fetch, appendItems
|
||||
});
|
||||
loadNextPage(false);
|
||||
const {flights, totalItemsCount, isQueryRunning} = storeToRefs(useFlightsStore());
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<FlightsListSkeleton v-if="isQueryRunning"/>
|
||||
<FlightsListSkeleton v-if="isQueryRunning && flights.length === 0"/>
|
||||
|
||||
<BasicInfoBanner
|
||||
v-else-if="!isQueryRunning && totalItemsCount === 0"
|
||||
|
||||
@@ -1,5 +1,41 @@
|
||||
<script setup></script>
|
||||
<script setup>
|
||||
import {useAppStore} from "stores/App";
|
||||
import ContentCard from "components/ContentCard.vue";
|
||||
import {ref} from "vue";
|
||||
import {commonProps} from "src/composables/inputs";
|
||||
import {useQuasar} from "quasar";
|
||||
import {successObject} from "src/composables/dialog";
|
||||
|
||||
useAppStore().setPageTitle("Kontakt");
|
||||
useAppStore().setBreadcrumbs([
|
||||
{to: {name: 'homepage'}, label: "Polétání.cz"},
|
||||
{label: "Kontakt"}
|
||||
]);
|
||||
|
||||
const formData = ref({
|
||||
email: "",
|
||||
content: "",
|
||||
});
|
||||
|
||||
const $q = useQuasar();
|
||||
const sendMessage = () => {
|
||||
console.log(formData.value);
|
||||
$q.notify(successObject("Zpráva byla jakoby odeslána"));
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
contact form
|
||||
<ContentCard>
|
||||
<template #content>
|
||||
<q-card-section>
|
||||
|
||||
<q-form @submit="sendMessage">
|
||||
<q-input v-bind="commonProps" v-model="formData.email" label="Tvůj e-mail pro odpověď"/>
|
||||
<q-input v-bind="commonProps" v-model="formData.content" type="textarea" label="Tvoje zpráva" />
|
||||
<q-btn type="submit" color="primary" class="full-width q-my-md">Odeslat</q-btn>
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
</template>
|
||||
|
||||
</ContentCard>
|
||||
</template>
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<script setup>
|
||||
import {useAppStore} from "stores/App";
|
||||
import ContentCard from "components/ContentCard.vue";
|
||||
|
||||
useAppStore().setPageTitle("Co Polétání.cz umí?");
|
||||
useAppStore().setBreadcrumbs([
|
||||
{to: {name: 'homepage'}, label: "Polétání.cz"},
|
||||
{label: "Funkce"}
|
||||
]);
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ContentCard title="Co Polétání.cz umí?">
|
||||
<template #content>
|
||||
<q-card-section>
|
||||
Sdílet zážitky s kamarády
|
||||
Upravovat fotky
|
||||
Zobrazovat je v kontextu polohy
|
||||
Debriefing letu: https://www.easa.europa.eu/community/topics/post-flight-debrief
|
||||
|
||||
</q-card-section>
|
||||
</template>
|
||||
</ContentCard>
|
||||
|
||||
</template>
|
||||
@@ -0,0 +1,59 @@
|
||||
<script setup>
|
||||
import ContentCard from "components/ContentCard.vue";
|
||||
import {useAppStore} from "stores/App";
|
||||
|
||||
useAppStore().setPageTitle("Správa osobních údajů");
|
||||
useAppStore().setBreadcrumbs([
|
||||
{to: {name: 'homepage'}, label: "Polétání.cz"},
|
||||
{label: "Správa osobních údajů"}
|
||||
]);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ContentCard title="Informace o správě osobních údajů">
|
||||
<template #content>
|
||||
<q-card-section>
|
||||
<section>
|
||||
<h4>1. ochrana osobních údajů:</h4>
|
||||
<p>Aplikace Poletani.cz respektuje vaše soukromí a ochranu osobních údajů. Veškeré osobní údaje, které nám poskytnete, budou zpracovány v souladu s naší Zásadou Ochrany Osobních Údajů a v souladu s nařízením GDPR.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>2. shromažďované údaje:</h4>
|
||||
<p>Aplikace může shromažďovat a zpracovávat různé kategorie osobních údajů, včetně, ale neomezujíc se na, jméno, e-mailovou adresu, geografická data a informace o zařízení, které používáte.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>3. účely zpracování:</h4>
|
||||
<p>Osobní údaje budou zpracovány pro specifické účely, které budou uvedeny při shromažďování těchto údajů. To může zahrnovat poskytování služeb, personalizaci obsahu, analytiku a marketingové účely.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>4. práva uživatelů podle GDPR:</h4>
|
||||
<p>Podle nařízení GDPR máte právo na přístup k vašim osobním údajům, opravu, výmaz, omezení zpracování, přenositelnost údajů a vznést námitku proti zpracování.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>5. bezpečnost osobních údajů:</h4>
|
||||
<p>Aplikace přijímá veškerá opatření k zajištění bezpečnosti osobních údajů uživatelů. To zahrnuje šifrování dat, pravidelné bezpečnostní auditování a opatření k zabránění neoprávněného přístupu k údajům.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>6. sdílení osobních údajů:</h4>
|
||||
<p>Osobní údaje nebudou sdíleny s třetími stranami bez vašeho souhlasu, s výjimkou případů stanovených zákonnou povinností.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>7. cookies:</h4>
|
||||
<p>Pro lepší funkčnost a personalizaci obsahu může aplikace využívat soubory cookies.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>8. změny v podmínkách:</h4>
|
||||
<p>Podmínky používání a Zásady Ochrany Osobních Údajů mohou být aktualizovány. Aktualizované verze budou zveřejněny na našem webu.</p>
|
||||
</section>
|
||||
</q-card-section>
|
||||
</template>
|
||||
</ContentCard>
|
||||
|
||||
</template>
|
||||
@@ -4,7 +4,9 @@ import {useAppStore} from "stores/App";
|
||||
|
||||
export default {
|
||||
preFetch({store, currentRoute}) {
|
||||
return usePilotsStore(store).fetchPublicPilotDetail(currentRoute.params.username).catch(e => {});
|
||||
return usePilotsStore(store).fetchPublicPilotDetail(currentRoute.params.username).catch(e => {
|
||||
useAppStore().appStatus = 404;
|
||||
});
|
||||
},
|
||||
}
|
||||
</script>
|
||||
@@ -14,6 +16,8 @@ import {storeToRefs} from "pinia";
|
||||
import PilotProfileCard from "components/profile/PilotProfileCard.vue";
|
||||
import PublicProfileSkeleton from "components/profile/skeletons/PublicProfileSkeleton.vue";
|
||||
|
||||
console.log("pilot profile wrapper");
|
||||
|
||||
const {pilot, isQueryRunning: pilotLoading} = storeToRefs(usePilotsStore());
|
||||
</script>
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
<script setup>
|
||||
import ContentCard from "components/ContentCard.vue";
|
||||
import {useAppStore} from "stores/App";
|
||||
|
||||
useAppStore().setPageTitle("Podmínky používání");
|
||||
useAppStore().setBreadcrumbs([
|
||||
{to: {name: 'homepage'}, label: "Polétání.cz"},
|
||||
{label: "Podmínky používání"}
|
||||
]);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ContentCard title="Podmínky používání aplikace Polétání.cz">
|
||||
<template #content>
|
||||
<q-card-section>
|
||||
<section>
|
||||
<h4>1. registrace a přístup:</h4>
|
||||
<p>Pro získání přístupu k plnému rozsahu služeb, které tato webová aplikace nabízí, je vyžadována registrace. Během tohoto procesu musíte poskytnout přesný a platný e-mail, který bude sloužit k vašemu účtu, a vytvořit bezpečné heslo. Zároveň jste odpovědni za udržování důvěrnosti svého přihlašovacího účtu.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>2. poskytované služby:</h4>
|
||||
<p>Tato aplikace je nabízena zdarma a bez jakékoli explicitní nebo implicitní záruky. Poskytované služby mohou být kdykoli změněny, aktualizovány nebo ukončeny bez předchozího oznámení.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>3. nahrávání dat:</h4>
|
||||
<p>Uživatelé mají právo nahrávat fotografie a vytvářet texty ve webové aplikaci. Je důležité zdůraznit, že veškerá data, která do aplikace nahráváte, zůstávají vaším duševním vlastnictvím.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>4. odpovědnost za obsah:</h4>
|
||||
<p>Všichni uživatelé jsou plně odpovědni za obsah, který do aplikace přidávají. Aplikace nenese žádnou odpovědnost za obsah, který uživatelé vytvářejí nebo sdílejí.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>5. ochrana soukromí:</h4>
|
||||
<p>Osobní údaje poskytnuté během registrace, zejména e-mailové adresy, budou pečlivě chráněny v souladu s platnými zákony o ochraně osobních údajů.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>6. bezpečnost:</h4>
|
||||
<p>Uživatelé jsou povinni dodržovat bezpečnostní opatření při používání aplikace a zakázáno je jakékoli chování, které by mohlo ohrozit bezpečnost samotné aplikace nebo ostatních uživatelů.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>7. změny podmínek:</h4>
|
||||
<p>Provozovatel si vyhrazuje právo kdykoli změnit podmínky používání. O změnách budou uživatelé informováni prostřednictvím e-mailu nebo při přihlášení do aplikace.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>8. ukončení služeb:</h4>
|
||||
<p>Provozovatel má právo kdykoli ukončit poskytování služeb aplikace bez udání důvodu.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>9. stížnosti a podněty:</h4>
|
||||
<p>Uživatelé mají možnost předkládat stížnosti a podněty prostřednictvím
|
||||
<router-link :to="{name: 'contact'}">kontaktních informací</router-link>
|
||||
poskytnutých na webové stránce aplikace.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h4>10. důležitá ustanovení:</h4>
|
||||
<p>Tyto podmínky tvoří právně závaznou dohodu mezi uživatelem a provozovatelem aplikace. Používáním aplikace vyjadřujete svůj souhlas s těmito podmínkami. Přečtěte si je prosím pečlivě.</p>
|
||||
</section>
|
||||
</q-card-section>
|
||||
</template>
|
||||
</ContentCard>
|
||||
</template>
|
||||
@@ -0,0 +1,93 @@
|
||||
<script setup>
|
||||
import {reactive, ref} from "vue";
|
||||
import {useRouter} from "vue-router";
|
||||
import {useMeta, useQuasar} from "quasar";
|
||||
import {errorObject, successObject} from "src/composables/dialog";
|
||||
import {useAppStore} from "stores/App";
|
||||
import {isRequired, isValidEmail, minLength} from "src/composables/form/rules";
|
||||
import {api} from "boot/axios";
|
||||
import {useAuthStore} from "stores/Auth";
|
||||
import {metaData} from "src/composables/meta";
|
||||
|
||||
const router = useRouter();
|
||||
const $q = useQuasar();
|
||||
|
||||
useAppStore().setPageTitle("Zapomenuté heslo");
|
||||
useMeta(() => metaData({
|
||||
title: "Zapomenuté heslo",
|
||||
}));
|
||||
|
||||
const registerUser = () => {
|
||||
if (!form.value.validate()) return;
|
||||
|
||||
return api.post('/forgotten-password', formData).then(response => {
|
||||
useAuthStore().login({email: formData.email, password: formData.password}).then(() => {
|
||||
$q.notify(successObject("Registrace úspěšná, vítej!"));
|
||||
router.push({name: "myFlights"});
|
||||
})
|
||||
|
||||
}).catch(({response}) => {
|
||||
if (response.detail === 'User already exists') {
|
||||
$q.notify(errorObject("Uživatel s tímto e-mailem je již registrovaný. Zkus se přihlásit."));
|
||||
} else {
|
||||
$q.notify(errorObject("Registrace se nepovedla, zkus to prosím znovu za chvíli"));
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const form = ref(null);
|
||||
const formData = reactive({
|
||||
name: "",
|
||||
email: "",
|
||||
password: ""
|
||||
});
|
||||
|
||||
|
||||
const rules = {
|
||||
email: [isRequired, isValidEmail],
|
||||
password: [isRequired, minLength(4)]
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<q-layout view="lHh Lpr lFf">
|
||||
<q-page-container>
|
||||
|
||||
<q-page class="row justify-center">
|
||||
<q-card flat square style="width:95%; max-width: 450px; height: 500px">
|
||||
<q-card-section class="bg-primary">
|
||||
<h4 class="text-h5 text-white q-my-md">Zapomenuté heslo</h4>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<q-form
|
||||
ref="form"
|
||||
class="q-px-sm q-pt-xl q-pb-lg"
|
||||
@submit.prevent="registerUser"
|
||||
>
|
||||
|
||||
<q-input square clearable v-model="formData.email" type="email" label="E-mail" :rules="rules.email">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="email"/>
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
<q-card-actions class="q-px-lg">
|
||||
<q-btn
|
||||
@click="registerUser"
|
||||
unelevated
|
||||
size="lg"
|
||||
color="primary"
|
||||
class="full-width"
|
||||
label="Resetovat heslo"
|
||||
/>
|
||||
</q-card-actions>
|
||||
<q-card-section class="text-center q-pa-sm">
|
||||
<router-link :to="{name: 'login'}" class="text-grey-6">Zpět na login</router-link>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-page>
|
||||
</q-page-container>
|
||||
</q-layout>
|
||||
</template>
|
||||
@@ -1,19 +1,26 @@
|
||||
<script setup>
|
||||
import {reactive} from "vue";
|
||||
import {reactive, ref} from "vue";
|
||||
import {useRouter} from "vue-router";
|
||||
import {isRequired, isValidEmail, minLength} from "src/composables/form/rules";
|
||||
import {useQuasar} from "quasar";
|
||||
import {useMeta, useQuasar} from "quasar";
|
||||
import {errorObject} from "src/composables/dialog";
|
||||
import {useAuthStore} from "stores/Auth";
|
||||
import {useAppStore} from "stores/App";
|
||||
import {metaData} from "src/composables/meta";
|
||||
|
||||
const $router = useRouter();
|
||||
const $q = useQuasar();
|
||||
|
||||
useAppStore().setPageTitle("Přihlášení");
|
||||
useMeta(() => metaData({
|
||||
title: "Přihlášení",
|
||||
}));
|
||||
|
||||
const logUser = () => {
|
||||
useAuthStore().login(formData).then(() => {
|
||||
$router.push({name: "myFlights"});
|
||||
}).catch((err) => {
|
||||
$q.notify(errorObject(`Přihlášení se nezdařilo. ${err}`))
|
||||
$q.notify(errorObject(`Přihlášení se nezdařilo.`))
|
||||
})
|
||||
};
|
||||
|
||||
@@ -32,7 +39,7 @@ const formData = reactive({
|
||||
<q-page-container>
|
||||
|
||||
<q-page class="window-height window-width row justify-center">
|
||||
<q-card square style="width:95%; max-width: 450px; height:400px;" class="q-mt-lg">
|
||||
<q-card square flat style="width:95%; max-width: 450px;" class="q-mt-lg">
|
||||
<q-card-section class="bg-primary">
|
||||
<h4 class="text-h5 q-my-md text-white">Login</h4>
|
||||
</q-card-section>
|
||||
@@ -52,11 +59,11 @@ const formData = reactive({
|
||||
</q-card-section>
|
||||
|
||||
<q-card-actions class="q-px-lg">
|
||||
<q-btn unelevated size="lg" class="full-width" label="Přihlásit se" @click.prevent="logUser()"/>
|
||||
<q-btn unelevated size="lg" color="primary" class="full-width" label="Přihlásit se" @click.prevent="logUser()"/>
|
||||
</q-card-actions>
|
||||
<!-- <q-card-section class="text-center q-pa-sm">-->
|
||||
<!-- <router-link :to="{name: 'forgottenPassword'}" class="text-grey-6">Zapomenuté heslo</router-link>-->
|
||||
<!-- </q-card-section>-->
|
||||
<q-card-section class="text-center q-pa-sm">
|
||||
<router-link :to="{name: 'forgottenPassword'}" class="text-grey-6">Zapomenuté heslo</router-link>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
</q-page>
|
||||
|
||||
@@ -52,49 +52,49 @@ const rules = {
|
||||
<template>
|
||||
<q-layout view="lHh Lpr lFf">
|
||||
<q-page-container>
|
||||
|
||||
<q-page class="row justify-center">
|
||||
<q-card style="width:95%; max-width: 450px; height: 500px">
|
||||
<q-card-section class="bg-primary">
|
||||
<h4 class="text-h5 text-white q-my-md">Registrace</h4>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<q-form
|
||||
ref="form"
|
||||
class="q-px-sm q-pt-xl q-pb-lg"
|
||||
@submit.prevent="registerUser"
|
||||
>
|
||||
<q-input square clearable v-model="formData.name" type="text" label="Jméno">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
</q-input>
|
||||
<q-card flat style="width: 100%; max-width: 450px">
|
||||
<q-card-section class="bg-primary">
|
||||
<h4 class="text-h5 text-white q-my-md">Registrace</h4>
|
||||
</q-card-section>
|
||||
<q-card-section>
|
||||
<q-form
|
||||
ref="form"
|
||||
class="q-px-sm q-pt-xl q-pb-lg"
|
||||
@submit.prevent="registerUser"
|
||||
>
|
||||
<q-input square clearable v-model="formData.name" type="text" label="Jméno">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person"/>
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<q-input square clearable v-model="formData.email" type="email" label="E-mail" :rules="rules.email">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="email"/>
|
||||
</template>
|
||||
</q-input>
|
||||
<q-input square clearable v-model="formData.password" type="password" label="Heslo" :rules="rules.password">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="lock"/>
|
||||
</template>
|
||||
</q-input>
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
<q-card-actions class="q-px-lg">
|
||||
<q-btn
|
||||
@click="registerUser"
|
||||
unelevated
|
||||
size="lg"
|
||||
class="full-width"
|
||||
label="Registrovat"
|
||||
/>
|
||||
</q-card-actions>
|
||||
<q-card-section class="text-center q-pa-sm">
|
||||
<router-link :to="{name: 'login'}" class="text-grey-6">Zpět na login</router-link>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
<q-input square clearable v-model="formData.email" type="email" label="E-mail" :rules="rules.email">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="email"/>
|
||||
</template>
|
||||
</q-input>
|
||||
<q-input square clearable v-model="formData.password" type="password" label="Heslo" :rules="rules.password">
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="lock"/>
|
||||
</template>
|
||||
</q-input>
|
||||
</q-form>
|
||||
</q-card-section>
|
||||
<q-card-actions class="q-px-lg">
|
||||
<q-btn
|
||||
@click="registerUser"
|
||||
unelevated
|
||||
color="primary"
|
||||
size="lg"
|
||||
class="full-width"
|
||||
label="Registrovat"
|
||||
/>
|
||||
</q-card-actions>
|
||||
<q-card-section class="text-center q-pa-sm">
|
||||
<router-link :to="{name: 'login'}" class="text-grey-6">Zpět na login</router-link>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-page>
|
||||
</q-page-container>
|
||||
</q-layout>
|
||||
|
||||
Reference in New Issue
Block a user