Added legal data
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Legal\Controllers;
|
||||||
|
|
||||||
|
use App\Providers\InertiaProvider;
|
||||||
|
use App\Scopes\CommonController;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Inertia\Response;
|
||||||
|
|
||||||
|
class GdprController extends CommonController
|
||||||
|
{
|
||||||
|
public function __invoke(Request $request): Response
|
||||||
|
{
|
||||||
|
$inertiaProvider = new InertiaProvider('Legal/LegalPage', [
|
||||||
|
'title' => 'Datenschutzerklärung',
|
||||||
|
'content' => $this->tenant->gdpr_text ?? '',
|
||||||
|
]);
|
||||||
|
return $inertiaProvider->render();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Domains\Legal\Controllers;
|
||||||
|
|
||||||
|
use App\Providers\InertiaProvider;
|
||||||
|
use App\Scopes\CommonController;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Inertia\Response;
|
||||||
|
|
||||||
|
class ImpressController extends CommonController
|
||||||
|
{
|
||||||
|
public function __invoke(Request $request): Response
|
||||||
|
{
|
||||||
|
$inertiaProvider = new InertiaProvider('Legal/LegalPage', [
|
||||||
|
'title' => 'Impressum',
|
||||||
|
'content' => $this->tenant->impress_text ?? '',
|
||||||
|
]);
|
||||||
|
return $inertiaProvider->render();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Domains\Legal\Controllers\ImpressController;
|
||||||
|
use App\Domains\Legal\Controllers\GdprController;
|
||||||
|
use App\Middleware\IdentifyTenant;
|
||||||
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
|
Route::middleware(IdentifyTenant::class)->group(function () {
|
||||||
|
Route::get('/impress', ImpressController::class);
|
||||||
|
Route::get('/gdpr', GdprController::class);
|
||||||
|
});
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
<script setup>
|
||||||
|
import AppLayout from "../../../../resources/js/layouts/AppLayout.vue";
|
||||||
|
import ShadowedBox from "../../../Views/Components/ShadowedBox.vue";
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
title: String,
|
||||||
|
content: String,
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<AppLayout :title="props.title">
|
||||||
|
<ShadowedBox class="legal-page-box">
|
||||||
|
<h2 class="legal-page-title">{{ props.title }}</h2>
|
||||||
|
<div class="legal-page-content" v-html="props.content"></div>
|
||||||
|
</ShadowedBox>
|
||||||
|
</AppLayout>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.legal-page-box {
|
||||||
|
width: 95%;
|
||||||
|
margin: 20px auto;
|
||||||
|
padding: 20px;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-title {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
color: #333;
|
||||||
|
border-bottom: 2px solid #e5e7eb;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-content {
|
||||||
|
line-height: 1.7;
|
||||||
|
color: #374151;
|
||||||
|
word-wrap: break-word;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-content :deep(img) {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-content :deep(table) {
|
||||||
|
width: 100%;
|
||||||
|
overflow-x: auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-content :deep(a) {
|
||||||
|
color: #2563eb;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-content :deep(h1),
|
||||||
|
.legal-page-content :deep(h2),
|
||||||
|
.legal-page-content :deep(h3) {
|
||||||
|
margin-top: 1.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
color: #1f2937;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-content :deep(p) {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 639px) {
|
||||||
|
.legal-page-box {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 16px 12px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal-page-title {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -172,8 +172,8 @@ const props = defineProps({
|
|||||||
<div class="footer-inner">
|
<div class="footer-inner">
|
||||||
<span>Version {{ globalProps.version }}</span>
|
<span>Version {{ globalProps.version }}</span>
|
||||||
<span class="footer-hide-mobile">mareike – Modernes Anmeldesystem und richtig einfache Kostenerfassung</span>
|
<span class="footer-hide-mobile">mareike – Modernes Anmeldesystem und richtig einfache Kostenerfassung</span>
|
||||||
<span>Impressum</span>
|
<a href="/impress" class="footer-link">Impressum</a>
|
||||||
<span>Datenschutzerklärung</span>
|
<a href="/gdpr" class="footer-link">Datenschutzerklärung</a>
|
||||||
<span>© 2022 – 2026</span>
|
<span>© 2022 – 2026</span>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
@@ -407,6 +407,15 @@ const props = defineProps({
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.footer-link {
|
||||||
|
color: #ffffff;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-link:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
/* ─── Direktlink zum aktuellen Event ─── */
|
/* ─── Direktlink zum aktuellen Event ─── */
|
||||||
.current-event-link {
|
.current-event-link {
|
||||||
display: none; /* per Default ausgeblendet – nur auf Mobile sichtbar */
|
display: none; /* per Default ausgeblendet – nur auf Mobile sichtbar */
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ require_once __DIR__ . '/../app/Domains/Event/Routes/web.php';
|
|||||||
require_once __DIR__ . '/../app/Domains/Event/Routes/api.php';
|
require_once __DIR__ . '/../app/Domains/Event/Routes/api.php';
|
||||||
require_once __DIR__ . '/../app/Domains/Budget/Routes/web.php';
|
require_once __DIR__ . '/../app/Domains/Budget/Routes/web.php';
|
||||||
require_once __DIR__ . '/../app/Domains/Budget/Routes/api.php';
|
require_once __DIR__ . '/../app/Domains/Budget/Routes/api.php';
|
||||||
|
require_once __DIR__ . '/../app/Domains/Legal/Routes/web.php';
|
||||||
|
|
||||||
|
|
||||||
Route::get('/LKvDUqWl', function () {
|
Route::get('/LKvDUqWl', function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user