It appears you've shared a list of files that have been modified or created in various directories within a project structure. Here's how I'd interpret and categorize this information using Gitmoji emojis:

This commit is contained in:
2025-06-19 11:59:52 +02:00
parent 9bf89f8ddb
commit 0b9f3596bb
120 changed files with 569 additions and 4 deletions

View File

@ -200,22 +200,43 @@
<div class="validation-message hidden mt-2 text-sm text-red-500"></div>
</div>
<!-- Benutzername (automatisch generiert, aber editierbar) -->
<div class="form-field-premium">
<label for="username" class="block text-sm font-semibold text-slate-900 dark:text-white mb-3 transition-colors duration-300">
<svg class="w-4 h-4 inline mr-2 text-blue-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"/>
</svg>
Benutzername *
</label>
<input type="text"
id="username"
name="username"
required
class="input-premium w-full px-4 py-3 rounded-xl focus:outline-none transition-all duration-300 text-slate-900 dark:text-white placeholder-slate-500 dark:placeholder-slate-400"
placeholder="z.B. max.mustermann"
data-validation="username">
<div class="validation-message mt-2 text-sm text-gray-500">
Wird automatisch aus der E-Mail-Adresse generiert, kann aber angepasst werden
</div>
</div>
<!-- Vollständiger Name -->
<div class="form-field-premium">
<label for="name" class="block text-sm font-semibold text-slate-900 dark:text-white mb-3 transition-colors duration-300">
<svg class="w-4 h-4 inline mr-2 text-blue-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
</svg>
Vollständiger Name
Vollständiger Name *
</label>
<input type="text"
id="name"
name="name"
required
class="input-premium w-full px-4 py-3 rounded-xl focus:outline-none transition-all duration-300 text-slate-900 dark:text-white placeholder-slate-500 dark:placeholder-slate-400"
placeholder="Max Mustermann"
data-validation="name">
<div class="validation-message hidden mt-2 text-sm text-gray-500">
Optional: Wird für die Anzeige im System verwendet
Vollständiger Name für die Anzeige im System
</div>
</div>
</div>
@ -469,6 +490,46 @@ document.addEventListener('DOMContentLoaded', function() {
}
});
// Benutzername automatisch aus E-Mail generieren
function generateUsername(email) {
if (!email || !email.includes('@')) return '';
// Nimm den Teil vor dem @ und bereinige ihn
let username = email.split('@')[0];
// Entferne ungültige Zeichen und ersetze sie durch Punkte
username = username.replace(/[^a-zA-Z0-9._-]/g, '.');
// Entferne doppelte Punkte
username = username.replace(/\.{2,}/g, '.');
// Entferne Punkte am Anfang und Ende
username = username.replace(/^\.+|\.+$/g, '');
// Stelle sicher, dass der Benutzername mindestens 3 Zeichen hat
if (username.length < 3) {
username = email.split('@')[0] + '123';
}
return username.toLowerCase();
}
// E-Mail-Eingabe überwachen für automatische Benutzername-Generierung
emailInput.addEventListener('input', function() {
const usernameInput = document.getElementById('username');
const generatedUsername = generateUsername(this.value);
// Nur automatisch setzen, wenn das Feld leer ist oder der bisherige Wert automatisch generiert war
if (!usernameInput.dataset.manuallyEdited && generatedUsername) {
usernameInput.value = generatedUsername;
}
});
// Markiere Benutzername als manuell bearbeitet, wenn der Benutzer ihn ändert
document.getElementById('username').addEventListener('input', function() {
this.dataset.manuallyEdited = 'true';
});
// E-Mail-Validierung
function validateEmail(email) {
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;