feat: start pages placeholder

This commit is contained in:
Reto Aebersold 2023-11-20 09:18:11 +01:00 committed by Christian Cueni
parent fdcb6ca3d9
commit ebb4772f54
5 changed files with 111 additions and 8 deletions

View File

@ -0,0 +1,51 @@
<script setup lang="ts"></script>
<template>
<div>
<section class="bg-blue-900 text-white">
<div class="container-medium px-4 pb-16 pt-10 lg:px-8">
<h2>Die Lernumgebung für die Versicherungsbranche</h2>
</div>
</section>
<main class="bg-gray-200 lg:px-12 lg:py-12">
<div class="container-medium">
<h3 class="mb-8 text-blue-900">Wähle jetzt deinen Lehrgang aus:</h3>
<div class="mb-16 flex items-center gap-x-8">
<img
class="h-72"
src="../assets/images/mood_vv.jpg"
alt="Versicherungsvermittler"
/>
<div class="space-y-2">
<h4 class="text-lg font-bold">Versicherungsvermittler/-in</h4>
<p>
Der Lehrgang und die Prüfung zum Erwerb des Verbandszertifikats als
Versicherungs-vermittler/-in.
</p>
<router-link class="btn-primary" :to="{ name: 'vvStart' }">
Mehr erfahren
</router-link>
</div>
</div>
<div class="flex items-center gap-x-8">
<div class="space-y-2">
<h4 class="text-lg font-bold">Überbetriebliche Kurse</h4>
<p>
Die überbetrieblichen Kurse der kaufmännischen Ausbildungs- und
Prüfungsbranche «Privatversicherung».
</p>
<router-link class="btn-primary" :to="{ name: 'ukStart' }">
Mehr erfahren
</router-link>
</div>
<img
class="h-72"
src="../assets/images/mood_uk.jpg"
alt="Versicherungsvermittler"
/>
</div>
</div>
</main>
</div>
</template>

View File

@ -0,0 +1,15 @@
<script setup lang="ts"></script>
<template>
<main class="bg-gray-200 lg:px-12 lg:py-12">
<div class="container-medium">
<h2 class="mb-8 text-blue-900">Überbetriebliche Kurse</h2>
<router-link
class="btn-primary"
:to="{ name: 'accountCreate', params: { courseType: 'uk' } }"
>
Jetzt mit Lehrgang starten
</router-link>
</div>
</main>
</template>

View File

@ -0,0 +1,15 @@
<script setup lang="ts"></script>
<template>
<main class="bg-gray-200 lg:px-12 lg:py-12">
<div class="container-medium">
<h2 class="mb-8 text-blue-900">Versicherungsvermittler/-in</h2>
<router-link
class="btn-primary"
:to="{ name: 'accountCreate', params: { courseType: 'vv' } }"
>
Jetzt mit Lehrgang starten
</router-link>
</div>
</main>
</template>

View File

@ -12,14 +12,10 @@ export const updateLoggedIn: NavigationGuard = async () => {
} }
}; };
export const redirectToLoginIfRequired: NavigationGuard = (to) => { export const redirectToStartIfRequired: NavigationGuard = (to) => {
const userStore = useUserStore(); const userStore = useUserStore();
if (loginRequired(to) && !userStore.loggedIn) { if (loginRequired(to) && !userStore.loggedIn) {
const appEnv = import.meta.env.VITE_APP_ENVIRONMENT || "local"; return "/start";
const ssoLogin = appEnv.startsWith("prod") || appEnv.startsWith("stage");
return ssoLogin
? `/login?next=${encodeURIComponent(to.fullPath)}`
: `/login-local?next=${encodeURIComponent(to.fullPath)}`;
} }
}; };

View File

@ -1,9 +1,12 @@
import GuestStartPage from "@/pages/GuestStartPage.vue";
import LoginPage from "@/pages/LoginPage.vue"; import LoginPage from "@/pages/LoginPage.vue";
import UKStartPage from "@/pages/UKStartPage.vue";
import VVStartPage from "@/pages/VVStartPage.vue";
import DashboardPage from "@/pages/dashboard/DashboardPage.vue"; import DashboardPage from "@/pages/dashboard/DashboardPage.vue";
import { import {
handleCourseSessionAsQueryParam, handleCourseSessionAsQueryParam,
handleCurrentCourseSession, handleCurrentCourseSession,
redirectToLoginIfRequired, redirectToStartIfRequired,
updateLoggedIn, updateLoggedIn,
} from "@/router/guards"; } from "@/router/guards";
import { addToHistory } from "@/router/history"; import { addToHistory } from "@/router/history";
@ -20,6 +23,29 @@ const router = createRouter({
} }
}, },
routes: [ routes: [
{
path: "/start",
component: GuestStartPage,
meta: {
public: true,
},
},
{
path: "/start/vv",
component: VVStartPage,
name: "vvStart",
meta: {
public: true,
},
},
{
path: "/start/uk",
component: UKStartPage,
name: "ukStart",
meta: {
public: true,
},
},
{ {
path: "/login", path: "/login",
component: LoginPage, component: LoginPage,
@ -288,7 +314,7 @@ const router = createRouter({
}); });
router.beforeEach(updateLoggedIn); router.beforeEach(updateLoggedIn);
router.beforeEach(redirectToLoginIfRequired); router.beforeEach(redirectToStartIfRequired);
// register after login hooks // register after login hooks
router.beforeEach(handleCurrentCourseSession); router.beforeEach(handleCurrentCourseSession);