adjust imprint, remove comments
This commit is contained in:
@@ -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")
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
& Datenschutz</a>
|
& 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!';
|
||||||
|
|||||||
Reference in New Issue
Block a user