diff --git a/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java b/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java index 61d87b2..8e61838 100644 --- a/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java +++ b/src/main/java/de/assecutor/votianlt/pages/base/ui/view/MainLayout.java @@ -43,7 +43,6 @@ public final class MainLayout extends AppLayout { } private Div createHeader() { - // TODO Replace with real application logo and name var appLogo = VaadinIcon.CUBES.create(); appLogo.addClassNames(TextColor.PRIMARY, IconSize.LARGE); @@ -86,7 +85,7 @@ public final class MainLayout extends AppLayout { SideNavItem statistics = new SideNavItem("Statistik", "6", new Icon(VaadinIcon.COG)); verwaltungContent.add(jobs, customers, appUsers, devices, invoices, statistics); - verwaltungDetails.setContent(verwaltungContent); + verwaltungDetails.add(verwaltungContent); // Create Details component for "Verwaltung" with collapsible list Details userDetails = new Details(); @@ -104,7 +103,7 @@ public final class MainLayout extends AppLayout { SideNavItem imprint = new SideNavItem("Impressum", "9", new Icon(VaadinIcon.COG)); userContent.add(profile, myInvoices, imprint); - userDetails.setContent(userContent); + userDetails.add(userContent); // Create a vertical layout to hold both regular menu items and collapsible sections VerticalLayout navContainer = new VerticalLayout(); diff --git a/src/main/java/de/assecutor/votianlt/pages/service/AddJobService.java b/src/main/java/de/assecutor/votianlt/pages/service/AddJobService.java index 123e333..31bc9f9 100644 --- a/src/main/java/de/assecutor/votianlt/pages/service/AddJobService.java +++ b/src/main/java/de/assecutor/votianlt/pages/service/AddJobService.java @@ -68,8 +68,7 @@ public class AddJobService { copy.setHeightMm(ci.getHeightMm()); return copy; }).toList(); - var savedItems = cargoItemRepository.saveAll(itemsWithJob); - var cargoIds = savedItems.stream().map(CargoItem::getId).toList(); + cargoItemRepository.saveAll(itemsWithJob); modified = true; // Tasks separat speichern und referenzieren if (transientTasks != null && !transientTasks.isEmpty()) { @@ -78,8 +77,7 @@ public class AddJobService { .filter(te -> te.getText() != null && !te.getText().isBlank()) .peek(te -> te.setJobId(jobId)) .toList(); - var savedTasks = taskRepository.saveAll(prepared); - var taskIds = savedTasks.stream().map(de.assecutor.votianlt.model.TaskEntry::getId).toList(); + taskRepository.saveAll(prepared); modified = true; } } @@ -169,7 +167,8 @@ public class AddJobService { LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss"))); } - Job savedDraft = jobRepository.save(draftJob); + jobRepository.save(draftJob); + log.info("Entwurf automatisch gespeichert für Benutzer: {}", currentUser); } catch (Exception e) { diff --git a/src/main/java/de/assecutor/votianlt/pages/service/CustomerService.java b/src/main/java/de/assecutor/votianlt/pages/service/CustomerService.java index b3c0d8f..cbd5b2a 100644 --- a/src/main/java/de/assecutor/votianlt/pages/service/CustomerService.java +++ b/src/main/java/de/assecutor/votianlt/pages/service/CustomerService.java @@ -2,7 +2,6 @@ package de.assecutor.votianlt.pages.service; import de.assecutor.votianlt.model.Customer; import de.assecutor.votianlt.pages.domain.CustomerRepository; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/de/assecutor/votianlt/pages/view/RegisterView.java b/src/main/java/de/assecutor/votianlt/pages/view/RegisterView.java index adbb433..af9283e 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/RegisterView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/RegisterView.java @@ -12,21 +12,20 @@ import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.server.auth.AnonymousAllowed; -import de.assecutor.votianlt.pages.service.RegisterService; import de.assecutor.votianlt.pages.service.UserService; -import java.time.Clock; - @Route("register") @PageTitle("Bei VotianLT registrieren") @AnonymousAllowed public class RegisterView extends VerticalLayout { + private final UserService userService; private TextField emailField; private PasswordField passwordField; private PasswordField confirmPasswordField; private Button submitButton; - public RegisterView() { + public RegisterView(UserService userService) { + this.userService = userService; // Layout-Konfiguration für vollständige Zentrierung setSizeFull(); setJustifyContentMode(FlexComponent.JustifyContentMode.CENTER); diff --git a/src/main/java/de/assecutor/votianlt/security/UserDetailsServiceImpl.java b/src/main/java/de/assecutor/votianlt/security/UserDetailsServiceImpl.java index 7995c32..33098bc 100644 --- a/src/main/java/de/assecutor/votianlt/security/UserDetailsServiceImpl.java +++ b/src/main/java/de/assecutor/votianlt/security/UserDetailsServiceImpl.java @@ -3,16 +3,11 @@ package de.assecutor.votianlt.security; import de.assecutor.votianlt.model.User; import de.assecutor.votianlt.pages.service.UserService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; -import java.util.Collection; -import java.util.Collections; - @Service public class UserDetailsServiceImpl implements UserDetailsService {