Issue #17 Added imprint and privacy policy page and added englisch language support to it.
imprint still unfinished
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
<title data-i18n="pageTitle">Dashboard</title>
|
||||
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/dashboard.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -226,6 +227,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
|
||||
<aside class="sidebar settings-sidebar" id="settingsSidebar" aria-hidden="true">
|
||||
<div class="sidebar-header">
|
||||
<h3 id="settingsSidebarTitle" data-i18n="settingsSidebarTitle">Brett-Einstellungen</h3>
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-i18n="pageTitle">Impressum</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/legal.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body data-legal-page="imprint">
|
||||
<header class="legal-header">
|
||||
<nav class="legal-nav">
|
||||
<a class="brand" href="{{ url_for('main.home') }}">
|
||||
<span class="brand-mark">♛</span>
|
||||
<span data-i18n="navBrand">8-Damen- und 8-Türme Solver</span>
|
||||
</a>
|
||||
|
||||
<div class="legal-nav-links">
|
||||
<button class="lang-switch" id="langSwitch" type="button" aria-label="Sprache wechseln">DE</button>
|
||||
<a href="{{ url_for('main.home') }}" data-i18n="navHome">Startseite</a>
|
||||
{% if current_user.is_authenticated %}
|
||||
<a href="{{ url_for('main.dashboard') }}" data-i18n="navDashboard">Dashboard</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('login.login') }}" data-i18n="navLogin">Login</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main class="legal-main">
|
||||
<section class="legal-hero">
|
||||
<p class="legal-eyebrow" data-i18n="heroEyebrow">Rechtliche Hinweise</p>
|
||||
<h1 data-i18n="heroTitle">Impressum</h1>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="contactTitle">Kontakt</h2>
|
||||
<p>
|
||||
<strong data-i18n="contactName">Jérôme Bachmann</strong><br>
|
||||
<span data-i18n="contactEmailLabel">E-Mail:</span> jerome.bachmann@bachmannj.ch<br>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="projectResponsibilityTitle">Projektverantwortung</h2>
|
||||
<p data-i18n="projectResponsibilityText">
|
||||
Dieses Webprojekt wurde im Rahmen eines Schulprojekts zum Acht-Damen- und Acht-Türme-Problem
|
||||
erstellt. Inhaltlich verantwortlich ist die jeweils oben genannte verantwortliche Stelle.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="contentLiabilityTitle">Haftung für Inhalte</h2>
|
||||
<p data-i18n="contentLiabilityText">
|
||||
Die Inhalte dieser Website wurden mit Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und
|
||||
Aktualität der Inhalte kann jedoch keine Gewähr übernommen werden. Bei Bekanntwerden von
|
||||
Rechtsverletzungen werden entsprechende Inhalte umgehend überarbeitet oder entfernt.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="linksLiabilityTitle">Haftung fuer Links</h2>
|
||||
<p data-i18n="linksLiabilityText">
|
||||
Diese Website kann Links zu externen Angeboten enthalten. Fuer deren Inhalte sind ausschliesslich die
|
||||
jeweiligen Betreiber verantwortlich. Eine permanente inhaltliche Kontrolle verlinkter Seiten ist ohne
|
||||
konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="versionTitle">Stand</h2>
|
||||
<p data-i18n="versionText">Stand dieser Vorlage: April 2026</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
<script src="{{ url_for('static', filename='js/legal.js') }}" defer></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -6,6 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-i18n="meta.title">8-Damen- und 8-Tuerme Solver</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -184,10 +185,12 @@
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
|
||||
<script>
|
||||
window.LANDING_INITIAL_LANGUAGE = "{{ initial_language }}";
|
||||
</script>
|
||||
<script src="{{ url_for('static', filename='js/index.js') }}"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Login</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/login.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -50,6 +51,8 @@
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
|
||||
<script src="{{ url_for('static', filename='js/login.js') }}" defer></script>
|
||||
</body>
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-i18n="pageTitle">Login Settings</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/login.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/qrcodejs/1.0.0/qrcode.min.js" defer></script>
|
||||
</head>
|
||||
|
||||
@@ -152,6 +153,8 @@
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
|
||||
<script src="{{ url_for('static', filename='js/login.js') }}" defer></script>
|
||||
</body>
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<footer class="page-footer">
|
||||
<div class="page-footer-inner">
|
||||
<div class="page-footer-copy">
|
||||
<p class="page-footer-text" data-i18n="footerText">Schulprojekt rund um das Acht-Damen- und Acht-Türme-Problem.</p>
|
||||
</div>
|
||||
|
||||
<nav class="page-footer-links" data-i18n-aria-label="footerNavAria" aria-label="Rechtliche Hinweise">
|
||||
<a href="{{ url_for('main.privacy_policy') }}" data-i18n="footerPrivacy">Datenschutzerklärung</a>
|
||||
<a href="{{ url_for('main.imprint') }}" data-i18n="footerImprint">Impressum</a>
|
||||
</nav>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-i18n="pageTitle">Datenschutzerklärung</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/legal.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body data-legal-page="privacy">
|
||||
<header class="legal-header">
|
||||
<nav class="legal-nav">
|
||||
<a class="brand" href="{{ url_for('main.home') }}">
|
||||
<span class="brand-mark">♛</span>
|
||||
<span data-i18n="navBrand">8-Damen- und 8-Türme Solver</span>
|
||||
</a>
|
||||
|
||||
<div class="legal-nav-links">
|
||||
<button class="lang-switch" id="langSwitch" type="button" aria-label="Sprache wechseln">DE</button>
|
||||
<a href="{{ url_for('main.home') }}" data-i18n="navHome">Startseite</a>
|
||||
{% if current_user.is_authenticated %}
|
||||
<a href="{{ url_for('main.dashboard') }}" data-i18n="navDashboard">Dashboard</a>
|
||||
{% else %}
|
||||
<a href="{{ url_for('login.login') }}" data-i18n="navLogin">Login</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main class="legal-main">
|
||||
<section class="legal-hero">
|
||||
<p class="legal-eyebrow" data-i18n="heroEyebrow">Rechtliche Hinweise</p>
|
||||
<h1 data-i18n="heroTitle">Datenschutzerklärung</h1>
|
||||
<p class="legal-lead" data-i18n="heroLead">
|
||||
Diese Seite beschreibt, welche personenbezogenen Daten im Rahmen dieses Schulprojekts verarbeitet
|
||||
werden.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="dataProcessedTitle">1. Welche Daten verarbeitet werden</h2>
|
||||
<p data-i18n="dataProcessedText">Im Rahmen der Nutzung dieser Webanwendung können insbesondere folgende
|
||||
Daten verarbeitet werden:</p>
|
||||
<ul class="legal-list">
|
||||
<li data-i18n="dataProcessedItem1">Benutzername und verschlüsseltes Passwort bei der Registrierung und
|
||||
beim Login</li>
|
||||
<li data-i18n="dataProcessedItem2">Daten zur Zwei-Faktor-Authentifizierung, falls diese freiwillig
|
||||
aktiviert wird</li>
|
||||
<li data-i18n="dataProcessedItem3">gespeicherte Spielstände, Notizen, Schrittzahlen, Zeiten und
|
||||
Favoriten</li>
|
||||
<li data-i18n="dataProcessedItem4">technische Verbindungsdaten, die durch den Server oder das Hosting
|
||||
entstehen koennen</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="processingPurposeTitle">3. Zweck der Verarbeitung</h2>
|
||||
<p data-i18n="processingPurposeText">Die Verarbeitung erfolgt, um die Funktionen dieser Anwendung
|
||||
bereitzustellen. Dazu gehoeren insbesondere:
|
||||
</p>
|
||||
<ul class="legal-list">
|
||||
<li data-i18n="processingPurposeItem1">Erstellung und Verwaltung von Benutzerkonten</li>
|
||||
<li data-i18n="processingPurposeItem2">sicherer Login in das persönliche Dashboard</li>
|
||||
<li data-i18n="processingPurposeItem3">optionale Absicherung des Kontos per Authenticator-App</li>
|
||||
<li data-i18n="processingPurposeItem4">Speichern und Laden von Spielständen</li>
|
||||
<li data-i18n="processingPurposeItem5">technischer Betrieb, Fehleranalyse und Missbrauchsschutz</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="legalBasisTitle">4. Rechtsgrundlage</h2>
|
||||
<p data-i18n="legalBasisText">
|
||||
Soweit personenbezogene Daten verarbeitet werden, erfolgt dies in der Regel zur Bereitstellung der
|
||||
Anwendung und ihrer Funktionen sowie aufgrund des berechtigten Interesses an einem sicheren und
|
||||
funktionsfaehigen Webangebot. Falls eine ausdrückliche Einwilligung erforderlich ist, wird diese
|
||||
gesondert eingeholt.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="storageTitle">5. Speicherung und Löschung</h2>
|
||||
<p data-i18n="storageText">
|
||||
Personenbezogene Daten werden nur so lange gespeichert, wie sie für den jeweiligen Zweck benötigt
|
||||
werden. Benutzerkonten und zugehörige Spielstände bleiben grundsätzlich gespeichert, bis sie
|
||||
gelöscht oder für das Projekt nicht mehr benötigt werden.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="thirdPartyTitle">6. Weitergabe an Dritte</h2>
|
||||
<p data-i18n="thirdPartyText">
|
||||
Eine Weitergabe personenbezogener Daten erfolgt nur, wenn dies für den Betrieb der Anwendung
|
||||
erforderlich ist, etwa durch einen Hosting-Anbieter oder technische Dienstleister. Ansonsten werden
|
||||
keine Daten weitergegeben.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="rightsTitle">7. Rechte betroffener Personen</h2>
|
||||
<p data-i18n="rightsText">Betroffene Personen haben im Rahmen des anwendbaren Datenschutzrechts insbesondere
|
||||
das Recht auf:</p>
|
||||
<ul class="legal-list">
|
||||
<li data-i18n="rightsItem1">Auskunft über die verarbeiteten personenbezogenen Daten</li>
|
||||
<li data-i18n="rightsItem2">Berichtigung unrichtiger Daten</li>
|
||||
<li data-i18n="rightsItem3">Löschung oder Einschraenkung der Verarbeitung</li>
|
||||
<li data-i18n="rightsItem4">Widerspruch gegen die Verarbeitung</li>
|
||||
<li data-i18n="rightsItem5">Herausgabe der bereitgestellten Daten, soweit anwendbar</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="securityTitle">8. Datensicherheit</h2>
|
||||
<p data-i18n="securityText">
|
||||
Es werden technische und organisatorische Massnahmen getroffen, um gespeicherte Daten vor Verlust,
|
||||
Missbrauch oder unberechtigtem Zugriff zu schuetzen. Dazu gehoeren insbesondere passwortgeschuetzte
|
||||
Konten und die Möglichkeit, Zwei-Faktor-Authentifizierung zu aktivieren.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section class="legal-card">
|
||||
<h2 data-i18n="versionTitle">9. Stand</h2>
|
||||
<p data-i18n="versionText">Stand dieser Vorlage: April 2026</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
<script src="{{ url_for('static', filename='js/legal.js') }}" defer></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -6,6 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Sign Up</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/login.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -51,6 +52,8 @@
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
|
||||
<script src="{{ url_for('static', filename='js/login.js') }}" defer></script>
|
||||
</body>
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Verify Login</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/login.css') }}">
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/footer.css') }}">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -48,6 +49,8 @@
|
||||
</section>
|
||||
</main>
|
||||
|
||||
{% include "partials/footer.html" %}
|
||||
|
||||
<script src="{{ url_for('static', filename='js/login.js') }}" defer></script>
|
||||
</body>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user