fix: restore Slack i18n compatibility

This commit is contained in:
Jeppe Bundgaard
2026-06-08 17:25:56 +02:00
parent bc154a4e6d
commit d9f929df04
21 changed files with 165 additions and 17 deletions
@@ -251,7 +251,7 @@ const onResendInvite = async (subuser) => {
<td>{{ formatDateTime(subuser.updated_at) }}</td>
<td>
<div class="buttons is-justify-content-flex-end action-buttons">
<div class="buttons is-justify-content-flex-end action-buttons" :data-testid="`subuser-actions-${subuser.id}`">
<ActionSettingsWheelButton v-if="hasRowActions(subuser)">
<template #actions>
<ActionSettingsWheelItem
+12 -1
View File
@@ -2315,6 +2315,15 @@
"delete_confirm": "@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'}, @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} @:{'words.generated.produkt'}?",
"edit": "@:{'templates.generated.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL til kunderegistreringer",
"customer_registration_webhook_url_desc": "Slack-webhook der modtager en besked, når en ny kunderegistrering lykkes. Lad feltet være tomt for at deaktivere.",
"notification_settings": "Notifikationer",
"notification_settings_desc": "Slack-webhooks til systemhændelser.",
"subtitle": "Konfiguration af Slack-notifikationer",
"title": "Slack-konfiguration",
"unavailable": "Slack-konfigurationen er ikke tilgængelig i denne API-udgivelse."
},
"shelly": {
"api_key_desc": "@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.bruges'} @:{'words.generated.til'} @:{'words.generated.a_2'} @:{'words.generated.autentisere'} @:{'words.generated.shelly'}-@:{'words.generated.integrationen'}",
"api_settings_desc": "@:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.",
@@ -5479,7 +5488,9 @@
"email_notifications_desc": "@:{'words.generated.modtag'} @:{'words.generated.e'}-mails @:{'words.generated.med'} bookingbekræftelser @:{'words.generated.og'} @:{'words.generated.vaskecertifikater'}.",
"sms_notifications_desc": "@:{'words.generated.modtag'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'} @:{'words.generated.ved'} @:{'words.generated.forskellige'} @:{'words.generated.begivenheder'}.",
"sms_phone": "@.capitalize:{'words.generated.telefonnummer'} @:{'words.generated.til'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}",
"sms_phone_desc": "@.capitalize:{'words.generated.det'} @:{'words.generated.telefonnummer'}, @:{'words.generated.der'} @:{'words.generated.modtager'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}."
"sms_phone_desc": "@.capitalize:{'words.generated.det'} @:{'words.generated.telefonnummer'}, @:{'words.generated.der'} @:{'words.generated.modtager'} @:{'words.generated.sms'} @:{'words.generated.notifikationer'}.",
"superuser_notifications": "Superuser-notifikationer",
"superuser_notifications_desc": "Modtag e-mailnotifikationer, når en ny kunde registrerer sig på siden."
},
"security": {
"description": "@.capitalize:{'words.generated.dine'} sikkerhedsindstillinger",
+12 -1
View File
@@ -2425,6 +2425,15 @@
"delete_confirm": "@.capitalize:{'words.generated.sind'} @.capitalize:{'words.generated.sie'} @:{'words.generated.sicher'}, @:{'words.generated.dass'} @.capitalize:{'words.generated.sie'} @:{'words.generated.dieses'} @.capitalize:{'words.generated.produkt'} @:{'words.generated.l'}?@:{'words.generated.schen'} @:{'words.generated.m'}?@:{'words.generated.chten'}?",
"edit": "@.capitalize:{'words.generated.produkt'} @:{'words.generated.bearbeiten'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL fuer Kundenregistrierungen",
"customer_registration_webhook_url_desc": "Slack-Webhook, der eine Nachricht erhaelt, wenn eine neue Kundenregistrierung erfolgreich ist. Leer lassen, um dies zu deaktivieren.",
"notification_settings": "Benachrichtigungseinstellungen",
"notification_settings_desc": "Slack-Webhooks fuer Systemereignisse.",
"subtitle": "Konfiguration von Slack-Benachrichtigungen",
"title": "Slack-Konfiguration",
"unavailable": "Die Slack-Konfiguration ist in dieser API-Version nicht verfuegbar."
},
"shelly": {
"api_key_desc": "@.capitalize:{'words.generated.der'} @:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.schl'}?@:{'words.generated.ssel'} @:{'words.generated.wird'} @:{'words.generated.zur'} @:{'words.generated.authentifizierung'} @:{'words.generated.der'} @:{'words.generated.shelly'}-@.capitalize:{'words.generated.integration'} @:{'words.generated.verwendet'}",
"api_settings_desc": "@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.shelly'}.",
@@ -5589,7 +5598,9 @@
"email_notifications_desc": "@.upper:{'words.generated.e'}-@:{'words.generated.mails'} @:{'words.generated.mit'} @:{'words.generated.buchungsbest'}?@:{'words.generated.tigungen'} @:{'words.generated.und'} Waschzertifikaten @:{'words.generated.erhalten'}.",
"sms_notifications_desc": "@:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.verschiedene'} @:{'words.generated.ereignisse'} @:{'words.generated.erhalten'}.",
"sms_phone": "@:{'words.generated.telefonnummer'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'}",
"sms_phone_desc": "@.capitalize:{'words.generated.die'} @:{'words.generated.telefonnummer'}, @:{'words.generated.die'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.erh'}?@:{'words.generated.lt'}."
"sms_phone_desc": "@.capitalize:{'words.generated.die'} @:{'words.generated.telefonnummer'}, @:{'words.generated.die'} @:{'words.generated.sms'}-@:{'words.generated.benachrichtigungen'} @:{'words.generated.erh'}?@:{'words.generated.lt'}.",
"superuser_notifications": "Superuser-Benachrichtigungen",
"superuser_notifications_desc": "E-Mail-Benachrichtigungen erhalten, wenn sich ein neuer Kunde auf der Seite registriert."
},
"security": {
"description": "@.capitalize:{'words.generated.ihre'} Sicherheitseinstellungen",
+12 -1
View File
@@ -2149,6 +2149,15 @@
"delete_confirm": "@.capitalize:{'words.generated.are'} @:{'words.generated.you'} @:{'words.generated.sure'} @:{'words.generated.you'} @:{'words.generated.want'} @:{'words.generated.to'} @:{'words.generated.delete'} @:{'words.generated.this'} @:{'words.generated.product'}?",
"edit": "@:{'templates.generated.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Customer registration webhook URL",
"customer_registration_webhook_url_desc": "Slack webhook that receives a message when a new customer registration succeeds. Leave empty to disable.",
"notification_settings": "Notification settings",
"notification_settings_desc": "Slack webhooks for system events.",
"subtitle": "Configuration of Slack notifications",
"title": "Slack configuration",
"unavailable": "Slack configuration is not available on this API release."
},
"shelly": {
"api_key_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.key'} @:{'words.generated.is'} @:{'words.generated.used'} @:{'words.generated.to'} @:{'words.generated.authenticate'} @:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.integration'}",
"api_settings_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.shelly'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.",
@@ -5313,7 +5322,9 @@
"email_notifications_desc": "@.capitalize:{'words.generated.receive'} @:{'words.generated.emails'} @:{'words.generated.with'} @:{'words.generated.booking'} @:{'words.generated.confirmations'} @:{'words.generated.and'} @:{'words.generated.wash'} @:{'words.generated.certificates'}.",
"sms_notifications_desc": "@.capitalize:{'words.generated.receive'} @:{'words.generated.sms'} @:{'words.generated.notifications'} @:{'words.generated.for'} @:{'words.generated.various'} @:{'words.generated.events'}.",
"sms_phone": "@.capitalize:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.for'} @:{'words.generated.sms'} @:{'words.generated.notifications'}",
"sms_phone_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.that'} @:{'words.generated.receives'} @:{'words.generated.sms'} @:{'words.generated.notifications'}."
"sms_phone_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.phone'} @:{'words.generated.number'} @:{'words.generated.that'} @:{'words.generated.receives'} @:{'words.generated.sms'} @:{'words.generated.notifications'}.",
"superuser_notifications": "Superuser notifications",
"superuser_notifications_desc": "Receive email notifications when a new customer registers on the site."
},
"security": {
"description": "@.capitalize:{'words.generated.your'} @:{'words.generated.security'} @:{'words.generated.settings'}",
+12
View File
@@ -1347,6 +1347,15 @@
"subtitle": "@:products.subtitle",
"title": "@:common.products"
},
"slack": {
"customer_registration_webhook_url": "@:{'templates.generated.compat.configuration.slack.customer_registration_webhook_url'}",
"customer_registration_webhook_url_desc": "@:{'templates.generated.compat.configuration.slack.customer_registration_webhook_url_desc'}",
"notification_settings": "@:{'templates.generated.compat.configuration.slack.notification_settings'}",
"notification_settings_desc": "@:{'templates.generated.compat.configuration.slack.notification_settings_desc'}",
"subtitle": "@:{'templates.generated.compat.configuration.slack.subtitle'}",
"title": "@:{'templates.generated.compat.configuration.slack.title'}",
"unavailable": "@:{'templates.generated.compat.configuration.slack.unavailable'}"
},
"shelly": {
"api_key": "@:configuration.limble.api_key",
"api_key_desc": "@:{'templates.generated.compat.configuration.shelly.api_key_desc'}",
@@ -4732,6 +4741,7 @@
"department_relays": "@:{'templates.generated.compat.superuser.nav.department_relays'}",
"departments": "@:common.departments",
"employees": "@:{'templates.generated.compat.common.roless.employee'}",
"error_reports": "@:{'templates.generated.compat.superuser.nav.error_reports'}",
"invoices": "@:common.invoices",
"invoicing": "@:{'templates.generated.compat.superuser.nav.invoicing'}",
"orders": "@:{'templates.generated.compat.superuser.nav.orders'}",
@@ -5556,6 +5566,8 @@
"sms_phone": "@:{'templates.generated.compat.user_dashboard.profile.notifications.sms_phone'}",
"sms_phone_desc": "@:{'templates.generated.compat.user_dashboard.profile.notifications.sms_phone_desc'}",
"sms_subtitle": "@:time_booking_flow.sms",
"superuser_notifications": "@:{'templates.generated.compat.user_dashboard.profile.notifications.superuser_notifications'}",
"superuser_notifications_desc": "@:{'templates.generated.compat.user_dashboard.profile.notifications.superuser_notifications_desc'}",
"title": "@:nav.notifications"
},
"security": {
+12 -1
View File
@@ -2426,6 +2426,15 @@
"delete_confirm": "@.capitalize:{'words.generated.er'} @:{'words.generated.du'} @:{'words.generated.sikker'} @:{'words.generated.pa'} @:{'words.generated.at'} @:{'words.generated.du'} @:{'words.generated.vil'} @:{'words.generated.slette'} @:{'words.generated.dette'} produktet?",
"edit": "@:{'templates.generated.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL for kunderegistreringer",
"customer_registration_webhook_url_desc": "Slack-webhook som mottar en melding når en ny kunderegistrering lykkes. La feltet stå tomt for å deaktivere.",
"notification_settings": "Varslingsinnstillinger",
"notification_settings_desc": "Slack-webhooks for systemhendelser.",
"subtitle": "Konfigurasjon av Slack-varsler",
"title": "Slack-konfigurasjon",
"unavailable": "Slack-konfigurasjonen er ikke tilgjengelig i denne API-utgivelsen."
},
"shelly": {
"api_key_desc": "@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.nøkkelen'} @:{'words.generated.brukes'} @:{'words.generated.til'} @:{'words.generated.a'} @:{'words.generated.autentisere'} @:{'words.generated.shelly'}-@:{'words.generated.integrasjonen'}",
"api_settings_desc": "@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.",
@@ -5590,7 +5599,9 @@
"email_notifications_desc": "@.capitalize:{'words.generated.motta'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.med'} @:{'words.generated.bestillingsbekreftelser'} @:{'words.generated.og'} @:{'words.generated.vaskesertifikater'}.",
"sms_notifications_desc": "@.capitalize:{'words.generated.motta'} @:{'words.generated.sms'}-@:{'words.generated.varsler'} @:{'words.generated.for'} @:{'words.generated.ulike'} @:{'words.generated.arrangementer'}.",
"sms_phone": "@.capitalize:{'words.generated.telefonnummer'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}",
"sms_phone_desc": "@.capitalize:{'words.generated.telefonnummeret'} @:{'words.generated.som'} @:{'words.generated.mottar'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}."
"sms_phone_desc": "@.capitalize:{'words.generated.telefonnummeret'} @:{'words.generated.som'} @:{'words.generated.mottar'} @:{'words.generated.sms'}-@:{'words.generated.varsler'}.",
"superuser_notifications": "Superbrukervarsler",
"superuser_notifications_desc": "Motta e-postvarsler når en ny kunde registrerer seg på siden."
},
"security": {
"description": "Sikkerhetsinnstillingene @:{'words.generated.dine'}",
+12 -1
View File
@@ -2476,6 +2476,15 @@
"delete_confirm": "@.capitalize:{'words.generated.ar'} @:{'words.generated.du'} @:{'words.generated.saker'} @:{'words.generated.pa'} @:{'words.generated.att'} @:{'words.generated.du'} @:{'words.generated.vill'} @:{'words.generated.ta'} @:{'words.generated.bort'} @:{'words.generated.denna'} @:{'words.generated.produkt'}?",
"edit": "@:{'templates.generated.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL för kundregistreringar",
"customer_registration_webhook_url_desc": "Slack-webhook som får ett meddelande när en ny kundregistrering lyckas. Lämna tomt för att inaktivera.",
"notification_settings": "Aviseringsinställningar",
"notification_settings_desc": "Slack-webhooks för systemhändelser.",
"subtitle": "Konfiguration av Slack-aviseringar",
"title": "Slack-konfiguration",
"unavailable": "Slack-konfigurationen är inte tillgänglig i den här API-versionen."
},
"shelly": {
"api_key_desc": "@:{'words.generated.shelly'} @:{'words.generated.api'}-@:{'words.generated.nyckeln'} @:{'words.generated.anvands'} @:{'words.generated.for'} @:{'words.generated.att'} @:{'words.generated.autentisera'} @:{'words.generated.shelly'}-@:{'words.generated.integrationen'}",
"api_settings_desc": "@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.shelly'} @:{'words.generated.api'}.",
@@ -5640,7 +5649,9 @@
"email_notifications_desc": "@.capitalize:{'words.generated.ta'} @:{'words.generated.emot'} @:{'words.generated.e'}-@:{'words.generated.post'} @:{'words.generated.med'} @:{'words.generated.bokningsbekraftelser'} @:{'words.generated.och'} @:{'words.generated.tvattcertifikat'}.",
"sms_notifications_desc": "@.capitalize:{'words.generated.ta'} @:{'words.generated.emot'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'} @:{'words.generated.for'} @:{'words.generated.olika'} @:{'words.generated.handelser'}.",
"sms_phone": "@.capitalize:{'words.generated.telefonnummer'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}",
"sms_phone_desc": "@.capitalize:{'words.generated.telefonnumret'} @:{'words.generated.som'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}."
"sms_phone_desc": "@.capitalize:{'words.generated.telefonnumret'} @:{'words.generated.som'} @:{'words.generated.for'} @:{'words.generated.sms'}-@:{'words.generated.aviseringar'}.",
"superuser_notifications": "Superanvändaraviseringar",
"superuser_notifications_desc": "Ta emot e-postaviseringar när en ny kund registrerar sig på sidan."
},
"security": {
"description": "@.capitalize:{'words.generated.dina'} säkerhetsinställningar",
@@ -158,6 +158,15 @@
"delete_confirm": "@.capitalize:{'terms.glossary.er'} @:{'terms.glossary.du'} @:{'terms.glossary.sikker'} @:{'terms.glossary.pa'}, @:{'terms.glossary.at'} @:{'terms.glossary.du'} @:{'terms.glossary.vil'} @:{'terms.glossary.slette'} @:{'terms.glossary.dette'} @:{'terms.glossary.produkt'}?",
"edit": "@:{'phrases.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL til kunderegistreringer",
"customer_registration_webhook_url_desc": "Slack-webhook der modtager en besked, når en ny kunderegistrering lykkes. Lad feltet være tomt for at deaktivere.",
"notification_settings": "Notifikationer",
"notification_settings_desc": "Slack-webhooks til systemhændelser.",
"subtitle": "Konfiguration af Slack-notifikationer",
"title": "Slack-konfiguration",
"unavailable": "Slack-konfigurationen er ikke tilgængelig i denne API-udgivelse."
},
"shelly": {
"api_key_desc": "@:{'terms.glossary.shelly'} @:{'terms.glossary.api'}-@:{'terms.glossary.nøkkelen'} @:{'terms.glossary.bruges'} @:{'terms.glossary.til'} @:{'terms.glossary.a_2'} @:{'terms.glossary.autentisere'} @:{'terms.glossary.shelly'}-@:{'terms.glossary.integrationen'}",
"api_settings_desc": "@:{'terms.glossary.shelly'} @:{'terms.glossary.api'} @:{'terms.glossary.forbindelsesindstillingerne'}.",
@@ -103,7 +103,9 @@
"email_notifications_desc": "@:{'terms.glossary.modtag'} @:{'terms.glossary.e'}-mails @:{'terms.glossary.med'} bookingbekræftelser @:{'terms.glossary.og'} @:{'terms.glossary.vaskecertifikater'}.",
"sms_notifications_desc": "@:{'terms.glossary.modtag'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifikationer'} @:{'terms.glossary.ved'} @:{'terms.glossary.forskellige'} @:{'terms.glossary.begivenheder'}.",
"sms_phone": "@.capitalize:{'terms.glossary.telefonnummer'} @:{'terms.glossary.til'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifikationer'}",
"sms_phone_desc": "@.capitalize:{'terms.glossary.det'} @:{'terms.glossary.telefonnummer'}, @:{'terms.glossary.der'} @:{'terms.glossary.modtager'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifikationer'}."
"sms_phone_desc": "@.capitalize:{'terms.glossary.det'} @:{'terms.glossary.telefonnummer'}, @:{'terms.glossary.der'} @:{'terms.glossary.modtager'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifikationer'}.",
"superuser_notifications": "Superuser-notifikationer",
"superuser_notifications_desc": "Modtag e-mailnotifikationer, når en ny kunde registrerer sig på siden."
},
"security": {
"description": "@.capitalize:{'terms.glossary.dine'} sikkerhedsindstillinger",
@@ -158,6 +158,15 @@
"delete_confirm": "@.capitalize:{'terms.glossary.sind'} @.capitalize:{'terms.glossary.sie'} @:{'terms.glossary.sicher'}, @:{'terms.glossary.dass'} @.capitalize:{'terms.glossary.sie'} @:{'terms.glossary.dieses'} @.capitalize:{'terms.glossary.produkt'} @:{'terms.glossary.l'}?@:{'terms.glossary.schen'} @:{'terms.glossary.m'}?@:{'terms.glossary.chten'}?",
"edit": "@.capitalize:{'terms.glossary.produkt'} @:{'terms.glossary.bearbeiten'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL fuer Kundenregistrierungen",
"customer_registration_webhook_url_desc": "Slack-Webhook, der eine Nachricht erhaelt, wenn eine neue Kundenregistrierung erfolgreich ist. Leer lassen, um dies zu deaktivieren.",
"notification_settings": "Benachrichtigungseinstellungen",
"notification_settings_desc": "Slack-Webhooks fuer Systemereignisse.",
"subtitle": "Konfiguration von Slack-Benachrichtigungen",
"title": "Slack-Konfiguration",
"unavailable": "Die Slack-Konfiguration ist in dieser API-Version nicht verfuegbar."
},
"shelly": {
"api_key_desc": "@.capitalize:{'terms.glossary.der'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'}-@:{'terms.glossary.schl'}?@:{'terms.glossary.ssel'} @:{'terms.glossary.wird'} @:{'terms.glossary.zur'} @:{'terms.glossary.authentifizierung'} @:{'terms.glossary.der'} @:{'terms.glossary.shelly'}-@.capitalize:{'terms.glossary.integration'} @:{'terms.glossary.verwendet'}",
"api_settings_desc": "@:{'terms.glossary.api'}-@:{'terms.glossary.verbindungseinstellungen'} @:{'terms.glossary.f'}?@:{'terms.glossary.r'} @:{'terms.glossary.shelly'}.",
@@ -103,7 +103,9 @@
"email_notifications_desc": "@.upper:{'terms.glossary.e'}-@:{'terms.glossary.mails'} @:{'terms.glossary.mit'} @:{'terms.glossary.buchungsbest'}?@:{'terms.glossary.tigungen'} @:{'terms.glossary.und'} Waschzertifikaten @:{'terms.glossary.erhalten'}.",
"sms_notifications_desc": "@:{'terms.glossary.sms'}-@:{'terms.glossary.benachrichtigungen'} @:{'terms.glossary.f'}?@:{'terms.glossary.r'} @:{'terms.glossary.verschiedene'} @:{'terms.glossary.ereignisse'} @:{'terms.glossary.erhalten'}.",
"sms_phone": "@:{'terms.glossary.telefonnummer'} @:{'terms.glossary.f'}?@:{'terms.glossary.r'} @:{'terms.glossary.sms'}-@:{'terms.glossary.benachrichtigungen'}",
"sms_phone_desc": "@.capitalize:{'terms.glossary.die'} @:{'terms.glossary.telefonnummer'}, @:{'terms.glossary.die'} @:{'terms.glossary.sms'}-@:{'terms.glossary.benachrichtigungen'} @:{'terms.glossary.erh'}?@:{'terms.glossary.lt'}."
"sms_phone_desc": "@.capitalize:{'terms.glossary.die'} @:{'terms.glossary.telefonnummer'}, @:{'terms.glossary.die'} @:{'terms.glossary.sms'}-@:{'terms.glossary.benachrichtigungen'} @:{'terms.glossary.erh'}?@:{'terms.glossary.lt'}.",
"superuser_notifications": "Superuser-Benachrichtigungen",
"superuser_notifications_desc": "E-Mail-Benachrichtigungen erhalten, wenn sich ein neuer Kunde auf der Seite registriert."
},
"security": {
"description": "@.capitalize:{'terms.glossary.ihre'} Sicherheitseinstellungen",
@@ -158,6 +158,15 @@
"delete_confirm": "@.capitalize:{'terms.glossary.are'} @:{'terms.glossary.you'} @:{'terms.glossary.sure'} @:{'terms.glossary.you'} @:{'terms.glossary.want'} @:{'terms.glossary.to'} @:{'terms.glossary.delete'} @:{'terms.glossary.this'} @:{'terms.glossary.product'}?",
"edit": "@:{'phrases.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Customer registration webhook URL",
"customer_registration_webhook_url_desc": "Slack webhook that receives a message when a new customer registration succeeds. Leave empty to disable.",
"notification_settings": "Notification settings",
"notification_settings_desc": "Slack webhooks for system events.",
"subtitle": "Configuration of Slack notifications",
"title": "Slack configuration",
"unavailable": "Slack configuration is not available on this API release."
},
"shelly": {
"api_key_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'} @:{'terms.glossary.key'} @:{'terms.glossary.is'} @:{'terms.glossary.used'} @:{'terms.glossary.to'} @:{'terms.glossary.authenticate'} @:{'terms.replication.article.host_mention'} @:{'terms.glossary.shelly'} @:{'terms.glossary.integration'}",
"api_settings_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'} @:{'terms.glossary.connection'} @:{'terms.glossary.settings'}.",
@@ -103,7 +103,9 @@
"email_notifications_desc": "@.capitalize:{'terms.glossary.receive'} @:{'terms.glossary.emails'} @:{'terms.glossary.with'} @:{'terms.glossary.booking'} @:{'terms.glossary.confirmations'} @:{'terms.glossary.and'} @:{'terms.glossary.wash'} @:{'terms.glossary.certificates'}.",
"sms_notifications_desc": "@.capitalize:{'terms.glossary.receive'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifications'} @:{'terms.glossary.for'} @:{'terms.glossary.various'} @:{'terms.glossary.events'}.",
"sms_phone": "@.capitalize:{'terms.glossary.phone'} @:{'terms.glossary.number'} @:{'terms.glossary.for'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifications'}",
"sms_phone_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.phone'} @:{'terms.glossary.number'} @:{'terms.glossary.that'} @:{'terms.glossary.receives'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifications'}."
"sms_phone_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.phone'} @:{'terms.glossary.number'} @:{'terms.glossary.that'} @:{'terms.glossary.receives'} @:{'terms.glossary.sms'} @:{'terms.glossary.notifications'}.",
"superuser_notifications": "Superuser notifications",
"superuser_notifications_desc": "Receive email notifications when a new customer registers on the site."
},
"security": {
"description": "@.capitalize:{'terms.glossary.your'} @:{'terms.glossary.security'} @:{'terms.glossary.settings'}",
@@ -184,6 +184,15 @@
"subtitle": "@:products.subtitle",
"title": "@:common.products"
},
"slack": {
"customer_registration_webhook_url": "@:{'phrases.compat.configuration.slack.customer_registration_webhook_url'}",
"customer_registration_webhook_url_desc": "@:{'phrases.compat.configuration.slack.customer_registration_webhook_url_desc'}",
"notification_settings": "@:{'phrases.compat.configuration.slack.notification_settings'}",
"notification_settings_desc": "@:{'phrases.compat.configuration.slack.notification_settings_desc'}",
"subtitle": "@:{'phrases.compat.configuration.slack.subtitle'}",
"title": "@:{'phrases.compat.configuration.slack.title'}",
"unavailable": "@:{'phrases.compat.configuration.slack.unavailable'}"
},
"shelly": {
"api_key": "@:configuration.limble.api_key",
"api_key_desc": "@:{'phrases.compat.configuration.shelly.api_key_desc'}",
@@ -38,6 +38,7 @@
"department_relays": "@:{'phrases.compat.superuser.nav.department_relays'}",
"departments": "@:common.departments",
"employees": "@:{'phrases.compat.common.roless.employee'}",
"error_reports": "@:{'phrases.compat.superuser.nav.error_reports'}",
"invoices": "@:common.invoices",
"invoicing": "@:{'phrases.compat.superuser.nav.invoicing'}",
"orders": "@:{'phrases.compat.superuser.nav.orders'}",
@@ -147,6 +147,8 @@
"sms_phone": "@:{'phrases.compat.user_dashboard.profile.notifications.sms_phone'}",
"sms_phone_desc": "@:{'phrases.compat.user_dashboard.profile.notifications.sms_phone_desc'}",
"sms_subtitle": "@:time_booking_flow.sms",
"superuser_notifications": "@:{'phrases.compat.user_dashboard.profile.notifications.superuser_notifications'}",
"superuser_notifications_desc": "@:{'phrases.compat.user_dashboard.profile.notifications.superuser_notifications_desc'}",
"title": "@:nav.notifications"
},
"security": {
@@ -158,6 +158,15 @@
"delete_confirm": "@.capitalize:{'terms.glossary.er'} @:{'terms.glossary.du'} @:{'terms.glossary.sikker'} @:{'terms.glossary.pa'} @:{'terms.glossary.at'} @:{'terms.glossary.du'} @:{'terms.glossary.vil'} @:{'terms.glossary.slette'} @:{'terms.glossary.dette'} produktet?",
"edit": "@:{'phrases.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL for kunderegistreringer",
"customer_registration_webhook_url_desc": "Slack-webhook som mottar en melding når en ny kunderegistrering lykkes. La feltet stå tomt for å deaktivere.",
"notification_settings": "Varslingsinnstillinger",
"notification_settings_desc": "Slack-webhooks for systemhendelser.",
"subtitle": "Konfigurasjon av Slack-varsler",
"title": "Slack-konfigurasjon",
"unavailable": "Slack-konfigurasjonen er ikke tilgjengelig i denne API-utgivelsen."
},
"shelly": {
"api_key_desc": "@:{'terms.glossary.shelly'} @:{'terms.glossary.api'}-@:{'terms.glossary.nøkkelen'} @:{'terms.glossary.brukes'} @:{'terms.glossary.til'} @:{'terms.glossary.a'} @:{'terms.glossary.autentisere'} @:{'terms.glossary.shelly'}-@:{'terms.glossary.integrasjonen'}",
"api_settings_desc": "@:{'terms.glossary.shelly'} @:{'terms.glossary.api'}-@:{'terms.glossary.tilkoblingsinnstillingene'}.",
@@ -103,7 +103,9 @@
"email_notifications_desc": "@.capitalize:{'terms.glossary.motta'} @:{'terms.glossary.e'}-@:{'terms.glossary.post'} @:{'terms.glossary.med'} @:{'terms.glossary.bestillingsbekreftelser'} @:{'terms.glossary.og'} @:{'terms.glossary.vaskesertifikater'}.",
"sms_notifications_desc": "@.capitalize:{'terms.glossary.motta'} @:{'terms.glossary.sms'}-@:{'terms.glossary.varsler'} @:{'terms.glossary.for'} @:{'terms.glossary.ulike'} @:{'terms.glossary.arrangementer'}.",
"sms_phone": "@.capitalize:{'terms.glossary.telefonnummer'} @:{'terms.glossary.for'} @:{'terms.glossary.sms'}-@:{'terms.glossary.varsler'}",
"sms_phone_desc": "@.capitalize:{'terms.glossary.telefonnummeret'} @:{'terms.glossary.som'} @:{'terms.glossary.mottar'} @:{'terms.glossary.sms'}-@:{'terms.glossary.varsler'}."
"sms_phone_desc": "@.capitalize:{'terms.glossary.telefonnummeret'} @:{'terms.glossary.som'} @:{'terms.glossary.mottar'} @:{'terms.glossary.sms'}-@:{'terms.glossary.varsler'}.",
"superuser_notifications": "Superbrukervarsler",
"superuser_notifications_desc": "Motta e-postvarsler når en ny kunde registrerer seg på siden."
},
"security": {
"description": "Sikkerhetsinnstillingene @:{'terms.glossary.dine'}",
@@ -158,6 +158,15 @@
"delete_confirm": "@.capitalize:{'terms.glossary.ar'} @:{'terms.glossary.du'} @:{'terms.glossary.saker'} @:{'terms.glossary.pa'} @:{'terms.glossary.att'} @:{'terms.glossary.du'} @:{'terms.glossary.vill'} @:{'terms.glossary.ta'} @:{'terms.glossary.bort'} @:{'terms.glossary.denna'} @:{'terms.glossary.produkt'}?",
"edit": "@:{'phrases.compat.products.edit_product'}"
},
"slack": {
"customer_registration_webhook_url": "Webhook-URL för kundregistreringar",
"customer_registration_webhook_url_desc": "Slack-webhook som får ett meddelande när en ny kundregistrering lyckas. Lämna tomt för att inaktivera.",
"notification_settings": "Aviseringsinställningar",
"notification_settings_desc": "Slack-webhooks för systemhändelser.",
"subtitle": "Konfiguration av Slack-aviseringar",
"title": "Slack-konfiguration",
"unavailable": "Slack-konfigurationen är inte tillgänglig i den här API-versionen."
},
"shelly": {
"api_key_desc": "@:{'terms.glossary.shelly'} @:{'terms.glossary.api'}-@:{'terms.glossary.nyckeln'} @:{'terms.glossary.anvands'} @:{'terms.glossary.for'} @:{'terms.glossary.att'} @:{'terms.glossary.autentisera'} @:{'terms.glossary.shelly'}-@:{'terms.glossary.integrationen'}",
"api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.shelly'} @:{'terms.glossary.api'}.",
@@ -103,7 +103,9 @@
"email_notifications_desc": "@.capitalize:{'terms.glossary.ta'} @:{'terms.glossary.emot'} @:{'terms.glossary.e'}-@:{'terms.glossary.post'} @:{'terms.glossary.med'} @:{'terms.glossary.bokningsbekraftelser'} @:{'terms.glossary.och'} @:{'terms.glossary.tvattcertifikat'}.",
"sms_notifications_desc": "@.capitalize:{'terms.glossary.ta'} @:{'terms.glossary.emot'} @:{'terms.glossary.sms'}-@:{'terms.glossary.aviseringar'} @:{'terms.glossary.for'} @:{'terms.glossary.olika'} @:{'terms.glossary.handelser'}.",
"sms_phone": "@.capitalize:{'terms.glossary.telefonnummer'} @:{'terms.glossary.for'} @:{'terms.glossary.sms'}-@:{'terms.glossary.aviseringar'}",
"sms_phone_desc": "@.capitalize:{'terms.glossary.telefonnumret'} @:{'terms.glossary.som'} @:{'terms.glossary.for'} @:{'terms.glossary.sms'}-@:{'terms.glossary.aviseringar'}."
"sms_phone_desc": "@.capitalize:{'terms.glossary.telefonnumret'} @:{'terms.glossary.som'} @:{'terms.glossary.for'} @:{'terms.glossary.sms'}-@:{'terms.glossary.aviseringar'}.",
"superuser_notifications": "Superanvändaraviseringar",
"superuser_notifications_desc": "Ta emot e-postaviseringar när en ny kund registrerar sig på sidan."
},
"security": {
"description": "@.capitalize:{'terms.glossary.dina'} säkerhetsinställningar",
+20 -6
View File
@@ -553,6 +553,15 @@ async function mockSuperuserManagementApi(page: Page) {
return { invitePayloads, resendPayloads };
}
async function openSubuserActions(page: Page, subuserId: number) {
const actions = page.getByTestId(`subuser-actions-${subuserId}`);
await actions.locator(".action-settings-wheel-trigger").click();
await expect(actions.locator(".dropdown-content")).toBeVisible();
return actions;
}
test("customer user can invite and manage grant access from /user/subusers without editing the driver account", async ({
page,
}) => {
@@ -582,21 +591,25 @@ test("customer user can invite and manage grant access from /user/subusers witho
await expect(page.getByTestId("subuser-email-100")).toHaveText("E-mail oplyses ved accept");
await expect(page.getByTestId("subuser-username-100")).toHaveText("Brugernavn oplyses ved accept");
await page.getByTestId("subuser-permissions-100").click();
let actions = await openSubuserActions(page, 100);
await actions.getByTestId("subuser-permissions-100").click();
await expect(page.getByText("Tilladelsesnoder for Invited Driver")).toBeVisible();
await page.getByTestId("permission-node-checkbox-SUBUSERS_LIST").click();
await page.getByRole("button", { name: "Gem" }).click();
await expect(page.getByText(/SUBUSERS_LIST/)).toBeVisible();
await page.getByTestId("subuser-toggle-100").click();
actions = await openSubuserActions(page, 100);
await actions.getByTestId("subuser-toggle-100").click();
await page.getByRole("button", { name: "Deaktivér" }).click();
await expect(page.getByTestId("subuser-status-100")).toContainText("Deaktiveret");
await page.getByTestId("subuser-toggle-100").click();
actions = await openSubuserActions(page, 100);
await actions.getByTestId("subuser-toggle-100").click();
await page.getByRole("button", { name: "Genaktivér" }).click();
await expect(page.getByTestId("subuser-status-100")).toContainText("Afventer opsætning");
await page.getByTestId("subuser-resend-100").click();
actions = await openSubuserActions(page, 100);
await actions.getByTestId("subuser-resend-100").click();
await expect(page.getByRole("heading", { name: "Chauffør oprettet" })).toBeVisible();
await page.getByRole("button", { name: "Luk" }).click();
});
@@ -630,9 +643,10 @@ test("superusers can list and invite chauffeurs across customers", async ({ page
await expect(page.getByText("12345678 - Nordic Transport")).toBeVisible();
await expect(page.getByText("87654321 - City Logistics")).toBeVisible();
await expect(page.getByText("Grant #510")).toBeVisible();
await expect(page.getByTestId("subuser-resend-51")).toBeVisible();
const actions = await openSubuserActions(page, 51);
await expect(actions.getByTestId("subuser-resend-51")).toBeVisible();
await page.getByTestId("subuser-resend-51").click();
await actions.getByTestId("subuser-resend-51").click();
await expect(page.getByRole("heading", { name: "Chauffør oprettet" })).toBeVisible();
await page.getByRole("button", { name: "Luk" }).click();
expect(resendPayloads).toContainEqual({ id: 51, grant_id: 510 });