Erweiterungen
This commit is contained in:
@@ -78,7 +78,6 @@ public class AddJobService {
|
||||
.peek(te -> te.setJobId(jobId))
|
||||
.toList();
|
||||
taskRepository.saveAll(prepared);
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,23 +94,6 @@ public class AddJobService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert einen bestehenden Auftrag
|
||||
*/
|
||||
public Job updateJob(Job job) {
|
||||
try {
|
||||
job.setUpdatedAt(LocalDateTime.now());
|
||||
Job updatedJob = jobRepository.save(job);
|
||||
log.info("Auftrag erfolgreich aktualisiert: {}", updatedJob.getJobNumber());
|
||||
return updatedJob;
|
||||
} catch (Exception e) {
|
||||
log.error("Fehler beim Aktualisieren des Auftrags: {}", e.getMessage(), e);
|
||||
throw new RuntimeException("Auftrag konnte nicht aktualisiert werden: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Generiert eine eindeutige Auftragsnummer
|
||||
*/
|
||||
@@ -135,48 +117,6 @@ public class AddJobService {
|
||||
return jobNumber;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Speichert einen Auftrag als Entwurf (für automatisches Speichern)
|
||||
*/
|
||||
public void saveDraft(Job job) {
|
||||
try {
|
||||
// Prüfen ob bereits ein Entwurf für diesen Benutzer existiert
|
||||
String currentUser = securityService.getCurrentUsername();
|
||||
List<Job> existingDrafts = jobRepository.findByCreatedByAndIsDraftTrue(currentUser);
|
||||
|
||||
Job draftJob;
|
||||
if (!existingDrafts.isEmpty()) {
|
||||
// Bestehenden Entwurf aktualisieren
|
||||
draftJob = existingDrafts.getFirst();
|
||||
updateJobFromForm(draftJob, job);
|
||||
draftJob.setUpdatedAt(LocalDateTime.now());
|
||||
} else {
|
||||
// Neuen Entwurf erstellen
|
||||
draftJob = job;
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
draftJob.setCreatedAt(now);
|
||||
draftJob.setUpdatedAt(now);
|
||||
draftJob.setStatus(JobStatus.CREATED);
|
||||
draftJob.setCreatedBy(currentUser);
|
||||
draftJob.setDraft(true);
|
||||
|
||||
// Spezielle Entwurfs-Auftragsnummer
|
||||
draftJob.setJobNumber("DRAFT_" + currentUser.replace("@", "_") + "_" +
|
||||
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")));
|
||||
}
|
||||
|
||||
jobRepository.save(draftJob);
|
||||
|
||||
log.info("Entwurf automatisch gespeichert für Benutzer: {}", currentUser);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("Fehler beim Speichern des Entwurfs: {}", e.getMessage(), e);
|
||||
throw new RuntimeException("Entwurf konnte nicht gespeichert werden: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Aktualisiert einen bestehenden Job mit neuen Formulardaten
|
||||
*/
|
||||
|
||||
@@ -35,11 +35,6 @@ public class PasswordResetService {
|
||||
this.mailUtil = mailUtil;
|
||||
}
|
||||
|
||||
public void initiateReset(String email, UserType userType, String baseUrl) {
|
||||
// existing typed initiation
|
||||
initiateResetInternal(email, userType, baseUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiate reset without asking for user type. Looks up the email in both collections
|
||||
* and only proceeds if it exists in exactly one of them. Otherwise, it silently returns
|
||||
|
||||
@@ -26,9 +26,8 @@ public class ForgetPasswordView extends VerticalLayout implements BeforeEnterObs
|
||||
private String token;
|
||||
private PasswordResetService.UserType userType;
|
||||
|
||||
private PasswordField newPassword;
|
||||
private PasswordField confirmPassword;
|
||||
private Button submit;
|
||||
private final PasswordField newPassword;
|
||||
private final PasswordField confirmPassword;
|
||||
|
||||
public ForgetPasswordView(PasswordResetService passwordResetService) {
|
||||
this.passwordResetService = passwordResetService;
|
||||
@@ -49,7 +48,7 @@ public class ForgetPasswordView extends VerticalLayout implements BeforeEnterObs
|
||||
newPassword = new PasswordField("Neues Passwort");
|
||||
confirmPassword = new PasswordField("Passwort bestätigen");
|
||||
|
||||
submit = new Button("Passwort speichern", e -> onSubmit());
|
||||
Button submit = new Button("Passwort speichern", e -> onSubmit());
|
||||
submit.addThemeVariants(ButtonVariant.LUMO_PRIMARY);
|
||||
|
||||
container.add(title, newPassword, confirmPassword, submit);
|
||||
@@ -59,8 +58,8 @@ public class ForgetPasswordView extends VerticalLayout implements BeforeEnterObs
|
||||
@Override
|
||||
public void beforeEnter(BeforeEnterEvent event) {
|
||||
Map<String, java.util.List<String>> params = event.getLocation().getQueryParameters().getParameters();
|
||||
String tokenParam = params.getOrDefault("token", java.util.List.of("")) .get(0);
|
||||
String typeParam = params.getOrDefault("type", java.util.List.of("")) .get(0);
|
||||
String tokenParam = params.getOrDefault("token", java.util.List.of("")).getFirst();
|
||||
String typeParam = params.getOrDefault("type", java.util.List.of("")).getFirst();
|
||||
this.token = tokenParam != null ? tokenParam.trim() : "";
|
||||
this.userType = "app_user".equalsIgnoreCase(typeParam) ? PasswordResetService.UserType.APP_USER : PasswordResetService.UserType.USERS;
|
||||
|
||||
|
||||
@@ -19,10 +19,7 @@ import de.assecutor.votianlt.pages.service.PasswordResetService;
|
||||
@AnonymousAllowed
|
||||
public class ForgotPasswordRequestView extends VerticalLayout {
|
||||
|
||||
private final PasswordResetService passwordResetService;
|
||||
|
||||
public ForgotPasswordRequestView(PasswordResetService passwordResetService) {
|
||||
this.passwordResetService = passwordResetService;
|
||||
|
||||
setSizeFull();
|
||||
setJustifyContentMode(FlexComponent.JustifyContentMode.CENTER);
|
||||
|
||||
@@ -37,7 +37,7 @@ public class JobSummaryView extends Main implements HasUrlParameter<String> {
|
||||
private final TaskRepository taskRepository;
|
||||
private final AppUserService appUserService;
|
||||
|
||||
private VerticalLayout content;
|
||||
private final VerticalLayout content;
|
||||
|
||||
public JobSummaryView(JobRepository jobRepository,
|
||||
CargoItemRepository cargoItemRepository,
|
||||
@@ -211,7 +211,7 @@ public class JobSummaryView extends Main implements HasUrlParameter<String> {
|
||||
String wid = ci.getWidthMm() != null ? ci.getWidthMm().intValue() + " mm" : "";
|
||||
String hei = ci.getHeightMm() != null ? ci.getHeightMm().intValue() + " mm" : "";
|
||||
String combined = String.join(" x ", java.util.stream.Stream.of(len, wid, hei)
|
||||
.filter(s -> s != null && !s.isBlank()).toList());
|
||||
.filter(s -> !s.isBlank()).toList());
|
||||
return combined.isBlank() ? "" : combined;
|
||||
}
|
||||
|
||||
|
||||
@@ -178,13 +178,17 @@ public class RegisterView extends VerticalLayout {
|
||||
new FormLayout.ResponsiveStep("0", 2)
|
||||
);
|
||||
|
||||
// Erste Reihe: Zugangsdaten
|
||||
// Firma zuerst, volle Breite
|
||||
form.add(companyField);
|
||||
form.setColspan(companyField, 2);
|
||||
|
||||
// Zugangsdaten
|
||||
form.add(emailField, passwordField, confirmPasswordField);
|
||||
form.setColspan(emailField, 2);
|
||||
|
||||
// Personen-/Firmendaten
|
||||
// Personen-/Adressdaten
|
||||
form.add(firstNameField, lastNameField);
|
||||
form.add(phoneField, companyField);
|
||||
form.add(phoneField);
|
||||
form.add(streetField, houseNumberField);
|
||||
form.add(zipField, cityField);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user