style: UI-Verbesserungen für EditProfile, Imprint und Statistics Views
This commit is contained in:
@@ -1385,7 +1385,14 @@ vaadin-grid-tree-toggle[expanded] .nav-expand-icon {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.statistics-header,
|
||||
.statistics-header {
|
||||
width: min(1240px, 100%);
|
||||
margin: 0 auto;
|
||||
border: none;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.statistics-input-panel {
|
||||
width: min(1240px, 100%);
|
||||
margin: 0 auto;
|
||||
@@ -1402,6 +1409,7 @@ vaadin-grid-tree-toggle[expanded] .nav-expand-icon {
|
||||
background: linear-gradient(180deg, rgba(238, 244, 255, 0.75), rgba(248, 250, 252, 0.96));
|
||||
border-radius: 30px;
|
||||
box-shadow: var(--app-shadow-lg);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.station-tile.validated {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package de.assecutor.votianlt.pages.view;
|
||||
|
||||
import com.vaadin.flow.component.button.Button;
|
||||
import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar;
|
||||
import com.vaadin.flow.component.button.ButtonVariant;
|
||||
import com.vaadin.flow.component.checkbox.Checkbox;
|
||||
import com.vaadin.flow.component.formlayout.FormLayout;
|
||||
@@ -111,6 +112,10 @@ public class EditProfileView extends HorizontalLayout implements HasDynamicTitle
|
||||
formColumn.setHeightFull();
|
||||
formColumn.setPadding(false);
|
||||
formColumn.setSpacing(false);
|
||||
|
||||
ViewToolbar toolbar = new ViewToolbar(getTranslation("page.title.profile.edit"));
|
||||
formColumn.add(toolbar);
|
||||
|
||||
// TabSheet
|
||||
TabSheet tabSheet = new TabSheet();
|
||||
tabSheet.setSizeFull();
|
||||
|
||||
@@ -2,6 +2,7 @@ package de.assecutor.votianlt.pages.view;
|
||||
|
||||
import com.vaadin.flow.component.html.Div;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import com.vaadin.flow.router.HasDynamicTitle;
|
||||
import com.vaadin.flow.router.Route;
|
||||
@@ -13,9 +14,16 @@ public class ImprintView extends VerticalLayout implements HasDynamicTitle {
|
||||
public ImprintView() {
|
||||
setSizeFull();
|
||||
setPadding(true);
|
||||
setSpacing(true);
|
||||
setAlignItems(Alignment.CENTER);
|
||||
addClassNames("data-view", "form-shell");
|
||||
setSpacing(false);
|
||||
addClassName("form-page");
|
||||
|
||||
VerticalLayout content = new VerticalLayout();
|
||||
content.setWidthFull();
|
||||
content.setPadding(false);
|
||||
content.setSpacing(false);
|
||||
|
||||
ViewToolbar toolbar = new ViewToolbar(getTranslation("page.title.imprint"));
|
||||
content.add(toolbar);
|
||||
|
||||
try {
|
||||
// Load HTML content from resources
|
||||
@@ -27,15 +35,17 @@ public class ImprintView extends VerticalLayout implements HasDynamicTitle {
|
||||
imprintDiv.addClassNames("form-card", "form-shell");
|
||||
imprintDiv.getElement().setProperty("innerHTML", htmlContent);
|
||||
|
||||
add(imprintDiv);
|
||||
content.add(imprintDiv);
|
||||
|
||||
} catch (Exception e) {
|
||||
// Fallback content in case of error
|
||||
Div errorDiv = new Div();
|
||||
errorDiv.addClassNames("form-card", "form-shell");
|
||||
errorDiv.setText(getTranslation("imprint.error", e.getMessage()));
|
||||
add(errorDiv);
|
||||
content.add(errorDiv);
|
||||
}
|
||||
|
||||
add(content);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.vaadin.flow.component.button.Button;
|
||||
import com.vaadin.flow.component.button.ButtonVariant;
|
||||
import com.vaadin.flow.component.dependency.JavaScript;
|
||||
import com.vaadin.flow.component.html.Div;
|
||||
import com.vaadin.flow.component.html.H2;
|
||||
import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar;
|
||||
import com.vaadin.flow.component.html.Paragraph;
|
||||
import com.vaadin.flow.component.html.Span;
|
||||
import com.vaadin.flow.component.icon.Icon;
|
||||
@@ -56,7 +56,7 @@ public class StatisticsView extends VerticalLayout implements HasDynamicTitle {
|
||||
addClassName("statistics-chat-view");
|
||||
|
||||
// Header
|
||||
HorizontalLayout header = createHeader();
|
||||
ViewToolbar header = createHeader();
|
||||
add(header);
|
||||
|
||||
// Chat Container mit Scroll
|
||||
@@ -81,25 +81,8 @@ public class StatisticsView extends VerticalLayout implements HasDynamicTitle {
|
||||
add(inputArea);
|
||||
}
|
||||
|
||||
private HorizontalLayout createHeader() {
|
||||
HorizontalLayout header = new HorizontalLayout();
|
||||
header.setWidthFull();
|
||||
header.setPadding(true);
|
||||
header.setAlignItems(FlexComponent.Alignment.CENTER);
|
||||
header.addClassName("statistics-header");
|
||||
|
||||
Icon aiIcon = VaadinIcon.MAGIC.create();
|
||||
aiIcon.getStyle().set("color", "var(--lumo-primary-color)");
|
||||
|
||||
H2 title = new H2(getTranslation("statistics.title"));
|
||||
title.getStyle().set("margin", "0").set("font-size", "var(--lumo-font-size-xl)");
|
||||
|
||||
Span subtitle = new Span(getTranslation("statistics.subtitle"));
|
||||
subtitle.getStyle().set("color", "var(--lumo-secondary-text-color)").set("font-size", "var(--lumo-font-size-s)")
|
||||
.set("margin-left", "var(--lumo-space-m)");
|
||||
|
||||
header.add(aiIcon, title, subtitle);
|
||||
return header;
|
||||
private ViewToolbar createHeader() {
|
||||
return new ViewToolbar(getTranslation("statistics.title"));
|
||||
}
|
||||
|
||||
private HorizontalLayout createInputArea() {
|
||||
|
||||
Reference in New Issue
Block a user