feature/46-imprint-privacy #55
No files matched your search
@@ -18,6 +18,7 @@
|
|||||||
"gridjs": "3.2.2",
|
"gridjs": "3.2.2",
|
||||||
"localforage": "1.9.0",
|
"localforage": "1.9.0",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
|
"marked": "^1.2.8",
|
||||||
"svelte-filepond": "0.0.1",
|
"svelte-filepond": "0.0.1",
|
||||||
"svelte-focus-trap": "1.0.1",
|
"svelte-focus-trap": "1.0.1",
|
||||||
"svelte-i18n": "3.3.0",
|
"svelte-i18n": "3.3.0",
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
Nostrud tempor dolor aute ea excepteur aute mollit elit eiusmod exercitation. Magna laborum pariatur adipisicing pariatur cupidatat exercitation duis aliquip pariatur sint exercitation deserunt labore. Consectetur id laboris dolore nostrud do velit ipsum. Eu laboris velit do commodo ad ea sint ex cillum. Cillum ipsum qui eiusmod laborum mollit sunt dolore incididunt. Cillum sunt culpa veniam voluptate et qui ut magna anim occaecat ut mollit dolor. Duis irure proident eu incididunt dolore sunt nisi aute dolore amet eu fugiat laboris quis.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Nostrud tempor dolor aute ea excepteur aute mollit elit eiusmod exercitation. Magna laborum pariatur adipisicing pariatur cupidatat exercitation duis aliquip pariatur sint exercitation deserunt labore. Consectetur id laboris dolore nostrud do velit ipsum. Eu laboris velit do commodo ad ea sint ex cillum. Cillum ipsum qui eiusmod laborum mollit sunt dolore incididunt. Cillum sunt culpa veniam voluptate et qui ut magna anim occaecat ut mollit dolor. Duis irure proident eu incididunt dolore sunt nisi aute dolore amet eu fugiat laboris quis.
|
||||||
@@ -50,6 +50,8 @@
|
|||||||
import TeamDetail from "./components/TeamDetail.svelte";
|
import TeamDetail from "./components/TeamDetail.svelte";
|
||||||
import UserPermissions from "./components/UserPermissions.svelte";
|
import UserPermissions from "./components/UserPermissions.svelte";
|
||||||
import RunnerDetail from "./components/RunnerDetail.svelte";
|
import RunnerDetail from "./components/RunnerDetail.svelte";
|
||||||
|
import Imprint from "./components/Imprint.svelte";
|
||||||
|
import Privacy from "./components/Privacy.svelte";
|
||||||
store.init();
|
store.init();
|
||||||
registerSW();
|
registerSW();
|
||||||
</script>
|
</script>
|
||||||
@@ -63,6 +65,14 @@
|
|||||||
<Route path="/about">
|
<Route path="/about">
|
||||||
<About />
|
<About />
|
||||||
</Route>
|
</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}
|
{:else if $store.isLoggedIn}
|
||||||
<Dashboard>
|
<Dashboard>
|
||||||
<Transition>
|
<Transition>
|
||||||
|
|||||||
@@ -31,5 +31,9 @@
|
|||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener, noreferrer"
|
rel="noopener, noreferrer"
|
||||||
href="https://git.odit.services/lfk/frontend/src/tag/{releaseinfo}">{releaseinfo}</a>
|
href="https://git.odit.services/lfk/frontend/src/tag/{releaseinfo}">{releaseinfo}</a>
|
||||||
|
-
|
||||||
|
<a class="underline" href="/privacy">{$_('privacy')}</a>
|
||||||
|
-
|
||||||
|
<a class="underline" href="/imprint">{$_('imprint')}</a>
|
||||||
</p>
|
</p>
|
||||||
</footer>
|
</footer>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<script>
|
||||||
|
import { _, getLocaleFromNavigator } from "svelte-i18n";
|
||||||
|
import * as css from "./simple.css";
|
||||||
|
import marked from "marked";
|
||||||
|
import Footer from "./Footer.svelte";
|
||||||
|
let html = "";
|
||||||
|
async function load() {
|
||||||
|
let md = await fetch("/imprint_" + getLocaleFromNavigator() + ".md");
|
||||||
|
if (!md.ok) {
|
||||||
|
md = await fetch("/imprint_en.md");
|
||||||
|
}
|
||||||
|
html = marked(await md.text());
|
||||||
|
}
|
||||||
|
const promise = load();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="pt-12 px-4 sm:px-6 lg:px-8 lg:pt-20 bg-gray-900 pb-12">
|
||||||
|
<div class="text-center mb-8">
|
||||||
|
<h1
|
||||||
|
class="mt-9 font-display text-4xl leading-none font-semibold text-white sm:text-5xl lg:text-6xl">
|
||||||
|
{$_('imprint')}
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pt-0 pb-16 overflow-hidden lg:pt-12 lg:py-24">
|
||||||
|
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
|
||||||
|
{#await promise}
|
||||||
|
<p class="text-center w-full">{$_('imprint-loading')}</p>
|
||||||
|
{:then}
|
||||||
|
<div class="simplecontent">
|
||||||
|
{@html html}
|
||||||
|
</div>
|
||||||
|
{:catch error}
|
||||||
|
<div
|
||||||
|
class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
|
||||||
|
<span class="inline-block align-middle mr-8">
|
||||||
|
<b class="capitalize">{$_('general_promise_error')}</b>
|
||||||
|
{error}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
{/await}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<Footer />
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<script>
|
||||||
|
import { _, getLocaleFromNavigator } from "svelte-i18n";
|
||||||
|
import * as css from "./simple.css";
|
||||||
|
import marked from "marked";
|
||||||
|
import Footer from "./Footer.svelte";
|
||||||
|
let html = "";
|
||||||
|
async function load() {
|
||||||
|
let md = await fetch("/privacy_" + getLocaleFromNavigator() + ".md");
|
||||||
|
if (!md.ok) {
|
||||||
|
md = await fetch("/privacy_en.md");
|
||||||
|
}
|
||||||
|
html = marked(await md.text());
|
||||||
|
}
|
||||||
|
const promise = load();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="pt-12 px-4 sm:px-6 lg:px-8 lg:pt-20 bg-gray-900 pb-12">
|
||||||
|
<div class="text-center mb-8">
|
||||||
|
<h1
|
||||||
|
class="mt-9 font-display text-4xl leading-none font-semibold text-white sm:text-5xl lg:text-6xl">
|
||||||
|
{$_('privacy')}
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="pt-0 pb-16 overflow-hidden lg:pt-12 lg:py-24">
|
||||||
|
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
|
||||||
|
{#await promise}
|
||||||
|
<p class="text-center w-full">{$_('privacy-loading')}</p>
|
||||||
|
{:then}
|
||||||
|
<div class="simplecontent">
|
||||||
|
{@html html}
|
||||||
|
</div>
|
||||||
|
{:catch error}
|
||||||
|
<div
|
||||||
|
class="text-white px-6 py-4 border-0 rounded relative mb-4 bg-red-500">
|
||||||
|
<span class="inline-block align-middle mr-8">
|
||||||
|
<b class="capitalize">{$_('general_promise_error')}</b>
|
||||||
|
{error}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
{/await}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<Footer />
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
.simplecontent *{margin:0;padding:0}.simplecontent address,.simplecontent area,.simplecontent article,.simplecontent aside,.simplecontent audio,.simplecontent blockquote,.simplecontent datalist,.simplecontent details,.simplecontent dl,.simplecontent fieldset,.simplecontent figure,.simplecontent form,.simplecontent iframe,.simplecontent img,.simplecontent input,.simplecontent meter,.simplecontent nav,.simplecontent ol,.simplecontent optgroup,.simplecontent option,.simplecontent output,.simplecontent p,.simplecontent pre,.simplecontent progress,.simplecontent ruby,.simplecontent section,.simplecontent table,.simplecontent textarea,.simplecontent ul,.simplecontent video{margin-bottom:1rem}.simplecontent button,.simplecontent html,.simplecontent input,.simplecontent select{font-family:var(--nc-font-sans)}.simplecontent body{margin:0 auto;max-width:750px;padding:2rem;border-radius:6px;overflow-x:hidden;word-break:break-word;overflow-wrap:break-word;background:var(--nc-bg-1);color:var(--nc-tx-2);font-size:1.03rem;line-height:1.5}.simplecontent h1,.simplecontent h2,.simplecontent h3,.simplecontent h4,.simplecontent h5,.simplecontent h6{line-height:1;color:var(--nc-tx-1);padding-top:.875rem}.simplecontent h1,.simplecontent h2,.simplecontent h3{color:var(--nc-tx-1);padding-bottom:2px;margin-bottom:8px;border-bottom:1px solid var(--nc-bg-2)}.simplecontent h4,.simplecontent h5,.simplecontent h6{margin-bottom:.3rem}.simplecontent h1{font-size:2.25rem}.simplecontent h2{font-size:1.85rem}.simplecontent h3{font-size:1.55rem}.simplecontent h4{font-size:1.25rem}.simplecontent h5{font-size:1rem}.simplecontent h6{font-size:.875rem}.simplecontent a{color:#3d5af1}.simplecontent a:hover{color:var(--nc-lk-2)}.simplecontent abbr:hover{cursor:help}.simplecontent blockquote{padding:1.5rem;background:#ddd;border-left:5px solid var(--nc-bg-3)}.simplecontent abbr{cursor:help}.simplecontent blockquote :last-child{padding-bottom:0;margin-bottom:0}.simplecontent header{background:#ddd;border-bottom:1px solid var(--nc-bg-3);padding:2rem 1.5rem;margin:-2rem calc(0px - (50vw - 50%)) 2rem;padding-left:calc(50vw - 50%);padding-right:calc(50vw - 50%)}.simplecontent header h1,.simplecontent header h2,.simplecontent header h3{padding-bottom:0;border-bottom:0}.simplecontent header>:first-child{margin-top:0;padding-top:0}.simplecontent header>:last-child{margin-bottom:0}.simplecontent a button,.simplecontent button,.simplecontent input[type=button],.simplecontent input[type=reset],.simplecontent input[type=submit]{font-size:1rem;display:inline-block;padding:6px 12px;text-align:center;text-decoration:none;white-space:nowrap;background:#3d5af1;color:var(--nc-lk-tx);border:0;border-radius:4px;box-sizing:border-box;cursor:pointer;color:var(--nc-lk-tx)}.simplecontent a button[disabled],.simplecontent button[disabled],.simplecontent input[type=button][disabled],.simplecontent input[type=reset][disabled],.simplecontent input[type=submit][disabled]{cursor:default;opacity:.5;cursor:not-allowed}.simplecontent .button:focus,.simplecontent .button:hover,.simplecontent button:focus,.simplecontent button:hover,.simplecontent input[type=button]:focus,.simplecontent input[type=button]:hover,.simplecontent input[type=reset]:focus,.simplecontent input[type=reset]:hover,.simplecontent input[type=submit]:focus,.simplecontent input[type=submit]:hover{background:var(--nc-lk-2)}.simplecontent code,.simplecontent kbd,.simplecontent pre,.simplecontent samp{font-family:var(--nc-font-mono)}.simplecontent code,.simplecontent kbd,.simplecontent pre,.simplecontent samp{background:#ddd;border:1px solid var(--nc-bg-3);border-radius:4px;padding:3px 6px;font-size:.9rem}.simplecontent kbd{border-bottom:3px solid var(--nc-bg-3)}.simplecontent pre{padding:1rem 1.4rem;max-width:100%;overflow:auto}.simplecontent pre code{background:inherit;font-size:inherit;color:inherit;border:0;padding:0;margin:0}.simplecontent code pre{display:inline;background:inherit;font-size:inherit;color:inherit;border:0;padding:0;margin:0}.simplecontent details{padding:.6rem 1rem;background:#ddd;border:1px solid var(--nc-bg-3);border-radius:4px}.simplecontent summary{cursor:pointer;font-weight:700}.simplecontent details[open]{padding-bottom:.75rem}.simplecontent details[open] summary{margin-bottom:6px}.simplecontent details[open]>:last-child{margin-bottom:0}.simplecontent dt{font-weight:700}.simplecontent dd::before{content:"→ "}.simplecontent hr{border:0;border-bottom:1px solid var(--nc-bg-3);margin:1rem auto}.simplecontent fieldset{margin-top:1rem;padding:2rem;border:1px solid var(--nc-bg-3);border-radius:4px}.simplecontent legend{padding:auto .5rem}.simplecontent table{border-collapse:collapse;width:100%}.simplecontent td,.simplecontent th{border:1px solid var(--nc-bg-3);text-align:left;padding:.5rem}.simplecontent th{background:#ddd}.simplecontent tr:nth-child(even){background:#ddd}.simplecontent table caption{font-weight:700;margin-bottom:.5rem}.simplecontent textarea{max-width:100%}.simplecontent ol,.sLine truncated
|
||||||
@@ -96,6 +96,8 @@
|
|||||||
"icon-image-credits": "We also want to thank these projects for illustrations and icons:",
|
"icon-image-credits": "We also want to thank these projects for illustrations and icons:",
|
||||||
"import-runners": "Import runners",
|
"import-runners": "Import runners",
|
||||||
"import__target-organization": "Target Organization",
|
"import__target-organization": "Target Organization",
|
||||||
|
"imprint": "Imprint 🧾",
|
||||||
|
"imprint-loading": "Imprint loading...",
|
||||||
"installed-version": "Installed version",
|
"installed-version": "Installed version",
|
||||||
"invalid-mail-reset": "the provided email is invalid",
|
"invalid-mail-reset": "the provided email is invalid",
|
||||||
"last-name": "Last name",
|
"last-name": "Last name",
|
||||||
@@ -126,6 +128,8 @@
|
|||||||
"please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file",
|
"please-provide-the-required-csv-xlsx-file": "Please provide the required csv/ xlsx file",
|
||||||
"please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.",
|
"please-provide-the-required-information-to-add-a-new-runner": "Please provide the required information to add a new runner.",
|
||||||
"please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.",
|
"please-provide-the-required-information-to-add-a-new-track": "Please provide the required information to add a new track.",
|
||||||
|
"privacy": "Privacy 🔒",
|
||||||
|
"privacy-loading": "Privacy loading...",
|
||||||
"profile-picture": "Profile Picture",
|
"profile-picture": "Profile Picture",
|
||||||
"read-license": "Read License",
|
"read-license": "Read License",
|
||||||
"register": "Register",
|
"register": "Register",
|
||||||
|
|||||||
Reference in new issue
Block a user