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;
|
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 {
|
.statistics-input-panel {
|
||||||
width: min(1240px, 100%);
|
width: min(1240px, 100%);
|
||||||
margin: 0 auto;
|
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));
|
background: linear-gradient(180deg, rgba(238, 244, 255, 0.75), rgba(248, 250, 252, 0.96));
|
||||||
border-radius: 30px;
|
border-radius: 30px;
|
||||||
box-shadow: var(--app-shadow-lg);
|
box-shadow: var(--app-shadow-lg);
|
||||||
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
.station-tile.validated {
|
.station-tile.validated {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package de.assecutor.votianlt.pages.view;
|
package de.assecutor.votianlt.pages.view;
|
||||||
|
|
||||||
import com.vaadin.flow.component.button.Button;
|
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.button.ButtonVariant;
|
||||||
import com.vaadin.flow.component.checkbox.Checkbox;
|
import com.vaadin.flow.component.checkbox.Checkbox;
|
||||||
import com.vaadin.flow.component.formlayout.FormLayout;
|
import com.vaadin.flow.component.formlayout.FormLayout;
|
||||||
@@ -111,6 +112,10 @@ public class EditProfileView extends HorizontalLayout implements HasDynamicTitle
|
|||||||
formColumn.setHeightFull();
|
formColumn.setHeightFull();
|
||||||
formColumn.setPadding(false);
|
formColumn.setPadding(false);
|
||||||
formColumn.setSpacing(false);
|
formColumn.setSpacing(false);
|
||||||
|
|
||||||
|
ViewToolbar toolbar = new ViewToolbar(getTranslation("page.title.profile.edit"));
|
||||||
|
formColumn.add(toolbar);
|
||||||
|
|
||||||
// TabSheet
|
// TabSheet
|
||||||
TabSheet tabSheet = new TabSheet();
|
TabSheet tabSheet = new TabSheet();
|
||||||
tabSheet.setSizeFull();
|
tabSheet.setSizeFull();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package de.assecutor.votianlt.pages.view;
|
|||||||
|
|
||||||
import com.vaadin.flow.component.html.Div;
|
import com.vaadin.flow.component.html.Div;
|
||||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||||
|
import de.assecutor.votianlt.pages.base.ui.component.ViewToolbar;
|
||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import com.vaadin.flow.router.HasDynamicTitle;
|
import com.vaadin.flow.router.HasDynamicTitle;
|
||||||
import com.vaadin.flow.router.Route;
|
import com.vaadin.flow.router.Route;
|
||||||
@@ -13,9 +14,16 @@ public class ImprintView extends VerticalLayout implements HasDynamicTitle {
|
|||||||
public ImprintView() {
|
public ImprintView() {
|
||||||
setSizeFull();
|
setSizeFull();
|
||||||
setPadding(true);
|
setPadding(true);
|
||||||
setSpacing(true);
|
setSpacing(false);
|
||||||
setAlignItems(Alignment.CENTER);
|
addClassName("form-page");
|
||||||
addClassNames("data-view", "form-shell");
|
|
||||||
|
VerticalLayout content = new VerticalLayout();
|
||||||
|
content.setWidthFull();
|
||||||
|
content.setPadding(false);
|
||||||
|
content.setSpacing(false);
|
||||||
|
|
||||||
|
ViewToolbar toolbar = new ViewToolbar(getTranslation("page.title.imprint"));
|
||||||
|
content.add(toolbar);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Load HTML content from resources
|
// Load HTML content from resources
|
||||||
@@ -27,15 +35,17 @@ public class ImprintView extends VerticalLayout implements HasDynamicTitle {
|
|||||||
imprintDiv.addClassNames("form-card", "form-shell");
|
imprintDiv.addClassNames("form-card", "form-shell");
|
||||||
imprintDiv.getElement().setProperty("innerHTML", htmlContent);
|
imprintDiv.getElement().setProperty("innerHTML", htmlContent);
|
||||||
|
|
||||||
add(imprintDiv);
|
content.add(imprintDiv);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// Fallback content in case of error
|
// Fallback content in case of error
|
||||||
Div errorDiv = new Div();
|
Div errorDiv = new Div();
|
||||||
errorDiv.addClassNames("form-card", "form-shell");
|
errorDiv.addClassNames("form-card", "form-shell");
|
||||||
errorDiv.setText(getTranslation("imprint.error", e.getMessage()));
|
errorDiv.setText(getTranslation("imprint.error", e.getMessage()));
|
||||||
add(errorDiv);
|
content.add(errorDiv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.vaadin.flow.component.button.Button;
|
|||||||
import com.vaadin.flow.component.button.ButtonVariant;
|
import com.vaadin.flow.component.button.ButtonVariant;
|
||||||
import com.vaadin.flow.component.dependency.JavaScript;
|
import com.vaadin.flow.component.dependency.JavaScript;
|
||||||
import com.vaadin.flow.component.html.Div;
|
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.Paragraph;
|
||||||
import com.vaadin.flow.component.html.Span;
|
import com.vaadin.flow.component.html.Span;
|
||||||
import com.vaadin.flow.component.icon.Icon;
|
import com.vaadin.flow.component.icon.Icon;
|
||||||
@@ -56,7 +56,7 @@ public class StatisticsView extends VerticalLayout implements HasDynamicTitle {
|
|||||||
addClassName("statistics-chat-view");
|
addClassName("statistics-chat-view");
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
HorizontalLayout header = createHeader();
|
ViewToolbar header = createHeader();
|
||||||
add(header);
|
add(header);
|
||||||
|
|
||||||
// Chat Container mit Scroll
|
// Chat Container mit Scroll
|
||||||
@@ -81,25 +81,8 @@ public class StatisticsView extends VerticalLayout implements HasDynamicTitle {
|
|||||||
add(inputArea);
|
add(inputArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
private HorizontalLayout createHeader() {
|
private ViewToolbar createHeader() {
|
||||||
HorizontalLayout header = new HorizontalLayout();
|
return new ViewToolbar(getTranslation("statistics.title"));
|
||||||
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 HorizontalLayout createInputArea() {
|
private HorizontalLayout createInputArea() {
|
||||||
|
|||||||
Reference in New Issue
Block a user