From 6002f97fb66e91ebc07c1adfa4c7fad287cc348a Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Mon, 6 Jul 2026 14:22:55 +0200 Subject: [PATCH] Finish superuser user overview hub --- scripts/playwright-pr-mapping.mjs | 6 + src/i18n/generated/da-v2.json | 25 + src/i18n/generated/de-v2.json | 25 + src/i18n/generated/en-v2.json | 25 + src/i18n/generated/global-v2.json | 25 + src/i18n/generated/no-v2.json | 25 + src/i18n/generated/sv-v2.json | 25 + .../da/phrases/compat/user_admin/index.json | 25 + .../de/phrases/compat/user_admin/index.json | 25 + .../en/phrases/compat/user_admin/index.json | 25 + .../global/shared/user_admin/index.json | 25 + .../no/phrases/compat/user_admin/index.json | 25 + .../sv/phrases/compat/user_admin/index.json | 25 + .../user/SuperUserDashboardUserNavigation.vue | 60 +- .../user/SuperUserSelectedUserObject.vue | 199 ++++-- .../superUserDashboard/user/User.vue | 591 ++++++++++++++---- .../user/UserSubPageWrapper.vue | 19 +- .../user/displays/UserDefaultDepartment.vue | 10 +- .../user/displays/UserFixedPricing.vue | 11 +- .../other/UserOtherSpecialArrangement.vue | 117 ++-- .../other/UserOtherVaskeabonnement.vue | 121 ++-- .../UserVehicleSubscriptionsDisplay.vue | 7 - .../userDashboard/wash/MyWashStart.vue | 10 +- tests/e2e/superuser-users.spec.ts | 230 ++++++- tests/unit/playwright-pr-mapping.spec.js | 9 + .../superuser-user-overview-source.spec.js | 42 ++ 26 files changed, 1393 insertions(+), 339 deletions(-) create mode 100644 tests/unit/superuser-user-overview-source.spec.js diff --git a/scripts/playwright-pr-mapping.mjs b/scripts/playwright-pr-mapping.mjs index 7c8669ad..fd747cd7 100644 --- a/scripts/playwright-pr-mapping.mjs +++ b/scripts/playwright-pr-mapping.mjs @@ -33,6 +33,12 @@ export const sourceMappings = [ specs: ["tests/e2e/superuser-roles-permissions.spec.ts"], projects: chromiumProjects, }, + { + name: "superuser-users", + patterns: [/^src\/views\/dashboards\/superUserDashboard\/user\//u], + specs: ["tests/e2e/superuser-users.spec.ts"], + projects: chromiumProjects, + }, { name: "booking", patterns: [/bookings?/iu, /time-bookings/iu, /^src\/views\/guest\/book\//u], diff --git a/src/i18n/generated/da-v2.json b/src/i18n/generated/da-v2.json index a4180fea..122428c8 100644 --- a/src/i18n/generated/da-v2.json +++ b/src/i18n/generated/da-v2.json @@ -5726,6 +5726,31 @@ "transaction_history": "@:{'templates.generated.compat.superuser.nav.orders'}" }, "other": "@:{'templates.generated.compat.global.other'}", + "overview": { + "active_vehicles": "Aktive køretøjer", + "attributes": "Attributter", + "connected": "Forbundet", + "customer_management": "Kundestyring", + "customer_number_required": "Et kundenummer er påkrævet før kundeindstillinger kan administreres.", + "customer_rules": "Kunderegler", + "effective_access": "Effektiv adgang", + "loaded": "Indlæst", + "load_failed": "Brugerdata kunne ikke indlæses", + "loading_user": "Indlæser bruger", + "management_hub": "Administrationshub", + "missing": "Mangler", + "more_permissions": "+{count} flere tilladelser", + "no_subscription_transactions": "Der er ikke registreret vaskeabonnementstransaktioner for kunden.", + "not_invoiced": "Ikke faktureret", + "open_draft": "Åben kladde", + "open_vehicles": "Åbn køretøjer", + "price_overrides": "Prisoverstyringer", + "pricing": "Priser", + "subscription_invoicing": "Abonnementsfakturering", + "subtitle": "Overblik over kundedata, adgang, priser, køretøjer og abonnementsfakturering.", + "vehicles_load_failed": "Køretøjer kunne ikke indlæses.", + "workspace_shortcuts": "Arbejdsgange" + }, "permissions": "@.capitalize:{'words.generated.tilladelser'}", "user_data": "@.capitalize:{'words.generated.brugerdata'}", "user_id": "@.capitalize:{'words.generated.bruger'} @.upper:{'words.generated.id'}", diff --git a/src/i18n/generated/de-v2.json b/src/i18n/generated/de-v2.json index 702341cc..aab393fb 100644 --- a/src/i18n/generated/de-v2.json +++ b/src/i18n/generated/de-v2.json @@ -5837,6 +5837,31 @@ "transaction_history": "@:{'templates.generated.compat.superuser.nav.orders'}" }, "other": "@.capitalize:{'words.generated.andere'}", + "overview": { + "active_vehicles": "Aktive Fahrzeuge", + "attributes": "Attribute", + "connected": "Verbunden", + "customer_management": "Kundenverwaltung", + "customer_number_required": "Eine Kundennummer ist erforderlich, bevor Kundeneinstellungen verwaltet werden können.", + "customer_rules": "Kundenregeln", + "effective_access": "Effektiver Zugriff", + "loaded": "Geladen", + "load_failed": "Benutzerdaten konnten nicht geladen werden", + "loading_user": "Benutzer wird geladen", + "management_hub": "Verwaltung", + "missing": "Fehlt", + "more_permissions": "+{count} weitere Berechtigungen", + "no_subscription_transactions": "Für diesen Kunden sind keine Waschabonnement-Transaktionen registriert.", + "not_invoiced": "Nicht fakturiert", + "open_draft": "Offener Entwurf", + "open_vehicles": "Fahrzeuge öffnen", + "price_overrides": "Preisüberschreibungen", + "pricing": "Preise", + "subscription_invoicing": "Abonnementabrechnung", + "subtitle": "Überblick über Kundendaten, Zugriff, Preise, Fahrzeuge und Abonnementabrechnung.", + "vehicles_load_failed": "Fahrzeuge konnten nicht geladen werden.", + "workspace_shortcuts": "Arbeitsbereich" + }, "permissions": "Tilladelser", "user_data": "Brugerdata", "user_id": "@:{'words.generated.benutzer'}-@.upper:{'words.generated.id'}", diff --git a/src/i18n/generated/en-v2.json b/src/i18n/generated/en-v2.json index c5195ffc..c3b2db05 100644 --- a/src/i18n/generated/en-v2.json +++ b/src/i18n/generated/en-v2.json @@ -5558,6 +5558,31 @@ "transaction_history": "@.capitalize:{'words.generated.transaction'} @:{'words.generated.history'}" }, "other": "@:{'templates.generated.compat.global.other'}", + "overview": { + "active_vehicles": "Active vehicles", + "attributes": "Attributes", + "connected": "Connected", + "customer_management": "Customer management", + "customer_number_required": "A customer number is required before customer settings can be managed.", + "customer_rules": "Customer rules", + "effective_access": "Effective access", + "loaded": "Loaded", + "load_failed": "User data could not be loaded", + "loading_user": "Loading user", + "management_hub": "Management hub", + "missing": "Missing", + "more_permissions": "+{count} more permissions", + "no_subscription_transactions": "No wash subscription transactions are registered for this customer.", + "not_invoiced": "Not invoiced", + "open_draft": "Open draft", + "open_vehicles": "Open vehicles", + "price_overrides": "Price overrides", + "pricing": "Pricing", + "subscription_invoicing": "Subscription invoicing", + "subtitle": "Overview of customer data, access, pricing, vehicles, and subscription invoicing.", + "vehicles_load_failed": "Vehicles could not be loaded.", + "workspace_shortcuts": "Workspace shortcuts" + }, "permissions": "@.capitalize:{'words.generated.permissions'}", "user_data": "@.capitalize:{'words.generated.user'} @:{'words.generated.data'}", "user_id": "@.capitalize:{'words.generated.user'} @.upper:{'words.generated.id'}", diff --git a/src/i18n/generated/global-v2.json b/src/i18n/generated/global-v2.json index e63cb9be..4f57deee 100644 --- a/src/i18n/generated/global-v2.json +++ b/src/i18n/generated/global-v2.json @@ -5537,6 +5537,31 @@ "transaction_history": "@:{'templates.generated.compat.user_admin.orders.transaction_history'}" }, "other": "@:{'templates.generated.compat.user_admin.other'}", + "overview": { + "active_vehicles": "@:{'templates.generated.compat.user_admin.overview.active_vehicles'}", + "attributes": "@:{'templates.generated.compat.user_admin.overview.attributes'}", + "connected": "@:{'templates.generated.compat.user_admin.overview.connected'}", + "customer_management": "@:{'templates.generated.compat.user_admin.overview.customer_management'}", + "customer_number_required": "@:{'templates.generated.compat.user_admin.overview.customer_number_required'}", + "customer_rules": "@:{'templates.generated.compat.user_admin.overview.customer_rules'}", + "effective_access": "@:{'templates.generated.compat.user_admin.overview.effective_access'}", + "loaded": "@:{'templates.generated.compat.user_admin.overview.loaded'}", + "load_failed": "@:{'templates.generated.compat.user_admin.overview.load_failed'}", + "loading_user": "@:{'templates.generated.compat.user_admin.overview.loading_user'}", + "management_hub": "@:{'templates.generated.compat.user_admin.overview.management_hub'}", + "missing": "@:{'templates.generated.compat.user_admin.overview.missing'}", + "more_permissions": "@:{'templates.generated.compat.user_admin.overview.more_permissions'}", + "no_subscription_transactions": "@:{'templates.generated.compat.user_admin.overview.no_subscription_transactions'}", + "not_invoiced": "@:{'templates.generated.compat.user_admin.overview.not_invoiced'}", + "open_draft": "@:{'templates.generated.compat.user_admin.overview.open_draft'}", + "open_vehicles": "@:{'templates.generated.compat.user_admin.overview.open_vehicles'}", + "price_overrides": "@:{'templates.generated.compat.user_admin.overview.price_overrides'}", + "pricing": "@:{'templates.generated.compat.user_admin.overview.pricing'}", + "subscription_invoicing": "@:{'templates.generated.compat.user_admin.overview.subscription_invoicing'}", + "subtitle": "@:{'templates.generated.compat.user_admin.overview.subtitle'}", + "vehicles_load_failed": "@:{'templates.generated.compat.user_admin.overview.vehicles_load_failed'}", + "workspace_shortcuts": "@:{'templates.generated.compat.user_admin.overview.workspace_shortcuts'}" + }, "permissions": "@:{'templates.generated.compat.user_admin.permissions'}", "subtitle": "@:user_admin.user_data", "title": "@:{'templates.generated.compat.common.user'}", diff --git a/src/i18n/generated/no-v2.json b/src/i18n/generated/no-v2.json index c25dad2c..4cd3531f 100644 --- a/src/i18n/generated/no-v2.json +++ b/src/i18n/generated/no-v2.json @@ -5840,6 +5840,31 @@ "transaction_history": "@:{'templates.generated.compat.superuser.nav.orders'}" }, "other": "@:{'templates.generated.compat.global.other'}", + "overview": { + "active_vehicles": "Aktive kjøretøy", + "attributes": "Attributter", + "connected": "Tilkoblet", + "customer_management": "Kundestyring", + "customer_number_required": "Et kundenummer kreves før kundeinnstillinger kan administreres.", + "customer_rules": "Kunderegler", + "effective_access": "Effektiv tilgang", + "loaded": "Lastet", + "load_failed": "Brukerdata kunne ikke lastes", + "loading_user": "Laster bruker", + "management_hub": "Administrasjon", + "missing": "Mangler", + "more_permissions": "+{count} flere tillatelser", + "no_subscription_transactions": "Ingen vaskeabonnementstransaksjoner er registrert for kunden.", + "not_invoiced": "Ikke fakturert", + "open_draft": "Åpent utkast", + "open_vehicles": "Åpne kjøretøy", + "price_overrides": "Prisoverstyringer", + "pricing": "Priser", + "subscription_invoicing": "Abonnementsfakturering", + "subtitle": "Oversikt over kundedata, tilgang, priser, kjøretøy og abonnementsfakturering.", + "vehicles_load_failed": "Kjøretøy kunne ikke lastes.", + "workspace_shortcuts": "Arbeidsområde" + }, "permissions": "@.capitalize:{'words.generated.tillatelser'}", "user_data": "@.capitalize:{'words.generated.brukerdata'}", "user_id": "@.capitalize:{'words.generated.bruker'}-@.upper:{'words.generated.id'}", diff --git a/src/i18n/generated/sv-v2.json b/src/i18n/generated/sv-v2.json index 915a65b9..3455e26d 100644 --- a/src/i18n/generated/sv-v2.json +++ b/src/i18n/generated/sv-v2.json @@ -5890,6 +5890,31 @@ "transaction_history": "@:{'templates.generated.compat.superuser.nav.orders'}" }, "other": "Andet", + "overview": { + "active_vehicles": "Aktiva fordon", + "attributes": "Attribut", + "connected": "Ansluten", + "customer_management": "Kundhantering", + "customer_number_required": "Ett kundnummer krävs innan kundinställningar kan hanteras.", + "customer_rules": "Kundregler", + "effective_access": "Effektiv åtkomst", + "loaded": "Inläst", + "load_failed": "Användardata kunde inte läsas in", + "loading_user": "Läser in användare", + "management_hub": "Administration", + "missing": "Saknas", + "more_permissions": "+{count} fler behörigheter", + "no_subscription_transactions": "Inga tvättabonnemangstransaktioner är registrerade för kunden.", + "not_invoiced": "Ej fakturerat", + "open_draft": "Öppet utkast", + "open_vehicles": "Öppna fordon", + "price_overrides": "Prisöverskrivningar", + "pricing": "Priser", + "subscription_invoicing": "Abonnemangsfakturering", + "subtitle": "Översikt över kunddata, åtkomst, priser, fordon och abonnemangsfakturering.", + "vehicles_load_failed": "Fordon kunde inte läsas in.", + "workspace_shortcuts": "Arbetsyta" + }, "permissions": "Tilladelser", "user_data": "Brugerdata", "user_id": "Användar-@.upper:{'words.generated.id'}", diff --git a/src/i18n/source/da/phrases/compat/user_admin/index.json b/src/i18n/source/da/phrases/compat/user_admin/index.json index a1de1e4c..cac66f13 100644 --- a/src/i18n/source/da/phrases/compat/user_admin/index.json +++ b/src/i18n/source/da/phrases/compat/user_admin/index.json @@ -14,6 +14,31 @@ "transaction_history": "@:{'phrases.compat.superuser.nav.orders'}" }, "other": "@:{'phrases.compat.global.other'}", + "overview": { + "active_vehicles": "Aktive køretøjer", + "attributes": "Attributter", + "connected": "Forbundet", + "customer_management": "Kundestyring", + "customer_number_required": "Et kundenummer er påkrævet før kundeindstillinger kan administreres.", + "customer_rules": "Kunderegler", + "effective_access": "Effektiv adgang", + "loaded": "Indlæst", + "load_failed": "Brugerdata kunne ikke indlæses", + "loading_user": "Indlæser bruger", + "management_hub": "Administrationshub", + "missing": "Mangler", + "more_permissions": "+{count} flere tilladelser", + "no_subscription_transactions": "Der er ikke registreret vaskeabonnementstransaktioner for kunden.", + "not_invoiced": "Ikke faktureret", + "open_draft": "Åben kladde", + "open_vehicles": "Åbn køretøjer", + "price_overrides": "Prisoverstyringer", + "pricing": "Priser", + "subscription_invoicing": "Abonnementsfakturering", + "subtitle": "Overblik over kundedata, adgang, priser, køretøjer og abonnementsfakturering.", + "vehicles_load_failed": "Køretøjer kunne ikke indlæses.", + "workspace_shortcuts": "Arbejdsgange" + }, "permissions": "@.capitalize:{'terms.glossary.tilladelser'}", "user_data": "@.capitalize:{'terms.glossary.brugerdata'}", "user_id": "@.capitalize:{'terms.glossary.bruger'} @.upper:{'terms.glossary.id'}", diff --git a/src/i18n/source/de/phrases/compat/user_admin/index.json b/src/i18n/source/de/phrases/compat/user_admin/index.json index d06d9768..e14dc41a 100644 --- a/src/i18n/source/de/phrases/compat/user_admin/index.json +++ b/src/i18n/source/de/phrases/compat/user_admin/index.json @@ -14,6 +14,31 @@ "transaction_history": "@:{'phrases.compat.superuser.nav.orders'}" }, "other": "@.capitalize:{'terms.glossary.andere'}", + "overview": { + "active_vehicles": "Aktive Fahrzeuge", + "attributes": "Attribute", + "connected": "Verbunden", + "customer_management": "Kundenverwaltung", + "customer_number_required": "Eine Kundennummer ist erforderlich, bevor Kundeneinstellungen verwaltet werden können.", + "customer_rules": "Kundenregeln", + "effective_access": "Effektiver Zugriff", + "loaded": "Geladen", + "load_failed": "Benutzerdaten konnten nicht geladen werden", + "loading_user": "Benutzer wird geladen", + "management_hub": "Verwaltung", + "missing": "Fehlt", + "more_permissions": "+{count} weitere Berechtigungen", + "no_subscription_transactions": "Für diesen Kunden sind keine Waschabonnement-Transaktionen registriert.", + "not_invoiced": "Nicht fakturiert", + "open_draft": "Offener Entwurf", + "open_vehicles": "Fahrzeuge öffnen", + "price_overrides": "Preisüberschreibungen", + "pricing": "Preise", + "subscription_invoicing": "Abonnementabrechnung", + "subtitle": "Überblick über Kundendaten, Zugriff, Preise, Fahrzeuge und Abonnementabrechnung.", + "vehicles_load_failed": "Fahrzeuge konnten nicht geladen werden.", + "workspace_shortcuts": "Arbeitsbereich" + }, "permissions": "Tilladelser", "user_data": "Brugerdata", "user_id": "@:{'terms.glossary.benutzer'}-@.upper:{'terms.glossary.id'}", diff --git a/src/i18n/source/en/phrases/compat/user_admin/index.json b/src/i18n/source/en/phrases/compat/user_admin/index.json index a7f117a8..2f7a6d9b 100644 --- a/src/i18n/source/en/phrases/compat/user_admin/index.json +++ b/src/i18n/source/en/phrases/compat/user_admin/index.json @@ -14,6 +14,31 @@ "transaction_history": "@.capitalize:{'terms.glossary.transaction'} @:{'terms.glossary.history'}" }, "other": "@:{'phrases.compat.global.other'}", + "overview": { + "active_vehicles": "Active vehicles", + "attributes": "Attributes", + "connected": "Connected", + "customer_management": "Customer management", + "customer_number_required": "A customer number is required before customer settings can be managed.", + "customer_rules": "Customer rules", + "effective_access": "Effective access", + "loaded": "Loaded", + "load_failed": "User data could not be loaded", + "loading_user": "Loading user", + "management_hub": "Management hub", + "missing": "Missing", + "more_permissions": "+{count} more permissions", + "no_subscription_transactions": "No wash subscription transactions are registered for this customer.", + "not_invoiced": "Not invoiced", + "open_draft": "Open draft", + "open_vehicles": "Open vehicles", + "price_overrides": "Price overrides", + "pricing": "Pricing", + "subscription_invoicing": "Subscription invoicing", + "subtitle": "Overview of customer data, access, pricing, vehicles, and subscription invoicing.", + "vehicles_load_failed": "Vehicles could not be loaded.", + "workspace_shortcuts": "Workspace shortcuts" + }, "permissions": "@.capitalize:{'terms.glossary.permissions'}", "user_data": "@.capitalize:{'terms.glossary.user'} @:{'terms.glossary.data'}", "user_id": "@.capitalize:{'terms.glossary.user'} @.upper:{'terms.glossary.id'}", diff --git a/src/i18n/source/global/shared/user_admin/index.json b/src/i18n/source/global/shared/user_admin/index.json index a70140bd..0d65aabc 100644 --- a/src/i18n/source/global/shared/user_admin/index.json +++ b/src/i18n/source/global/shared/user_admin/index.json @@ -22,6 +22,31 @@ "transaction_history": "@:{'phrases.compat.user_admin.orders.transaction_history'}" }, "other": "@:{'phrases.compat.user_admin.other'}", + "overview": { + "active_vehicles": "@:{'phrases.compat.user_admin.overview.active_vehicles'}", + "attributes": "@:{'phrases.compat.user_admin.overview.attributes'}", + "connected": "@:{'phrases.compat.user_admin.overview.connected'}", + "customer_management": "@:{'phrases.compat.user_admin.overview.customer_management'}", + "customer_number_required": "@:{'phrases.compat.user_admin.overview.customer_number_required'}", + "customer_rules": "@:{'phrases.compat.user_admin.overview.customer_rules'}", + "effective_access": "@:{'phrases.compat.user_admin.overview.effective_access'}", + "loaded": "@:{'phrases.compat.user_admin.overview.loaded'}", + "load_failed": "@:{'phrases.compat.user_admin.overview.load_failed'}", + "loading_user": "@:{'phrases.compat.user_admin.overview.loading_user'}", + "management_hub": "@:{'phrases.compat.user_admin.overview.management_hub'}", + "missing": "@:{'phrases.compat.user_admin.overview.missing'}", + "more_permissions": "@:{'phrases.compat.user_admin.overview.more_permissions'}", + "no_subscription_transactions": "@:{'phrases.compat.user_admin.overview.no_subscription_transactions'}", + "not_invoiced": "@:{'phrases.compat.user_admin.overview.not_invoiced'}", + "open_draft": "@:{'phrases.compat.user_admin.overview.open_draft'}", + "open_vehicles": "@:{'phrases.compat.user_admin.overview.open_vehicles'}", + "price_overrides": "@:{'phrases.compat.user_admin.overview.price_overrides'}", + "pricing": "@:{'phrases.compat.user_admin.overview.pricing'}", + "subscription_invoicing": "@:{'phrases.compat.user_admin.overview.subscription_invoicing'}", + "subtitle": "@:{'phrases.compat.user_admin.overview.subtitle'}", + "vehicles_load_failed": "@:{'phrases.compat.user_admin.overview.vehicles_load_failed'}", + "workspace_shortcuts": "@:{'phrases.compat.user_admin.overview.workspace_shortcuts'}" + }, "permissions": "@:{'phrases.compat.user_admin.permissions'}", "subtitle": "@:user_admin.user_data", "title": "@:{'phrases.compat.common.user'}", diff --git a/src/i18n/source/no/phrases/compat/user_admin/index.json b/src/i18n/source/no/phrases/compat/user_admin/index.json index 5710cb9c..8b488403 100644 --- a/src/i18n/source/no/phrases/compat/user_admin/index.json +++ b/src/i18n/source/no/phrases/compat/user_admin/index.json @@ -14,6 +14,31 @@ "transaction_history": "@:{'phrases.compat.superuser.nav.orders'}" }, "other": "@:{'phrases.compat.global.other'}", + "overview": { + "active_vehicles": "Aktive kjøretøy", + "attributes": "Attributter", + "connected": "Tilkoblet", + "customer_management": "Kundestyring", + "customer_number_required": "Et kundenummer kreves før kundeinnstillinger kan administreres.", + "customer_rules": "Kunderegler", + "effective_access": "Effektiv tilgang", + "loaded": "Lastet", + "load_failed": "Brukerdata kunne ikke lastes", + "loading_user": "Laster bruker", + "management_hub": "Administrasjon", + "missing": "Mangler", + "more_permissions": "+{count} flere tillatelser", + "no_subscription_transactions": "Ingen vaskeabonnementstransaksjoner er registrert for kunden.", + "not_invoiced": "Ikke fakturert", + "open_draft": "Åpent utkast", + "open_vehicles": "Åpne kjøretøy", + "price_overrides": "Prisoverstyringer", + "pricing": "Priser", + "subscription_invoicing": "Abonnementsfakturering", + "subtitle": "Oversikt over kundedata, tilgang, priser, kjøretøy og abonnementsfakturering.", + "vehicles_load_failed": "Kjøretøy kunne ikke lastes.", + "workspace_shortcuts": "Arbeidsområde" + }, "permissions": "@.capitalize:{'terms.glossary.tillatelser'}", "user_data": "@.capitalize:{'terms.glossary.brukerdata'}", "user_id": "@.capitalize:{'terms.glossary.bruker'}-@.upper:{'terms.glossary.id'}", diff --git a/src/i18n/source/sv/phrases/compat/user_admin/index.json b/src/i18n/source/sv/phrases/compat/user_admin/index.json index 95d4646a..a21ad250 100644 --- a/src/i18n/source/sv/phrases/compat/user_admin/index.json +++ b/src/i18n/source/sv/phrases/compat/user_admin/index.json @@ -14,6 +14,31 @@ "transaction_history": "@:{'phrases.compat.superuser.nav.orders'}" }, "other": "Andet", + "overview": { + "active_vehicles": "Aktiva fordon", + "attributes": "Attribut", + "connected": "Ansluten", + "customer_management": "Kundhantering", + "customer_number_required": "Ett kundnummer krävs innan kundinställningar kan hanteras.", + "customer_rules": "Kundregler", + "effective_access": "Effektiv åtkomst", + "loaded": "Inläst", + "load_failed": "Användardata kunde inte läsas in", + "loading_user": "Läser in användare", + "management_hub": "Administration", + "missing": "Saknas", + "more_permissions": "+{count} fler behörigheter", + "no_subscription_transactions": "Inga tvättabonnemangstransaktioner är registrerade för kunden.", + "not_invoiced": "Ej fakturerat", + "open_draft": "Öppet utkast", + "open_vehicles": "Öppna fordon", + "price_overrides": "Prisöverskrivningar", + "pricing": "Priser", + "subscription_invoicing": "Abonnemangsfakturering", + "subtitle": "Översikt över kunddata, åtkomst, priser, fordon och abonnemangsfakturering.", + "vehicles_load_failed": "Fordon kunde inte läsas in.", + "workspace_shortcuts": "Arbetsyta" + }, "permissions": "Tilladelser", "user_data": "Brugerdata", "user_id": "Användar-@.upper:{'terms.glossary.id'}", diff --git a/src/views/dashboards/superUserDashboard/user/SuperUserDashboardUserNavigation.vue b/src/views/dashboards/superUserDashboard/user/SuperUserDashboardUserNavigation.vue index 492a62b2..a67e32c5 100644 --- a/src/views/dashboards/superUserDashboard/user/SuperUserDashboardUserNavigation.vue +++ b/src/views/dashboards/superUserDashboard/user/SuperUserDashboardUserNavigation.vue @@ -1,45 +1,45 @@ \ No newline at end of file +.user-detail-tabs { + overflow-x: auto; +} + +.tabs ul { + flex-wrap: nowrap; +} + diff --git a/src/views/dashboards/superUserDashboard/user/SuperUserSelectedUserObject.vue b/src/views/dashboards/superUserDashboard/user/SuperUserSelectedUserObject.vue index 7749b619..cd0f5d2c 100644 --- a/src/views/dashboards/superUserDashboard/user/SuperUserSelectedUserObject.vue +++ b/src/views/dashboards/superUserDashboard/user/SuperUserSelectedUserObject.vue @@ -1,15 +1,91 @@ \ No newline at end of file +.user-overview__header { + align-items: flex-start; + display: flex; + gap: 1rem; + justify-content: space-between; +} + +.user-overview__header-actions { + flex: 0 0 auto; +} + +.user-overview__metric, +.user-overview__compact-stat { + height: 100%; +} + +.user-overview__metric-top { + align-items: center; + display: flex; + justify-content: space-between; + margin-bottom: 0.75rem; +} + +.user-overview__details { + display: grid; + gap: 0.5rem 1rem; + grid-template-columns: minmax(8rem, 38%) 1fr; +} + +.user-overview__details dt { + color: #6b7280; + font-weight: 600; +} + +.user-overview__details dd { + margin: 0; + min-width: 0; + overflow-wrap: anywhere; +} + +.user-overview__section-title { + margin-bottom: 1rem; +} + +@media screen and (max-width: 768px) { + .user-overview__header { + display: block; + } + + .user-overview__header-actions { + margin-top: 1rem; + } + + .user-overview__details { + grid-template-columns: 1fr; + } +} + diff --git a/src/views/dashboards/superUserDashboard/user/UserSubPageWrapper.vue b/src/views/dashboards/superUserDashboard/user/UserSubPageWrapper.vue index 7f7ecdbf..6f2e1eda 100644 --- a/src/views/dashboards/superUserDashboard/user/UserSubPageWrapper.vue +++ b/src/views/dashboards/superUserDashboard/user/UserSubPageWrapper.vue @@ -1,12 +1,19 @@