From 8d4f04156e9c81917e7e77947b917fce52042779 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Fri, 20 Mar 2026 11:21:13 +0100 Subject: [PATCH] feat: UI refinements - landing page gradient, button styling, drawer navigation - Update landing view to use shell gradient background consistently - Make surface-panel and hero-panel transparent in landing view - Add button styling: remove shadows, use LUMO_TERTIARY for secondary actions - Add clickable drawer header navigation to dashboard - Remove unused title translations from message files --- .../frontend/themes/votian-modern/styles.css | 66 ++++++++++++++++--- .../pages/base/ui/view/MainLayout.java | 9 +++ .../votianlt/pages/view/AddAppUserView.java | 25 +++---- .../votianlt/pages/view/AddJobView.java | 8 ++- .../pages/view/AuthenticatedStartView.java | 63 ++++-------------- .../votianlt/pages/view/EditAppUserView.java | 25 +++---- .../votianlt/pages/view/EditCustomerView.java | 13 ++-- .../votianlt/pages/view/EditProfileView.java | 3 +- .../votianlt/pages/view/StartView.java | 17 +++-- src/main/resources/messages_de.properties | 3 - src/main/resources/messages_ee.properties | 3 - src/main/resources/messages_en.properties | 3 - src/main/resources/messages_es.properties | 3 - src/main/resources/messages_fr.properties | 3 - src/main/resources/messages_lt.properties | 3 - src/main/resources/messages_lv.properties | 3 - src/main/resources/messages_pl.properties | 3 - src/main/resources/messages_ru.properties | 3 - src/main/resources/messages_tr.properties | 3 - 19 files changed, 122 insertions(+), 137 deletions(-) diff --git a/src/main/frontend/themes/votian-modern/styles.css b/src/main/frontend/themes/votian-modern/styles.css index 4b537f6..6dbfb00 100644 --- a/src/main/frontend/themes/votian-modern/styles.css +++ b/src/main/frontend/themes/votian-modern/styles.css @@ -157,7 +157,7 @@ vaadin-app-layout::part(content) { box-sizing: border-box; padding: 0; gap: 1rem; - background: #ffffff !important; + background: transparent !important; min-height: 100vh; min-height: 100dvh; } @@ -192,6 +192,24 @@ body:has(.dashboard-home-view) vaadin-app-layout::part(content) { box-shadow: none; } +body:has(.landing-view) { + background: var(--app-shell-background); +} + +.landing-view .surface-panel { + border: 1px solid var(--app-border-strong); + background: transparent; + backdrop-filter: none; + box-shadow: none; +} + +.landing-view .landing-header, +.landing-view .section-panel, +.landing-view .app-overview-panel, +.landing-view .footer-panel { + background: var(--app-surface-solid); +} + .dashboard-home-view .hero-panel { box-shadow: none; } @@ -201,10 +219,6 @@ body:has(.dashboard-home-view) vaadin-app-layout::part(content) { gap: 20px; } -body:has(.landing-view) { - background: #ffffff; -} - .data-view, .dashboard-view, .form-page, @@ -452,7 +466,28 @@ vaadin-vertical-layout.admin-form-view { transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease; } +.feature-card-link { + display: block; + width: 100%; + color: inherit; + text-decoration: none; + cursor: pointer; +} + +.feature-card-link:hover, +.feature-card-link:hover *, +.feature-card-link:focus-visible, +.feature-card-link:focus-visible * { + color: inherit; + text-decoration: none; +} + +.feature-card-link .feature-card { + cursor: pointer; +} + .feature-card:hover, +.feature-card-link:focus-visible .feature-card, .message-card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px rgba(15, 23, 42, 0.14); @@ -486,20 +521,21 @@ vaadin-vertical-layout.admin-form-view { } .footer-details p, -.footer-cta, -.footer-slogan, +.app-cta, +.app-slogan, .footer-version { margin: 0; text-align: center; } -.footer-cta { +.app-cta { margin-top: 0.75rem; color: var(--app-accent-strong); font-weight: 700; + max-width: 820px; } -.footer-slogan { +.app-slogan { color: var(--app-accent-strong); font-style: italic; } @@ -689,6 +725,18 @@ vaadin-vertical-layout.admin-form-view { transition: transform 0.18s ease, background-color 0.18s ease, border-color 0.18s ease; } +.app-nav-row-root { + width: 20.5rem; +} + +.app-nav-row-management-child { + width: 18.25rem; +} + +.app-nav-row-user-child { + width: 17rem; +} + .app-nav-row:hover { transform: translateX(4px); background: rgba(255, 255, 255, 0.14); 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 86f3a77..c718e90 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 @@ -176,6 +176,15 @@ public final class MainLayout extends AppLayout { row.setMargin(false); row.getStyle().set("max-width", "calc(100% - 4px)"); row.addClassName("app-nav-row"); + if (treeData.getParent(item) == null) { + row.addClassName("app-nav-row-root"); + } + if (verwaltungItem.equals(treeData.getParent(item))) { + row.addClassName("app-nav-row-management-child"); + } + if (benutzerItem.equals(treeData.getParent(item))) { + row.addClassName("app-nav-row-user-child"); + } // Icon if (item.icon() != null) { diff --git a/src/main/java/de/assecutor/votianlt/pages/view/AddAppUserView.java b/src/main/java/de/assecutor/votianlt/pages/view/AddAppUserView.java index df642f1..6f813f9 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/AddAppUserView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/AddAppUserView.java @@ -4,8 +4,6 @@ import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; import com.vaadin.flow.component.formlayout.FormLayout; import com.vaadin.flow.component.html.H2; -import com.vaadin.flow.component.icon.Icon; -import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.FlexComponent; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; @@ -43,6 +41,9 @@ public class AddAppUserView extends VerticalLayout implements HasDynamicTitle { setPadding(true); setSpacing(true); addClassName("form-page"); + setJustifyContentMode(FlexComponent.JustifyContentMode.START); + setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.STRETCH); + getStyle().set("overflow", "auto"); // Set field labels via i18n designationField.setLabel(getTranslation("addappuser.designation")); @@ -53,20 +54,18 @@ public class AddAppUserView extends VerticalLayout implements HasDynamicTitle { passwordField.setLabel(getTranslation("addappuser.password")); confirmPasswordField.setLabel(getTranslation("addappuser.password.confirm")); - // Center content vertically - setJustifyContentMode(FlexComponent.JustifyContentMode.CENTER); - setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); - // Create main content container VerticalLayout contentContainer = new VerticalLayout(); - contentContainer.setWidth("600px"); - contentContainer.setMaxWidth("90%"); + contentContainer.setWidthFull(); + contentContainer.setMaxWidth("100%"); contentContainer.setSpacing(true); contentContainer.setPadding(true); + contentContainer.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.STRETCH); contentContainer.addClassNames("form-shell", "form-card"); - // Header with title and back button + // Header HorizontalLayout header = new HorizontalLayout(); + header.setWidthFull(); header.setAlignItems(FlexComponent.Alignment.CENTER); header.setSpacing(true); header.addClassName("form-header"); @@ -75,16 +74,12 @@ public class AddAppUserView extends VerticalLayout implements HasDynamicTitle { title.getStyle().set("margin", "0"); title.addClassName("form-title"); - Button backButton = new Button(getTranslation("button.back"), new Icon(VaadinIcon.ARROW_LEFT)); - backButton.addThemeVariants(ButtonVariant.LUMO_TERTIARY); - backButton.addClickListener(e -> navigateBack()); - - header.add(title, backButton); - header.setJustifyContentMode(FlexComponent.JustifyContentMode.BETWEEN); + header.add(title); contentContainer.add(header); // Form layout FormLayout formLayout = new FormLayout(); + formLayout.setWidthFull(); formLayout.setResponsiveSteps(new FormLayout.ResponsiveStep("0", 1)); // Configure fields diff --git a/src/main/java/de/assecutor/votianlt/pages/view/AddJobView.java b/src/main/java/de/assecutor/votianlt/pages/view/AddJobView.java index 73be8ab..866df0b 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/AddJobView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/AddJobView.java @@ -350,7 +350,7 @@ public class AddJobView extends Main implements HasDynamicTitle { submitButtonLayout.setWidthFull(); submitButtonLayout.setJustifyContentMode(FlexComponent.JustifyContentMode.CENTER); submitButtonLayout.setPadding(true); - submitButtonLayout.addClassNames("surface-panel", "form-shell"); + submitButtonLayout.addClassName("form-shell"); submitButtonLayout.add(submitButton); submitButtonLayout.setVisible(false); @@ -572,7 +572,11 @@ public class AddJobView extends Main implements HasDynamicTitle { return removeButton; }).setHeader(getTranslation("common.actions")).setAutoWidth(true).setFlexGrow(0); - priceAndDetailsSection.add(servicesGrid); + Div servicesGridPanel = new Div(servicesGrid); + servicesGridPanel.addClassNames("surface-panel", "data-grid-panel"); + servicesGridPanel.setWidthFull(); + + priceAndDetailsSection.add(servicesGridPanel); // Add Service Button Button addServiceButton = new Button(getTranslation("addjob.services.add"), new Icon(VaadinIcon.PLUS)); diff --git a/src/main/java/de/assecutor/votianlt/pages/view/AuthenticatedStartView.java b/src/main/java/de/assecutor/votianlt/pages/view/AuthenticatedStartView.java index c1a7635..d699565 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/AuthenticatedStartView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/AuthenticatedStartView.java @@ -5,10 +5,10 @@ import com.vaadin.flow.component.html.*; import com.vaadin.flow.component.icon.Icon; import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.orderedlayout.FlexComponent; -import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.router.HasDynamicTitle; import com.vaadin.flow.router.Route; +import com.vaadin.flow.router.RouterLink; import de.assecutor.votianlt.model.User; import de.assecutor.votianlt.security.SecurityService; import de.assecutor.votianlt.pages.base.ui.view.MainLayout; @@ -40,12 +40,6 @@ public class AuthenticatedStartView extends VerticalLayout implements HasDynamic // System Section add(createSystemSection()); - - // App Section - add(createAppSection()); - - // Footer - add(createFooter()); } private Component createAuthenticatedHeroSection() { @@ -94,17 +88,18 @@ public class AuthenticatedStartView extends VerticalLayout implements HasDynamic // Feature Cards featuresGrid.add( createFeatureCard(VaadinIcon.COG, getTranslation("dashboard.feature.setup.title"), - getTranslation("dashboard.feature.setup.desc")), + getTranslation("dashboard.feature.setup.desc"), EditProfileView.class), createFeatureCard(VaadinIcon.USERS, getTranslation("dashboard.feature.customers.title"), - getTranslation("dashboard.feature.customers.desc")), + getTranslation("dashboard.feature.customers.desc"), ShowCustomersView.class), createFeatureCard(VaadinIcon.CLIPBOARD_TEXT, getTranslation("dashboard.feature.jobs.title"), - getTranslation("dashboard.feature.jobs.desc"))); + getTranslation("dashboard.feature.jobs.desc"), ShowJobsView.class)); systemSection.add(systemTitle, systemIntro, featuresGrid); return systemSection; } - private Component createFeatureCard(VaadinIcon iconType, String title, String description) { + private Component createFeatureCard(VaadinIcon iconType, String title, String description, + Class navigationTarget) { VerticalLayout card = new VerticalLayout(); card.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); card.setPadding(true); @@ -123,46 +118,14 @@ public class AuthenticatedStartView extends VerticalLayout implements HasDynamic cardDescription.addClassName("feature-card-description"); card.add(icon, cardTitle, cardDescription); - return card; - } - private Component createAppSection() { - VerticalLayout appSection = new VerticalLayout(); - appSection.setWidthFull(); - appSection.setPadding(true); - appSection.setSpacing(true); - appSection.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); - appSection.addClassNames("page-shell", "surface-panel", "app-overview-panel"); - - H2 appTitle = new H2(getTranslation("dashboard.app.title")); - appTitle.addClassName("section-title"); - - Paragraph appDescription = new Paragraph(getTranslation("dashboard.app.description")); - appDescription.addClassName("section-intro"); - - appSection.add(appTitle, appDescription); - return appSection; - } - - private Component createFooter() { - VerticalLayout footer = new VerticalLayout(); - footer.setWidthFull(); - footer.setPadding(true); - footer.setSpacing(true); - footer.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); - footer.addClassNames("page-shell", "surface-panel", "footer-panel"); - - HorizontalLayout footerContent = new HorizontalLayout(); - footerContent.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.CENTER); - footerContent.setJustifyContentMode(FlexComponent.JustifyContentMode.CENTER); - - Paragraph copyright = new Paragraph(getTranslation("dashboard.footer.copyright")); - copyright.addClassName("footer-version"); - - footerContent.add(copyright); - footer.add(footerContent); - - return footer; + RouterLink link = new RouterLink(); + link.setRoute(navigationTarget); + link.add(card); + link.addClassName("feature-card-link"); + link.getStyle().set("width", "100%"); + link.getElement().setAttribute("aria-label", title); + return link; } @Override diff --git a/src/main/java/de/assecutor/votianlt/pages/view/EditAppUserView.java b/src/main/java/de/assecutor/votianlt/pages/view/EditAppUserView.java index 5dad6aa..6de2287 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/EditAppUserView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/EditAppUserView.java @@ -4,8 +4,6 @@ import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; import com.vaadin.flow.component.formlayout.FormLayout; import com.vaadin.flow.component.html.H2; -import com.vaadin.flow.component.icon.Icon; -import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.notification.Notification; import com.vaadin.flow.component.orderedlayout.FlexComponent; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; @@ -48,6 +46,9 @@ public class EditAppUserView extends VerticalLayout implements HasUrlParameter navigateBack()); - - header.add(title, backButton); - header.setJustifyContentMode(FlexComponent.JustifyContentMode.BETWEEN); + header.add(title); contentContainer.add(header); // Form layout FormLayout formLayout = new FormLayout(); + formLayout.setWidthFull(); formLayout.setResponsiveSteps(new FormLayout.ResponsiveStep("0", 1)); // Configure fields diff --git a/src/main/java/de/assecutor/votianlt/pages/view/EditCustomerView.java b/src/main/java/de/assecutor/votianlt/pages/view/EditCustomerView.java index a6e1f8f..e74044a 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/EditCustomerView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/EditCustomerView.java @@ -52,6 +52,9 @@ public class EditCustomerView extends VerticalLayout implements HasUrlParameter< setPadding(true); addClassName("form-page"); setSpacing(true); + setJustifyContentMode(FlexComponent.JustifyContentMode.START); + setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.STRETCH); + getStyle().set("overflow", "auto"); // Set field labels via i18n titleField.setLabel(getTranslation("addjob.address.salutation")); @@ -67,16 +70,13 @@ public class EditCustomerView extends VerticalLayout implements HasUrlParameter< zipField.setLabel(getTranslation("profile.zip")); cityField.setLabel(getTranslation("profile.city")); - // Center content vertically - setJustifyContentMode(FlexComponent.JustifyContentMode.CENTER); - setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.CENTER); - // Create main content container VerticalLayout contentContainer = new VerticalLayout(); - contentContainer.setWidth("800px"); - contentContainer.setMaxWidth("90%"); + contentContainer.setWidthFull(); + contentContainer.setMaxWidth("100%"); contentContainer.setSpacing(true); contentContainer.setPadding(true); + contentContainer.setDefaultHorizontalComponentAlignment(FlexComponent.Alignment.STRETCH); contentContainer.addClassNames("form-shell", "form-card"); // Header @@ -87,6 +87,7 @@ public class EditCustomerView extends VerticalLayout implements HasUrlParameter< // Form layout FormLayout formLayout = new FormLayout(); + formLayout.setWidthFull(); formLayout.setResponsiveSteps(new FormLayout.ResponsiveStep("0", 1)); // Add fields to form - all fields in single column diff --git a/src/main/java/de/assecutor/votianlt/pages/view/EditProfileView.java b/src/main/java/de/assecutor/votianlt/pages/view/EditProfileView.java index bcd915c..6acebff 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/EditProfileView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/EditProfileView.java @@ -579,6 +579,7 @@ public class EditProfileView extends HorizontalLayout implements HasDynamicTitle // Profil speichern Button (unten rechts) Button saveProfile = new Button(getTranslation("button.save")); saveProfile.addThemeVariants(ButtonVariant.LUMO_PRIMARY); + saveProfile.getStyle().set("box-shadow", "none"); saveProfile.addClickListener(e -> { // Validate all required fields first boolean isValid = validateAllProfileFields(companyField, firstnameField, lastnameField, phoneField, @@ -628,7 +629,7 @@ public class EditProfileView extends HorizontalLayout implements HasDynamicTitle // Fixieren am unteren Rand buttonBar.getStyle().set("position", "sticky"); buttonBar.getStyle().set("bottom", "0"); - buttonBar.getStyle().set("background", "var(--lumo-base-color)"); + buttonBar.getStyle().set("background", "transparent"); buttonBar.getStyle().set("padding", "var(--lumo-space-s) 0"); buttonBar.getStyle().set("z-index", "1"); formColumn.add(buttonBar); diff --git a/src/main/java/de/assecutor/votianlt/pages/view/StartView.java b/src/main/java/de/assecutor/votianlt/pages/view/StartView.java index bdd2da6..27f57e1 100644 --- a/src/main/java/de/assecutor/votianlt/pages/view/StartView.java +++ b/src/main/java/de/assecutor/votianlt/pages/view/StartView.java @@ -358,7 +358,13 @@ public class StartView extends VerticalLayout implements BeforeEnterObserver, Ha appIcon.setSize("80px"); appIcon.addClassName("feature-card-icon"); - appSection.add(appTitle, appDescription, appIcon); + Paragraph ctaText = new Paragraph(getTranslation("start.cta.text")); + ctaText.addClassName("app-cta"); + + Paragraph slogan = new Paragraph(getTranslation("start.slogan")); + slogan.addClassName("app-slogan"); + + appSection.add(appTitle, appDescription, appIcon, ctaText, slogan); return appSection; } @@ -385,18 +391,11 @@ public class StartView extends VerticalLayout implements BeforeEnterObserver, Ha new Paragraph(getTranslation("start.imprint.phone")), new Paragraph(getTranslation("start.imprint.email"))); - // Call to Action - Paragraph ctaText = new Paragraph(getTranslation("start.cta.text")); - ctaText.addClassName("footer-cta"); - - Paragraph slogan = new Paragraph(getTranslation("start.slogan")); - slogan.addClassName("footer-slogan"); - // Versionsnummer Span versionSpan = new Span("Version " + appVersion); versionSpan.addClassName("footer-version"); - footer.add(companyTitle, companyInfo, ctaText, slogan, versionSpan); + footer.add(companyTitle, companyInfo, versionSpan); return footer; } diff --git a/src/main/resources/messages_de.properties b/src/main/resources/messages_de.properties index 41a5d91..8feef7a 100644 --- a/src/main/resources/messages_de.properties +++ b/src/main/resources/messages_de.properties @@ -273,7 +273,6 @@ page.title.add.job=Neuen Auftrag anlegen # Dashboard dashboard.welcome=Willkommen, {0}! -dashboard.footer.copyright=© 2024 VotianLT. Alle Rechte vorbehalten. dashboard.description=Hier können Sie Ihre Aufträge verwalten, Kunden organisieren und alle wichtigen Funktionen von VotianLT nutzen. dashboard.system.title=Systemübersicht dashboard.system.intro=Verwalten Sie Ihre Geschäftsprozesse effizient mit den folgenden Funktionen @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Kunden dashboard.feature.customers.desc=Verwalten Sie Ihre Kundenbeziehungen und Kontakte dashboard.feature.jobs.title=Aufträge dashboard.feature.jobs.desc=Erstellen und verwalten Sie Aufträge effizient -dashboard.app.title=Mobile App -dashboard.app.description=Nutzen Sie die VotianLT App für unterwegs und bleiben Sie immer verbunden # Add App User addappuser.title=Neuen App-Nutzer anlegen diff --git a/src/main/resources/messages_ee.properties b/src/main/resources/messages_ee.properties index ac93b31..30afab4 100644 --- a/src/main/resources/messages_ee.properties +++ b/src/main/resources/messages_ee.properties @@ -243,7 +243,6 @@ page.title.forget.password=Parooli l\u00e4htestamine page.title.admin.pricetable=Hinnatabel page.title.add.job=Uue tellimuse loomine dashboard.welcome=Tere tulemast, {0}! -dashboard.footer.copyright=\u00a9 2024 VotianLT. K\u00f5ik \u00f5igused kaitstud. dashboard.description=Siin saate hallata oma tellimusi, korraldada kliente ja kasutada k\u00f5iki VotianLT olulisi funktsioone. dashboard.system.title=S\u00fcsteemi \u00fclevaade dashboard.system.intro=Hallake oma \u00e4riprotsesse t\u00f5husalt j\u00e4rgmiste funktsioonidega @@ -253,8 +252,6 @@ dashboard.feature.customers.title=Kliendid dashboard.feature.customers.desc=Hallake oma kliendisuhteid ja kontakte dashboard.feature.jobs.title=Tellimused dashboard.feature.jobs.desc=Looge ja hallake tellimusi t\u00f5husalt -dashboard.app.title=Mobiilirakendus -dashboard.app.description=Kasutage VotianLT rakendust liikvel olles ja p\u00fcsige alati \u00fchenduses addappuser.title=Uue \u00e4pikasutaja loomine addappuser.designation=T\u00e4his addappuser.phone=Telefon (mobiil) diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 66a8822..30eb2e6 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -273,7 +273,6 @@ page.title.add.job=Create New Job # Dashboard dashboard.welcome=Welcome, {0}! -dashboard.footer.copyright=\u00a9 2024 VotianLT. All rights reserved. dashboard.description=Here you can manage your jobs, organize customers, and use all important features of VotianLT. dashboard.system.title=System Overview dashboard.system.intro=Manage your business processes efficiently with the following features @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Customers dashboard.feature.customers.desc=Manage your customer relationships and contacts dashboard.feature.jobs.title=Jobs dashboard.feature.jobs.desc=Create and manage jobs efficiently -dashboard.app.title=Mobile App -dashboard.app.description=Use the VotianLT App on the go and stay connected at all times # Add App User addappuser.title=Create New App User diff --git a/src/main/resources/messages_es.properties b/src/main/resources/messages_es.properties index 573ee5a..dcca2f1 100644 --- a/src/main/resources/messages_es.properties +++ b/src/main/resources/messages_es.properties @@ -273,7 +273,6 @@ page.title.add.job=Crear nuevo pedido # Dashboard dashboard.welcome=\u00a1Bienvenido/a, {0}! -dashboard.footer.copyright=\u00a9 2024 VotianLT. Todos los derechos reservados. dashboard.description=Aqu\u00ed puede gestionar sus pedidos, organizar clientes y utilizar todas las funciones importantes de VotianLT. dashboard.system.title=Vista general del sistema dashboard.system.intro=Gestione sus procesos empresariales de manera eficiente con las siguientes funciones @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Clientes dashboard.feature.customers.desc=Gestione sus relaciones con los clientes y contactos dashboard.feature.jobs.title=Pedidos dashboard.feature.jobs.desc=Cree y gestione pedidos de manera eficiente -dashboard.app.title=App m\u00f3vil -dashboard.app.description=Utilice la app de VotianLT en cualquier lugar y permanezca siempre conectado # Add App User addappuser.title=Crear nuevo usuario de la app diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties index b34ebc9..c1565c3 100644 --- a/src/main/resources/messages_fr.properties +++ b/src/main/resources/messages_fr.properties @@ -273,7 +273,6 @@ page.title.add.job=Cr\u00e9er une nouvelle mission # Dashboard dashboard.welcome=Bienvenue, {0} ! -dashboard.footer.copyright=\u00a9 2024 VotianLT. Tous droits r\u00e9serv\u00e9s. dashboard.description=Ici, vous pouvez g\u00e9rer vos missions, organiser vos clients et acc\u00e9der \u00e0 toutes les fonctions importantes de VotianLT. dashboard.system.title=Aper\u00e7u du syst\u00e8me dashboard.system.intro=G\u00e9rez vos processus m\u00e9tiers efficacement avec les fonctions suivantes @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Clients dashboard.feature.customers.desc=G\u00e9rez vos relations clients et vos contacts dashboard.feature.jobs.title=Missions dashboard.feature.jobs.desc=Cr\u00e9ez et g\u00e9rez vos missions efficacement -dashboard.app.title=Application mobile -dashboard.app.description=Utilisez l'application VotianLT en d\u00e9placement et restez toujours connect\u00e9 # Add App User addappuser.title=Cr\u00e9er un nouvel utilisateur d'app diff --git a/src/main/resources/messages_lt.properties b/src/main/resources/messages_lt.properties index 9f6ac42..1269621 100644 --- a/src/main/resources/messages_lt.properties +++ b/src/main/resources/messages_lt.properties @@ -273,7 +273,6 @@ page.title.add.job=Sukurti naują užsakymą # Dashboard dashboard.welcome=Sveiki, {0}! -dashboard.footer.copyright=© 2024 VotianLT. Visos teisės saugomos. dashboard.description=Čia galite valdyti savo užsakymus, organizuoti klientus ir naudoti visas svarbias VotianLT funkcijas. dashboard.system.title=Sistemos apžvalga dashboard.system.intro=Efektyviai valdykite savo verslo procesus naudodami šias funkcijas @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Klientai dashboard.feature.customers.desc=Valdykite savo klientų ryšius ir kontaktus dashboard.feature.jobs.title=Užsakymai dashboard.feature.jobs.desc=Efektyviai kurkite ir valdykite užsakymus -dashboard.app.title=Mobili programėlė -dashboard.app.description=Naudokite VotianLT programėlę kelionėje ir visada likite prisijungę # Add App User addappuser.title=Sukurti naują programėlės naudotoją diff --git a/src/main/resources/messages_lv.properties b/src/main/resources/messages_lv.properties index 04f30da..cf4b423 100644 --- a/src/main/resources/messages_lv.properties +++ b/src/main/resources/messages_lv.properties @@ -273,7 +273,6 @@ page.title.add.job=Izveidot jaunu uzdevumu # Dashboard dashboard.welcome=Laipni lūgti, {0}! -dashboard.footer.copyright=© 2024 VotianLT. Visas tiesības aizsargātas. dashboard.description=Šeit jūs varat pārvaldīt savus uzdevumus, organizēt klientus un izmantot visas svarīgās VotianLT funkcijas. dashboard.system.title=Sistēmas pārskats dashboard.system.intro=Efektīvi pārvaldiet savus biznesa procesus ar šādām funkcijām @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Klienti dashboard.feature.customers.desc=Pārvaldiet savas klientu attiecības un kontaktus dashboard.feature.jobs.title=Uzdevumi dashboard.feature.jobs.desc=Izveidojiet un pārvaldiet uzdevumus efektīvi -dashboard.app.title=Mobilā lietotne -dashboard.app.description=Izmantojiet VotianLT lietotni ceļā un palieciet vienmēr savienoti # Add App User addappuser.title=Izveidot jaunu lietotnes lietotāju diff --git a/src/main/resources/messages_pl.properties b/src/main/resources/messages_pl.properties index 5284c58..9a17adb 100644 --- a/src/main/resources/messages_pl.properties +++ b/src/main/resources/messages_pl.properties @@ -273,7 +273,6 @@ page.title.add.job=Dodaj nowe zlecenie # Dashboard dashboard.welcome=Witaj, {0}! -dashboard.footer.copyright=\u00a9 2024 VotianLT. Wszelkie prawa zastrze\u017cone. dashboard.description=Tutaj mo\u017cesz zarz\u0105dza\u0107 swoimi zleceniami, organizowa\u0107 klient\u00f3w i korzysta\u0107 ze wszystkich wa\u017cnych funkcji VotianLT. dashboard.system.title=Przegl\u0105d systemu dashboard.system.intro=Zarz\u0105dzaj swoimi procesami biznesowymi efektywnie za pomoc\u0105 nast\u0119puj\u0105cych funkcji @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Klienci dashboard.feature.customers.desc=Zarz\u0105dzaj relacjami z klientami i kontaktami dashboard.feature.jobs.title=Zlecenia dashboard.feature.jobs.desc=Tworzenie i zarz\u0105dzanie zleceniami w spos\u00f3b efektywny -dashboard.app.title=Aplikacja mobilna -dashboard.app.description=Korzystaj z aplikacji VotianLT w podr\u00f3\u017cy i b\u0105d\u017a zawsze po\u0142\u0105czony # Add App User addappuser.title=Dodaj nowego u\u017cytkownika aplikacji diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties index a47d171..893a97c 100644 --- a/src/main/resources/messages_ru.properties +++ b/src/main/resources/messages_ru.properties @@ -273,7 +273,6 @@ page.title.add.job=Создать новый заказ # Dashboard dashboard.welcome=Добро пожаловать, {0}! -dashboard.footer.copyright=\u00a9 2024 VotianLT. Все права защищены. dashboard.description=Здесь вы можете управлять своими заказами, организовывать клиентов и использовать все важные функции VotianLT. dashboard.system.title=Обзор системы dashboard.system.intro=Эффективно управляйте своими бизнес-процессами с помощью следующих функций @@ -283,8 +282,6 @@ dashboard.feature.customers.title=Клиенты dashboard.feature.customers.desc=Управляйте отношениями с клиентами и контактами dashboard.feature.jobs.title=Заказы dashboard.feature.jobs.desc=Создавайте и управляйте заказами эффективно -dashboard.app.title=Мобильное приложение -dashboard.app.description=Используйте приложение VotianLT в дороге и оставайтесь всегда на связи # Add App User addappuser.title=Создать нового пользователя приложения diff --git a/src/main/resources/messages_tr.properties b/src/main/resources/messages_tr.properties index 7cff834..bc15675 100644 --- a/src/main/resources/messages_tr.properties +++ b/src/main/resources/messages_tr.properties @@ -273,7 +273,6 @@ page.title.add.job=Yeni \u0130\u015f Olu\u015ftur # Dashboard dashboard.welcome=Ho\u015f geldiniz, {0}! -dashboard.footer.copyright=\u00a9 2024 VotianLT. T\u00fcm haklar\u0131 sakl\u0131d\u0131r. dashboard.description=Burada i\u015flerinizi y\u00f6netebilir, m\u00fc\u015fterilerinizi organize edebilir ve VotianLT'nin t\u00fcm \u00f6nemli \u00f6zelliklerini kullanabilirsiniz. dashboard.system.title=Sisteme Genel Bak\u0131\u015f dashboard.system.intro=A\u015fa\u011f\u0131daki \u00f6zelliklerle i\u015f s\u00fcre\u00e7lerinizi verimli bir \u015fekilde y\u00f6netin @@ -283,8 +282,6 @@ dashboard.feature.customers.title=M\u00fc\u015fteriler dashboard.feature.customers.desc=M\u00fc\u015fteri ili\u015fkilerinizi ve ki\u015filerinizi y\u00f6netin dashboard.feature.jobs.title=\u0130\u015fler dashboard.feature.jobs.desc=\u0130\u015flerinizi verimli bir \u015fekilde olu\u015fturun ve y\u00f6netin -dashboard.app.title=Mobil Uygulama -dashboard.app.description=Hareket halindeyken VotianLT Uygulamas\u0131n\u0131 kullan\u0131n ve her zaman ba\u011fl\u0131 kal\u0131n # Add App User addappuser.title=Yeni Uygulama Kullan\u0131c\u0131s\u0131 Olu\u015ftur