Erweiterungen

This commit is contained in:
2025-08-28 10:57:19 +02:00
parent c95cd93d75
commit a95d579e37
2 changed files with 31 additions and 0 deletions

View File

@@ -34,6 +34,9 @@ public class AppUser {
@org.springframework.data.mongodb.core.index.Indexed(unique = true)
private String email;
@Field("password")
private String password;
@Field("geraet")
private String geraet;

View File

@@ -11,6 +11,7 @@ import com.vaadin.flow.component.notification.Notification;
import com.vaadin.flow.component.orderedlayout.FlexComponent;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.textfield.PasswordField;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.data.binder.Binder;
import com.vaadin.flow.data.binder.ValidationException;
@@ -39,6 +40,8 @@ public class AddAppUserView extends VerticalLayout {
private final TextField phoneField = new TextField("Telefon (Mobil)");
private final TextField appCodeField = new TextField("App-Code");
private final TextField emailField = new TextField("E-Mail-Adresse");
private final PasswordField passwordField = new PasswordField("Passwort");
private final PasswordField confirmPasswordField = new PasswordField("Passwort wiederholen");
private final ComboBox<AppDevice> deviceComboBox = new ComboBox<>("Endgerät");
@Autowired
@@ -101,6 +104,10 @@ public class AddAppUserView extends VerticalLayout {
phoneField.setWidthFull();
appCodeField.setWidthFull();
emailField.setWidthFull();
passwordField.setWidthFull();
passwordField.setRequired(true);
confirmPasswordField.setWidthFull();
confirmPasswordField.setRequired(true);
// Configure device dropdown
// Geräteauswahl vorbereiten
@@ -116,6 +123,8 @@ public class AddAppUserView extends VerticalLayout {
formLayout.add(phoneField);
formLayout.add(appCodeField);
formLayout.add(emailField);
formLayout.add(passwordField);
formLayout.add(confirmPasswordField);
formLayout.add(deviceComboBox);
contentContainer.add(formLayout);
@@ -144,6 +153,19 @@ public class AddAppUserView extends VerticalLayout {
binder.forField(phoneField).bind(AppUser::getTelefon, AppUser::setTelefon);
binder.forField(appCodeField).bind(AppUser::getAppCode, AppUser::setAppCode);
binder.forField(emailField).bind(AppUser::getEmail, AppUser::setEmail);
binder.forField(passwordField)
.asRequired("Passwort ist erforderlich")
.bind(AppUser::getPassword, AppUser::setPassword);
// Confirm password field validation
binder.forField(confirmPasswordField)
.asRequired("Passwort wiederholen ist erforderlich")
.withValidator(confirmPassword -> confirmPassword.equals(passwordField.getValue()),
"Passwörter stimmen nicht überein")
.bind(
appUser -> "", // Dummy getter - this field is not stored
(appUser, value) -> {} // Dummy setter - this field is not stored
);
binder.forField(deviceComboBox)
.asRequired("Bitte ein Gerät auswählen")
.bind(
@@ -204,6 +226,12 @@ public class AddAppUserView extends VerticalLayout {
// Fill email field
emailField.setValue("max.mustermann@example.com");
// Fill password field
passwordField.setValue("testpassword123");
// Fill confirm password field
confirmPasswordField.setValue("testpassword123");
// Set device to iPhone
// deviceComboBox.setValue("iPhone"); // This line is removed as deviceComboBox is now a ComboBox<AppDevice>
}