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">
|
||||
<span>Version {{ globalProps.version }}</span>
|
||||
<span class="footer-hide-mobile">mareike – Modernes Anmeldesystem und richtig einfache Kostenerfassung</span>
|
||||
<span>Impressum</span>
|
||||
<span>Datenschutzerklärung</span>
|
||||
<a href="/impress" class="footer-link">Impressum</a>
|
||||
<a href="/gdpr" class="footer-link">Datenschutzerklärung</a>
|
||||
<span>© 2022 – 2026</span>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -407,6 +407,15 @@ const props = defineProps({
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.footer-link {
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.footer-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* ─── Direktlink zum aktuellen Event ─── */
|
||||
.current-event-link {
|
||||
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/Budget/Routes/web.php';
|
||||
require_once __DIR__ . '/../app/Domains/Budget/Routes/api.php';
|
||||
require_once __DIR__ . '/../app/Domains/Legal/Routes/web.php';
|
||||
|
||||
|
||||
Route::get('/LKvDUqWl', function () {
|
||||
|
||||
Reference in New Issue
Block a user