adjust imprint, remove comments

This commit is contained in:
2025-09-22 09:15:24 +02:00
parent abf66e0bf9
commit 637f699aa4
3 changed files with 16 additions and 36 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>de.champonthis</groupId> <groupId>de.champonthis</groupId>
<artifactId>abi</artifactId> <artifactId>abi</artifactId>
<version>0.2.4</version> <version>0.2.5</version>
<name>abi</name> <name>abi</name>
<parent> <parent>
@@ -13,7 +13,6 @@ public class ContactDataRequest {
@NotBlank(message = "email must not be empty") @NotBlank(message = "email must not be empty")
@Email(message = "Invalid email format") @Email(message = "Invalid email format")
private String email; private String email;
// Accept empty or valid phone number
@Pattern(regexp = "^$|^(\\+49|0)[1-9][0-9]{7,14}$", message = "Invalid phone number") @Pattern(regexp = "^$|^(\\+49|0)[1-9][0-9]{7,14}$", message = "Invalid phone number")
private String phone; private String phone;
@NotBlank(message = "reportedBy must not be empty") @NotBlank(message = "reportedBy must not be empty")
+15 -34
View File
@@ -1,15 +1,15 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="http://www.thymeleaf.org">
<script> <script>
(() => { (() => {
const isDark = localStorage.getItem('darkMode') === 'true' || const isDark = localStorage.getItem('darkMode') === 'true' ||
(localStorage.getItem('darkMode') === null && (localStorage.getItem('darkMode') === null &&
window.matchMedia('(prefers-color-scheme: dark)').matches); window.matchMedia('(prefers-color-scheme: dark)').matches);
if (isDark) { if (isDark) {
document.documentElement.setAttribute('data-bs-theme', 'dark'); document.documentElement.setAttribute('data-bs-theme', 'dark');
} }
})(); })();
</script> </script>
<head> <head>
@@ -47,7 +47,6 @@
</p> </p>
</div> </div>
</div> </div>
<!-- Stepper -->
<div class="d-flex justify-content-center align-items-center mb-4 flex-wrap"> <div class="d-flex justify-content-center align-items-center mb-4 flex-wrap">
<div class="d-flex align-items-center flex-wrap"> <div class="d-flex align-items-center flex-wrap">
<div class="rounded-circle border border-2 d-flex justify-content-center align-items-center" <div class="rounded-circle border border-2 d-flex justify-content-center align-items-center"
@@ -84,7 +83,6 @@
</div> </div>
<div class="card shadow"> <div class="card shadow">
<div class="card-body"> <div class="card-body">
<!-- Step 1 -->
<div id="step1" x-show="step === 1" x-transition> <div id="step1" x-show="step === 1" x-transition>
<h2 class="h5 mb-3"> <h2 class="h5 mb-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
@@ -147,7 +145,6 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Step 2 -->
<div id="step2" x-show="step === 2" x-transition> <div id="step2" x-show="step === 2" x-transition>
<h2 class="h5 mb-3"> <h2 class="h5 mb-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
@@ -184,7 +181,6 @@
</div> </div>
</form> </form>
</div> </div>
<!-- Step 3 -->
<div id="step3" x-show="step === 3" x-transition> <div id="step3" x-show="step === 3" x-transition>
<h2 class="h5 mb-3"> <h2 class="h5 mb-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
@@ -243,7 +239,6 @@
</svg></button> </svg></button>
</div> </div>
</div> </div>
<!-- Step 4 -->
<div id="step4" x-show="step === 4" x-transition> <div id="step4" x-show="step === 4" x-transition>
<h2 class="h5 mb-3"> <h2 class="h5 mb-3">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
@@ -289,7 +284,7 @@
&amp; Datenschutz</a> &amp; Datenschutz</a>
<div class="spacer"></div> <div class="spacer"></div>
<!-- Dark Mode Toggle -->
<button class="dark-mode-toggle" @click="toggleDarkMode()" <button class="dark-mode-toggle" @click="toggleDarkMode()"
:title="darkMode ? 'Switch to light mode' : 'Switch to dark mode'"> :title="darkMode ? 'Switch to light mode' : 'Switch to dark mode'">
<svg x-show="!darkMode" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" <svg x-show="!darkMode" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24"
@@ -306,7 +301,6 @@
</button> </button>
</footer> </footer>
<!-- Imprint Modal -->
<div class="modal fade" :class="{'show': showImprint, 'd-block': showImprint}" x-transition.opacity> <div class="modal fade" :class="{'show': showImprint, 'd-block': showImprint}" x-transition.opacity>
<div class="modal-dialog modal-lg modal-dialog-scrollable"> <div class="modal-dialog modal-lg modal-dialog-scrollable">
<div class="modal-content"> <div class="modal-content">
@@ -334,7 +328,8 @@
<h5>Haftung für Links</h5> <h5>Haftung für Links</h5>
<p> <p>
Auf dieser Seite findest Du Links zu externen Webseiten Dritter, auf deren Inhalte ich keinen Auf dieser Seite kannst Du Links zu externen Webseiten Dritter finden, auf deren Inhalte ich
keinen
Einfluss habe. Einfluss habe.
Deshalb kann ich für diese fremden Inhalte auch keine Gewähr übernehmen. Deshalb kann ich für diese fremden Inhalte auch keine Gewähr übernehmen.
</p> </p>
@@ -365,11 +360,11 @@
Deine angegebenen Kontaktdaten werden ausschließlich genutzt, um Dich im Rahmen des Deine angegebenen Kontaktdaten werden ausschließlich genutzt, um Dich im Rahmen des
Abiturjahrgangs Abiturjahrgangs
2007 zu 2007 zu
kontaktieren und werden nicht an Dritte weitergegeben. kontaktieren und werden nicht an Dritte wefindestitergegeben.
</p> </p>
<h5>E-Mail-Bestätigungen und Einladungen</h5> <h5>E-Mail-Bestätigungen und Einladungen</h5>
<p> <p>
Wenn du deine E-Mail-Adresse angibst, bekommst du von mir Bestätigungen zu deiner Anmeldung und Wenn du deine E-Mail-Adresse angibst, bekommst du Bestätigungen zu deiner Anmeldung und
Einladungen oder Infos rund ums Abi-Treffen per E-Mail. Deine Adresse wird nicht für Werbung Einladungen oder Infos rund ums Abi-Treffen per E-Mail. Deine Adresse wird nicht für Werbung
genutzt und nicht weitergegeben. genutzt und nicht weitergegeben.
</p> </p>
@@ -394,9 +389,7 @@
<p> <p>
Du hast grundsätzlich das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung, Du hast grundsätzlich das Recht auf Auskunft, Berichtigung, Löschung, Einschränkung,
Datenübertragbarkeit, Datenübertragbarkeit,
Widerruf und Widerspruch. Wenn Du glaubst, dass die Verarbeitung Deiner Daten gegen das Widerruf und Widerspruch.
Datenschutzrecht
verstößt, kannst Du Dich bei der Aufsichtsbehörde beschweren.
</p> </p>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
@@ -409,16 +402,12 @@
<script> <script>
function app() { function app() {
return { return {
// Dark mode
darkMode: false, darkMode: false,
// Modal state
showImprint: false, showImprint: false,
// Step state
step: 1, step: 1,
stepMsg: '', stepMsg: '',
stepMsgType: '', stepMsgType: '',
working: false, working: false,
// Step 1
yourName: '', yourName: '',
altNameChecked: false, altNameChecked: false,
altName: '[[${altName}]]', altName: '[[${altName}]]',
@@ -426,26 +415,20 @@
userName: '[[${userName}]]', userName: '[[${userName}]]',
userToken: '[[${token}]]', userToken: '[[${token}]]',
pendingUpdatedName: null, pendingUpdatedName: null,
// Step 2
email: '[[${email}]]', email: '[[${email}]]',
phone: '[[${phone}]]', phone: '[[${phone}]]',
// Step 3
knownContactName: '', knownContactName: '',
knownContactEmail: '', knownContactEmail: '',
knownContactPhone: '', knownContactPhone: '',
showKnownContactData: false, showKnownContactData: false,
enteredContacts: [], enteredContacts: [],
foundKnownContactName: null, foundKnownContactName: null,
// Step 4
committed: '[[${committed}]]', committed: '[[${committed}]]',
// Initialize dark mode
init() { init() {
// Sync with the theme already applied to prevent mismatch
const isDarkApplied = document.documentElement.getAttribute('data-bs-theme') === 'dark'; const isDarkApplied = document.documentElement.getAttribute('data-bs-theme') === 'dark';
this.darkMode = isDarkApplied; this.darkMode = isDarkApplied;
// Listen for system theme changes
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
if (localStorage.getItem('darkMode') === null) { if (localStorage.getItem('darkMode') === null) {
this.darkMode = e.matches; this.darkMode = e.matches;
@@ -458,7 +441,6 @@
localStorage.setItem('darkMode', this.darkMode.toString()); localStorage.setItem('darkMode', this.darkMode.toString());
}, },
// Methods
async findSelf() { async findSelf() {
this.stepMsg = ''; this.stepMsg = '';
this.stepMsgType = ''; this.stepMsgType = '';
@@ -477,7 +459,6 @@
} else if (resp.status === 208) { } else if (resp.status === 208) {
this.stepMsg = 'Du hast deine Daten schon eingetragen. Danke dir!'; this.stepMsg = 'Du hast deine Daten schon eingetragen. Danke dir!';
this.stepMsgType = 'info'; this.stepMsgType = 'info';
// Prevent showing greeting/alt name UI
this.userName = null; this.userName = null;
} else { } else {
this.stepMsg = 'Uups, da ist was schiefgelaufen. Versuch es gleich nochmal!'; this.stepMsg = 'Uups, da ist was schiefgelaufen. Versuch es gleich nochmal!';