Erweiterungen
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user