229 lines
7.4 KiB
Svelte
229 lines
7.4 KiB
Svelte
<script>
|
|
import { Route, router } from "tinro";
|
|
router.subscribe((routeInfo) => {
|
|
window.scrollTo(0, 0);
|
|
});
|
|
if (config.prefersHashRouting) {
|
|
if (config.prefersHashRouting === true) {
|
|
router.useHashNavigation();
|
|
}
|
|
}
|
|
import localForage from "localforage";
|
|
import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n";
|
|
import en from "./locales/en.json";
|
|
import de from "./locales/de.json";
|
|
addMessages("en", en);
|
|
addMessages("de", de);
|
|
init({
|
|
fallbackLocale: "en",
|
|
initialLocale: getLocaleFromNavigator(),
|
|
});
|
|
localForage.config({
|
|
name: "lfk_admin",
|
|
version: 1.0,
|
|
storeName: "lfk_admin",
|
|
description: "LfK! admin dashbaord",
|
|
});
|
|
window.onunhandledrejection = (event) => {
|
|
if (event.reason.toString() == "Error: Unauthorized") {
|
|
localForage.clear();
|
|
location.replace("/");
|
|
}
|
|
};
|
|
//
|
|
import Login from "./components/auth/Login.svelte";
|
|
import Dashboard from "./components/dashboard/Dashboard.svelte";
|
|
import store from "./store.js";
|
|
import ForgotPassword from "./components/auth/ForgotPassword.svelte";
|
|
import MainDashContent from "./components/dashboard/MainDashContent.svelte";
|
|
import Users from "./components/users/Users.svelte";
|
|
import About from "./components/general/About.svelte";
|
|
import Settings from "./components/settings/Settings.svelte";
|
|
import Transition from "./components/base/Transition.svelte";
|
|
import Orgs from "./components/orgs/Orgs.svelte";
|
|
import Runners from "./components/runners/Runners.svelte";
|
|
import Footer from "./components/general/Footer.svelte";
|
|
import TracksOverview from "./components/tracks/TracksOverview.svelte";
|
|
import OrgDetail from "./components/orgs/OrgDetail.svelte";
|
|
import Teams from "./components/teams/Teams.svelte";
|
|
import { OpenAPI } from "@odit/lfk-client-js";
|
|
import UserDetail from "./components/users/UserDetail.svelte";
|
|
OpenAPI.BASE = config.baseurl;
|
|
import TeamDetail from "./components/teams/TeamDetail.svelte";
|
|
import UserPermissions from "./components/users/UserPermissions.svelte";
|
|
import GroupPermissions from "./components/groups/GroupPermissions.svelte";
|
|
import RunnerDetail from "./components/runners/RunnerDetail.svelte";
|
|
import Imprint from "./components/general/Imprint.svelte";
|
|
import Privacy from "./components/general/Privacy.svelte";
|
|
import ResetPassword from "./components/auth/ResetPassword.svelte";
|
|
import Contacts from "./components/contacts/Contacts.svelte";
|
|
import ContactDetail from "./components/contacts/ContactDetail.svelte";
|
|
import Donors from "./components/donors/Donors.svelte";
|
|
import Groups from "./components/groups/Groups.svelte";
|
|
import DonorDetail from "./components/donors/DonorDetail.svelte";
|
|
import Donations from "./components/donations/Donations.svelte";
|
|
import DonationDetail from "./components/donations/DonationDetail.svelte";
|
|
import GroupDetail from "./components/groups/GroupDetail.svelte";
|
|
import ScanStations from "./components/scanstations/ScanStations.svelte";
|
|
import ScanStationDetail from "./components/scanstations/ScanStationDetail.svelte";
|
|
import Scans from "./components/scans/Scans.svelte";
|
|
import ScanDetail from "./components/scans/ScanDetail.svelte";
|
|
import Cards from "./components/cards/Cards.svelte";
|
|
import StatsClients from "./components/statsclients/StatsClients.svelte";
|
|
import StatsClientDetail from "./components/statsclients/StatsClientDetail.svelte";
|
|
store.init();
|
|
</script>
|
|
|
|
<Route>
|
|
{#if $router.path === "/forgot_password"}
|
|
<Route path="/forgot_password">
|
|
<ForgotPassword />
|
|
</Route>
|
|
{:else if $router.path.includes("/reset")}
|
|
<Route path="/reset/:resetkey" let:params>
|
|
<ResetPassword {params} />
|
|
</Route>
|
|
{:else if $router.path === "/about"}
|
|
<Route path="/about">
|
|
<About />
|
|
</Route>
|
|
{:else if $router.path === "/imprint"}
|
|
<Route path="/imprint">
|
|
<Imprint />
|
|
</Route>
|
|
{:else if $router.path === "/privacy"}
|
|
<Route path="/privacy">
|
|
<Privacy />
|
|
</Route>
|
|
{:else if $store.isLoggedIn}
|
|
<Dashboard>
|
|
<Transition>
|
|
<Route path="/">
|
|
<MainDashContent />
|
|
</Route>
|
|
<Route path="/users/*">
|
|
<Route path="/">
|
|
<Users />
|
|
</Route>
|
|
<Route path="/:userid/*" let:params>
|
|
<Route path="/">
|
|
<UserDetail {params} />
|
|
</Route>
|
|
<Route path="/permissions/">
|
|
<UserPermissions {params} />
|
|
</Route>
|
|
</Route>
|
|
</Route>
|
|
<Route path="/groups/*">
|
|
<Route path="/">
|
|
<Groups />
|
|
</Route>
|
|
<Route path="/:groupid/*" let:params>
|
|
<Route path="/">
|
|
<GroupDetail {params} />
|
|
</Route>
|
|
<Route path="/permissions/">
|
|
<GroupPermissions {params} />
|
|
</Route>
|
|
</Route>
|
|
</Route>
|
|
<Route path="/tracks/*">
|
|
<Route path="/">
|
|
<TracksOverview />
|
|
</Route>
|
|
<Route path="/:trackid" let:params />
|
|
</Route>
|
|
<Route path="/runners/*">
|
|
<Route path="/">
|
|
<Runners />
|
|
</Route>
|
|
<Route path="/:runnerid" let:params>
|
|
<RunnerDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/teams/*">
|
|
<Route path="/">
|
|
<Teams />
|
|
</Route>
|
|
<Route path="/:teamid" let:params>
|
|
<TeamDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/contacts/*">
|
|
<Route path="/">
|
|
<Contacts />
|
|
</Route>
|
|
<Route path="/:contact" let:params>
|
|
<ContactDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/orgs/*">
|
|
<Route path="/">
|
|
<Orgs />
|
|
</Route>
|
|
<Route path="/:orgid" let:params>
|
|
<OrgDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/donors/*">
|
|
<Route path="/">
|
|
<Donors />
|
|
</Route>
|
|
<Route path="/:donorid" let:params>
|
|
<DonorDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/donations/*">
|
|
<Route path="/">
|
|
<Donations />
|
|
</Route>
|
|
<Route path="/:donationid" let:params>
|
|
<DonationDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/cards/*">
|
|
<Route path="/">
|
|
<Cards />
|
|
</Route>
|
|
<!-- <Route path="/:scanid" let:params>
|
|
<ScanDetail {params} />
|
|
</Route> -->
|
|
</Route>
|
|
<Route path="/scans/*">
|
|
<Route path="/">
|
|
<Scans />
|
|
</Route>
|
|
<Route path="/:scanid" let:params>
|
|
<ScanDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/scanstations/*">
|
|
<Route path="/">
|
|
<ScanStations />
|
|
</Route>
|
|
<Route path="/:stationid" let:params>
|
|
<ScanStationDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/statsclients/*">
|
|
<Route path="/">
|
|
<StatsClients />
|
|
</Route>
|
|
<Route path="/:clientid" let:params>
|
|
<StatsClientDetail {params} />
|
|
</Route>
|
|
</Route>
|
|
<Route path="/about">
|
|
<About />
|
|
</Route>
|
|
<Route path="/settings">
|
|
<Settings />
|
|
</Route>
|
|
</Transition>
|
|
<Footer />
|
|
</Dashboard>
|
|
{:else}
|
|
<Login />
|
|
{/if}
|
|
</Route>
|