Compare commits

...
Author SHA1 Message Date
Jeppe Bundgaard 4ec613880a Harden self-serve smoke timing 2026-07-06 11:25:07 +02:00
Jeppe Bundgaard 6ca00dfb32 Add limited role permission help modal 2026-07-06 10:38:51 +02:00
15 changed files with 3045 additions and 24 deletions
+248
View File
@@ -1239,6 +1239,130 @@
"load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -5844,6 +5968,130 @@
"load_employees": "@.capitalize:{'words.generated.medarbejdere'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'}.", "load_employees": "@.capitalize:{'words.generated.medarbejdere'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.indlæses'}.",
"save_employee": "@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gemmes'}.", "save_employee": "@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.gemmes'}.",
"deactivate_employee": "@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} deaktiveres." "deactivate_employee": "@.capitalize:{'words.generated.medarbejderen'} @:{'words.generated.kunne'} @:{'words.generated.ikke'} deaktiveres."
},
"role_permissions": {
"title": "Rolletilladelser",
"tooltip": "Vis rolletilladelser",
"intro": "Roller samler de præcise funktioner, der tildeles en medarbejder, når rollen gemmes.",
"scope": "Alle funktioner er begrænset til de afdelinger, der vælges for medarbejderen.",
"selected": "Valgt",
"close": "Luk",
"unavailable": "Tilladelsesdetaljer er ikke tilgængelige for denne rolle, før rollekataloget er opdateret.",
"groups": {
"account": "Konto",
"orders": "Ordrer",
"bookings": "Bookinger",
"time_bookings": "Tidsbookinger",
"reports": "Rapporter",
"limited_backoffice": "Backoffice",
"unknown": "Øvrigt"
},
"capabilities": {
"sign_in": {
"label": "Log ind",
"description": "Giver medarbejderen adgang til at logge ind i Pleno."
},
"view_own_permissions": {
"label": "Se egne tilladelser",
"description": "Viser medarbejderen, hvilke adgangsrettigheder kontoen har."
},
"view_orders": {
"label": "Se ordrer",
"description": "Kan åbne ordrelister og ordredetaljer for tildelte afdelinger."
},
"create_orders": {
"label": "Opret ordrer",
"description": "Kan oprette nye ordrer for tildelte afdelinger."
},
"edit_orders": {
"label": "Rediger ordrer",
"description": "Kan ændre ordredetaljer for tildelte afdelinger."
},
"delete_orders": {
"label": "Slet ordrer",
"description": "Kan slette ordrer i tildelte afdelinger."
},
"view_order_items": {
"label": "Se ordrelinjer",
"description": "Kan se produkter, ydelser og priser på ordrer."
},
"create_order_items": {
"label": "Opret ordrelinjer",
"description": "Kan tilføje produkter og ydelser til ordrer."
},
"update_order_lines": {
"label": "Rediger ordrelinjer",
"description": "Kan ændre produkter, antal og priser på ordrer."
},
"remove_order_lines": {
"label": "Slet ordrelinjer",
"description": "Kan fjerne produkter og ydelser fra ordrer."
},
"charge_orders": {
"label": "Opkræv ordrer",
"description": "Kan tage betaling eller opkræve en betalingsreservation for en ordre."
},
"view_department_bookings": {
"label": "Se afdelingsbookinger",
"description": "Kan se bookinger for tildelte afdelinger."
},
"view_own_bookings": {
"label": "Se egne bookinger",
"description": "Kan se bookingantal og bookinger knyttet til medarbejderkontoen."
},
"update_bookings": {
"label": "Rediger bookinger",
"description": "Kan ændre tilladte bookingdetaljer."
},
"create_bookings": {
"label": "Opret bookinger",
"description": "Kan oprette nye bookinger for tildelte afdelinger."
},
"mark_bookings_complete": {
"label": "Afslut bookinger",
"description": "Kan markere bookinger som afsluttet."
},
"send_booking_confirmations": {
"label": "Gensend bookingbekræftelser",
"description": "Kan gensende bookingbekræftelser og afslutningsmails."
},
"view_time_booking_entries": {
"label": "Se tidsbookinger",
"description": "Kan gennemse tidsbookingposter for tildelte afdelinger."
},
"create_time_booking_entries": {
"label": "Opret tidsbookinger",
"description": "Kan oprette nye tidsbookingposter."
},
"edit_time_booking_entries": {
"label": "Rediger tidsbookinger",
"description": "Kan redigere tidsbookingposter, når backend-ruten understøtter det."
},
"view_order_statistics": {
"label": "Se ordrestatistik",
"description": "Kan åbne statistikvisninger for ordrer i tildelte afdelinger."
},
"view_booking_statistics": {
"label": "Se bookingstatistik",
"description": "Kan åbne statistikvisninger for bookinger i tildelte afdelinger."
},
"open_limited_backoffice": {
"label": "Åbn begrænset backoffice",
"description": "Kan tilgå det begrænsede backofficeområde."
},
"manage_department_prices": {
"label": "Administrer afdelingspriser",
"description": "Kan redigere eksplicitte priser for tildelte afdelinger."
},
"manage_employee_access": {
"label": "Administrer medarbejderadgang",
"description": "Kan oprette, redigere og deaktivere begrænsede backofficemedarbejdere."
},
"unknown": {
"label": "Ekstra funktion",
"description": "Denne funktion kommer fra rollekataloget, men er endnu ikke beskrevet i grænsefladen."
}
}
} }
} }
} }
+248
View File
@@ -1350,6 +1350,130 @@
"load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -5955,6 +6079,130 @@
"load_employees": "@:{'words.generated.mitarbeiter'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.", "load_employees": "@:{'words.generated.mitarbeiter'} @:{'words.generated.konnten'} @:{'words.generated.nicht'} @:{'words.generated.geladen'} @:{'words.generated.werden'}.",
"save_employee": "@:{'words.generated.mitarbeiter'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gespeichert'} @:{'words.generated.werden'}.", "save_employee": "@:{'words.generated.mitarbeiter'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.gespeichert'} @:{'words.generated.werden'}.",
"deactivate_employee": "@:{'words.generated.mitarbeiter'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.deaktiviert'} @:{'words.generated.werden'}." "deactivate_employee": "@:{'words.generated.mitarbeiter'} @:{'words.generated.konnte'} @:{'words.generated.nicht'} @:{'words.generated.deaktiviert'} @:{'words.generated.werden'}."
},
"role_permissions": {
"title": "Rollenberechtigungen",
"tooltip": "Rollenberechtigungen anzeigen",
"intro": "Rollen bündeln die genauen Funktionen, die einem Mitarbeiter beim Speichern der Rolle zugewiesen werden.",
"scope": "Jede Funktion ist auf die Abteilungen begrenzt, die für den Mitarbeiter ausgewählt sind.",
"selected": "Ausgewählt",
"close": "Schließen",
"unavailable": "Berechtigungsdetails sind für diese Rolle erst verfügbar, wenn der Rollenkatalog aktualisiert wurde.",
"groups": {
"account": "Konto",
"orders": "Aufträge",
"bookings": "Buchungen",
"time_bookings": "Zeitbuchungen",
"reports": "Berichte",
"limited_backoffice": "Backoffice",
"unknown": "Sonstiges"
},
"capabilities": {
"sign_in": {
"label": "Anmelden",
"description": "Erlaubt dem Mitarbeiter, sich bei Pleno anzumelden."
},
"view_own_permissions": {
"label": "Eigene Berechtigungen anzeigen",
"description": "Zeigt dem Mitarbeiter, welche Zugriffsrechte das Konto hat."
},
"view_orders": {
"label": "Aufträge anzeigen",
"description": "Kann Auftragslisten und Auftragsdetails für zugewiesene Abteilungen öffnen."
},
"create_orders": {
"label": "Aufträge erstellen",
"description": "Kann neue Aufträge für zugewiesene Abteilungen erstellen."
},
"edit_orders": {
"label": "Aufträge bearbeiten",
"description": "Kann Auftragsdetails für zugewiesene Abteilungen ändern."
},
"delete_orders": {
"label": "Aufträge löschen",
"description": "Kann Aufträge in zugewiesenen Abteilungen löschen."
},
"view_order_items": {
"label": "Auftragspositionen anzeigen",
"description": "Kann Produkte, Leistungen und Preise auf Aufträgen sehen."
},
"create_order_items": {
"label": "Auftragspositionen erstellen",
"description": "Kann Produkte und Leistungen zu Aufträgen hinzufügen."
},
"update_order_lines": {
"label": "Auftragspositionen bearbeiten",
"description": "Kann Produkte, Mengen und Preise auf Aufträgen ändern."
},
"remove_order_lines": {
"label": "Auftragspositionen löschen",
"description": "Kann Produkte und Leistungen aus Aufträgen entfernen."
},
"charge_orders": {
"label": "Aufträge abrechnen",
"description": "Kann Zahlungen annehmen oder eine Zahlungsreservierung für einen Auftrag belasten."
},
"view_department_bookings": {
"label": "Abteilungsbuchungen anzeigen",
"description": "Kann Buchungen für zugewiesene Abteilungen sehen."
},
"view_own_bookings": {
"label": "Eigene Buchungen anzeigen",
"description": "Kann Buchungszahlen und Buchungen sehen, die mit dem Mitarbeiterkonto verbunden sind."
},
"update_bookings": {
"label": "Buchungen bearbeiten",
"description": "Kann erlaubte Buchungsdetails ändern."
},
"create_bookings": {
"label": "Buchungen erstellen",
"description": "Kann neue Buchungen für zugewiesene Abteilungen erstellen."
},
"mark_bookings_complete": {
"label": "Buchungen abschließen",
"description": "Kann Buchungen als abgeschlossen markieren."
},
"send_booking_confirmations": {
"label": "Buchungsbestätigungen erneut senden",
"description": "Kann Buchungsbestätigungen und Abschluss-E-Mails erneut senden."
},
"view_time_booking_entries": {
"label": "Zeitbuchungen anzeigen",
"description": "Kann Zeitbuchungseinträge für zugewiesene Abteilungen prüfen."
},
"create_time_booking_entries": {
"label": "Zeitbuchungen erstellen",
"description": "Kann neue Zeitbuchungseinträge hinzufügen."
},
"edit_time_booking_entries": {
"label": "Zeitbuchungen bearbeiten",
"description": "Kann Zeitbuchungseinträge bearbeiten, wenn die Backend-Route dies unterstützt."
},
"view_order_statistics": {
"label": "Auftragsstatistik anzeigen",
"description": "Kann Auftragsstatistiken für zugewiesene Abteilungen öffnen."
},
"view_booking_statistics": {
"label": "Buchungsstatistik anzeigen",
"description": "Kann Buchungsstatistiken für zugewiesene Abteilungen öffnen."
},
"open_limited_backoffice": {
"label": "Begrenztes Backoffice öffnen",
"description": "Kann den begrenzten Backofficebereich öffnen."
},
"manage_department_prices": {
"label": "Abteilungspreise verwalten",
"description": "Kann explizite Preise für zugewiesene Abteilungen bearbeiten."
},
"manage_employee_access": {
"label": "Mitarbeiterzugang verwalten",
"description": "Kann begrenzte Backoffice-Mitarbeiter erstellen, bearbeiten und deaktivieren."
},
"unknown": {
"label": "Zusätzliche Funktion",
"description": "Diese Funktion kommt aus dem Rollenkatalog, ist aber in der Oberfläche noch nicht beschrieben."
}
}
} }
} }
} }
+248
View File
@@ -1071,6 +1071,130 @@
"load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -5676,6 +5800,130 @@
"load_employees": "@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.employees'}.", "load_employees": "@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.load'} @:{'words.generated.employees'}.",
"save_employee": "@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.save'} @:{'words.generated.employee'}.", "save_employee": "@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.save'} @:{'words.generated.employee'}.",
"deactivate_employee": "@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.deactivate'} @:{'words.generated.employee'}." "deactivate_employee": "@.capitalize:{'words.generated.could'} @:{'words.generated.not'} @:{'words.generated.deactivate'} @:{'words.generated.employee'}."
},
"role_permissions": {
"title": "Role permissions",
"tooltip": "View role permissions",
"intro": "Roles combine the exact capabilities assigned to an employee when the role is saved.",
"scope": "Every capability is limited to the departments selected for the employee.",
"selected": "Selected",
"close": "Close",
"unavailable": "Permission details are unavailable for this role until the role catalog has been updated.",
"groups": {
"account": "Account",
"orders": "Orders",
"bookings": "Bookings",
"time_bookings": "Time bookings",
"reports": "Reports",
"limited_backoffice": "Backoffice",
"unknown": "Other"
},
"capabilities": {
"sign_in": {
"label": "Sign in",
"description": "Allows the employee to sign in to Pleno."
},
"view_own_permissions": {
"label": "View own permissions",
"description": "Shows the employee which access rights their account has."
},
"view_orders": {
"label": "View orders",
"description": "Can open order lists and order details for assigned departments."
},
"create_orders": {
"label": "Create orders",
"description": "Can create new orders for assigned departments."
},
"edit_orders": {
"label": "Edit orders",
"description": "Can update order details for assigned departments."
},
"delete_orders": {
"label": "Delete orders",
"description": "Can delete orders in assigned departments."
},
"view_order_items": {
"label": "View order lines",
"description": "Can see products, services, and prices on orders."
},
"create_order_items": {
"label": "Create order lines",
"description": "Can add products and services to orders."
},
"update_order_lines": {
"label": "Edit order lines",
"description": "Can change products, quantities, and prices on orders."
},
"remove_order_lines": {
"label": "Delete order lines",
"description": "Can remove products and services from orders."
},
"charge_orders": {
"label": "Charge orders",
"description": "Can take payment or charge a payment intent for an order."
},
"view_department_bookings": {
"label": "View department bookings",
"description": "Can see bookings for assigned departments."
},
"view_own_bookings": {
"label": "View own bookings",
"description": "Can see booking counts and bookings tied to the employee account."
},
"update_bookings": {
"label": "Edit bookings",
"description": "Can change permitted booking details."
},
"create_bookings": {
"label": "Create bookings",
"description": "Can create new bookings for assigned departments."
},
"mark_bookings_complete": {
"label": "Complete bookings",
"description": "Can mark bookings as completed."
},
"send_booking_confirmations": {
"label": "Resend booking confirmations",
"description": "Can resend booking confirmation and completion emails."
},
"view_time_booking_entries": {
"label": "View time booking entries",
"description": "Can inspect time-booking entries for assigned departments."
},
"create_time_booking_entries": {
"label": "Create time booking entries",
"description": "Can add new time-booking entries."
},
"edit_time_booking_entries": {
"label": "Edit time booking entries",
"description": "Can edit time-booking entries when the backend route supports it."
},
"view_order_statistics": {
"label": "View order statistics",
"description": "Can open order statistics views for assigned departments."
},
"view_booking_statistics": {
"label": "View booking statistics",
"description": "Can open booking statistics views for assigned departments."
},
"open_limited_backoffice": {
"label": "Open limited backoffice",
"description": "Can access the limited backoffice area."
},
"manage_department_prices": {
"label": "Manage department prices",
"description": "Can edit explicit prices for assigned departments."
},
"manage_employee_access": {
"label": "Manage employee access",
"description": "Can create, edit, and deactivate limited backoffice employees."
},
"unknown": {
"label": "Additional capability",
"description": "This capability is provided by the role catalog but is not yet described in the interface."
}
}
} }
} }
} }
+248
View File
@@ -1353,6 +1353,130 @@
"load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -5958,6 +6082,130 @@
"load_employees": "@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.medarbeidere'}.", "load_employees": "@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.laste'} @:{'words.generated.medarbeidere'}.",
"save_employee": "@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lagre'} @:{'words.generated.medarbeideren'}.", "save_employee": "@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} @:{'words.generated.lagre'} @:{'words.generated.medarbeideren'}.",
"deactivate_employee": "@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} deaktivere @:{'words.generated.medarbeideren'}." "deactivate_employee": "@.capitalize:{'words.generated.kunne'} @:{'words.generated.ikke'} deaktivere @:{'words.generated.medarbeideren'}."
},
"role_permissions": {
"title": "Rolletillatelser",
"tooltip": "Vis rolletillatelser",
"intro": "Roller samler de nøyaktige funksjonene som tildeles en ansatt når rollen lagres.",
"scope": "Alle funksjoner er begrenset til avdelingene som velges for den ansatte.",
"selected": "Valgt",
"close": "Lukk",
"unavailable": "Tillatelsesdetaljer er ikke tilgjengelige for denne rollen før rollekatalogen er oppdatert.",
"groups": {
"account": "Konto",
"orders": "Ordrer",
"bookings": "Bookinger",
"time_bookings": "Tidsbookinger",
"reports": "Rapporter",
"limited_backoffice": "Backoffice",
"unknown": "Annet"
},
"capabilities": {
"sign_in": {
"label": "Logg inn",
"description": "Lar den ansatte logge inn i Pleno."
},
"view_own_permissions": {
"label": "Se egne tillatelser",
"description": "Viser den ansatte hvilke tilgangsrettigheter kontoen har."
},
"view_orders": {
"label": "Se ordrer",
"description": "Kan åpne ordrelister og ordredetaljer for tildelte avdelinger."
},
"create_orders": {
"label": "Opprett ordrer",
"description": "Kan opprette nye ordrer for tildelte avdelinger."
},
"edit_orders": {
"label": "Rediger ordrer",
"description": "Kan endre ordredetaljer for tildelte avdelinger."
},
"delete_orders": {
"label": "Slett ordrer",
"description": "Kan slette ordrer i tildelte avdelinger."
},
"view_order_items": {
"label": "Se ordrelinjer",
"description": "Kan se produkter, tjenester og priser på ordrer."
},
"create_order_items": {
"label": "Opprett ordrelinjer",
"description": "Kan legge produkter og tjenester til ordrer."
},
"update_order_lines": {
"label": "Rediger ordrelinjer",
"description": "Kan endre produkter, antall og priser på ordrer."
},
"remove_order_lines": {
"label": "Slett ordrelinjer",
"description": "Kan fjerne produkter og tjenester fra ordrer."
},
"charge_orders": {
"label": "Belast ordrer",
"description": "Kan ta betaling eller belaste en betalingsreservasjon for en ordre."
},
"view_department_bookings": {
"label": "Se avdelingsbookinger",
"description": "Kan se bookinger for tildelte avdelinger."
},
"view_own_bookings": {
"label": "Se egne bookinger",
"description": "Kan se bookingantall og bookinger knyttet til ansattkontoen."
},
"update_bookings": {
"label": "Rediger bookinger",
"description": "Kan endre tillatte bookingdetaljer."
},
"create_bookings": {
"label": "Opprett bookinger",
"description": "Kan opprette nye bookinger for tildelte avdelinger."
},
"mark_bookings_complete": {
"label": "Fullfør bookinger",
"description": "Kan markere bookinger som fullført."
},
"send_booking_confirmations": {
"label": "Send bookingbekreftelser på nytt",
"description": "Kan sende bookingbekreftelser og fullførings-e-poster på nytt."
},
"view_time_booking_entries": {
"label": "Se tidsbookinger",
"description": "Kan gå gjennom tidsbookingoppføringer for tildelte avdelinger."
},
"create_time_booking_entries": {
"label": "Opprett tidsbookinger",
"description": "Kan legge til nye tidsbookingoppføringer."
},
"edit_time_booking_entries": {
"label": "Rediger tidsbookinger",
"description": "Kan redigere tidsbookingoppføringer når backend-ruten støtter det."
},
"view_order_statistics": {
"label": "Se ordrestatistikk",
"description": "Kan åpne ordrestatistikk for tildelte avdelinger."
},
"view_booking_statistics": {
"label": "Se bookingstatistikk",
"description": "Kan åpne bookingstatistikk for tildelte avdelinger."
},
"open_limited_backoffice": {
"label": "Åpne begrenset backoffice",
"description": "Kan åpne det begrensede backofficeområdet."
},
"manage_department_prices": {
"label": "Administrer avdelingspriser",
"description": "Kan redigere eksplisitte priser for tildelte avdelinger."
},
"manage_employee_access": {
"label": "Administrer ansattilgang",
"description": "Kan opprette, redigere og deaktivere begrensede backofficeansatte."
},
"unknown": {
"label": "Ekstra funksjon",
"description": "Denne funksjonen kommer fra rollekatalogen, men er ennå ikke beskrevet i grensesnittet."
}
}
} }
} }
} }
+248
View File
@@ -1403,6 +1403,130 @@
"load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'templates.generated.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'templates.generated.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'templates.generated.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'templates.generated.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'templates.generated.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'templates.generated.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'templates.generated.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'templates.generated.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'templates.generated.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'templates.generated.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'templates.generated.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'templates.generated.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -6008,6 +6132,130 @@
"load_employees": "@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.medarbetare'}.", "load_employees": "@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.ladda'} @:{'words.generated.medarbetare'}.",
"save_employee": "@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.spara'} @:{'words.generated.medarbetaren'}.", "save_employee": "@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.spara'} @:{'words.generated.medarbetaren'}.",
"deactivate_employee": "@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.inaktivera'} @:{'words.generated.medarbetaren'}." "deactivate_employee": "@.capitalize:{'words.generated.kunde'} @:{'words.generated.inte'} @:{'words.generated.inaktivera'} @:{'words.generated.medarbetaren'}."
},
"role_permissions": {
"title": "Rollbehörigheter",
"tooltip": "Visa rollbehörigheter",
"intro": "Roller samlar de exakta funktioner som tilldelas en medarbetare när rollen sparas.",
"scope": "Alla funktioner är begränsade till de avdelningar som väljs för medarbetaren.",
"selected": "Vald",
"close": "Stäng",
"unavailable": "Behörighetsdetaljer är inte tillgängliga för den här rollen förrän rollkatalogen har uppdaterats.",
"groups": {
"account": "Konto",
"orders": "Order",
"bookings": "Bokningar",
"time_bookings": "Tidsbokningar",
"reports": "Rapporter",
"limited_backoffice": "Backoffice",
"unknown": "Övrigt"
},
"capabilities": {
"sign_in": {
"label": "Logga in",
"description": "Ger medarbetaren möjlighet att logga in i Pleno."
},
"view_own_permissions": {
"label": "Se egna behörigheter",
"description": "Visar medarbetaren vilka åtkomsträttigheter kontot har."
},
"view_orders": {
"label": "Se order",
"description": "Kan öppna orderlistor och orderdetaljer för tilldelade avdelningar."
},
"create_orders": {
"label": "Skapa order",
"description": "Kan skapa nya order för tilldelade avdelningar."
},
"edit_orders": {
"label": "Redigera order",
"description": "Kan ändra orderdetaljer för tilldelade avdelningar."
},
"delete_orders": {
"label": "Ta bort order",
"description": "Kan ta bort order i tilldelade avdelningar."
},
"view_order_items": {
"label": "Se orderrader",
"description": "Kan se produkter, tjänster och priser på order."
},
"create_order_items": {
"label": "Skapa orderrader",
"description": "Kan lägga till produkter och tjänster på order."
},
"update_order_lines": {
"label": "Redigera orderrader",
"description": "Kan ändra produkter, antal och priser på order."
},
"remove_order_lines": {
"label": "Ta bort orderrader",
"description": "Kan ta bort produkter och tjänster från order."
},
"charge_orders": {
"label": "Debitera order",
"description": "Kan ta betalt eller debitera en betalningsreservation för en order."
},
"view_department_bookings": {
"label": "Se avdelningsbokningar",
"description": "Kan se bokningar för tilldelade avdelningar."
},
"view_own_bookings": {
"label": "Se egna bokningar",
"description": "Kan se bokningsantal och bokningar kopplade till medarbetarkontot."
},
"update_bookings": {
"label": "Redigera bokningar",
"description": "Kan ändra tillåtna bokningsdetaljer."
},
"create_bookings": {
"label": "Skapa bokningar",
"description": "Kan skapa nya bokningar för tilldelade avdelningar."
},
"mark_bookings_complete": {
"label": "Slutför bokningar",
"description": "Kan markera bokningar som slutförda."
},
"send_booking_confirmations": {
"label": "Skicka bokningsbekräftelser igen",
"description": "Kan skicka bokningsbekräftelser och slutförandemejl igen."
},
"view_time_booking_entries": {
"label": "Se tidsbokningar",
"description": "Kan granska tidsbokningsposter för tilldelade avdelningar."
},
"create_time_booking_entries": {
"label": "Skapa tidsbokningar",
"description": "Kan lägga till nya tidsbokningsposter."
},
"edit_time_booking_entries": {
"label": "Redigera tidsbokningar",
"description": "Kan redigera tidsbokningsposter när backend-rutten stöder det."
},
"view_order_statistics": {
"label": "Se orderstatistik",
"description": "Kan öppna orderstatistik för tilldelade avdelningar."
},
"view_booking_statistics": {
"label": "Se bokningsstatistik",
"description": "Kan öppna bokningsstatistik för tilldelade avdelningar."
},
"open_limited_backoffice": {
"label": "Öppna begränsat backoffice",
"description": "Kan öppna det begränsade backofficeområdet."
},
"manage_department_prices": {
"label": "Hantera avdelningspriser",
"description": "Kan redigera uttryckliga priser för tilldelade avdelningar."
},
"manage_employee_access": {
"label": "Hantera medarbetaråtkomst",
"description": "Kan skapa, redigera och inaktivera begränsade backofficemedarbetare."
},
"unknown": {
"label": "Extra funktion",
"description": "Den här funktionen kommer från rollkatalogen men är ännu inte beskriven i gränssnittet."
}
}
} }
} }
} }
+248
View File
@@ -95,6 +95,130 @@
"load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'phrases.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'phrases.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'phrases.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'phrases.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'phrases.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'phrases.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'phrases.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -204,6 +328,130 @@
"load_employees": "@.capitalize:{'terms.glossary.medarbejdere'} @:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.indlæses'}.", "load_employees": "@.capitalize:{'terms.glossary.medarbejdere'} @:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.indlæses'}.",
"save_employee": "@.capitalize:{'terms.glossary.medarbejderen'} @:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.gemmes'}.", "save_employee": "@.capitalize:{'terms.glossary.medarbejderen'} @:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.gemmes'}.",
"deactivate_employee": "@.capitalize:{'terms.glossary.medarbejderen'} @:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} deaktiveres." "deactivate_employee": "@.capitalize:{'terms.glossary.medarbejderen'} @:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} deaktiveres."
},
"role_permissions": {
"title": "Rolletilladelser",
"tooltip": "Vis rolletilladelser",
"intro": "Roller samler de præcise funktioner, der tildeles en medarbejder, når rollen gemmes.",
"scope": "Alle funktioner er begrænset til de afdelinger, der vælges for medarbejderen.",
"selected": "Valgt",
"close": "Luk",
"unavailable": "Tilladelsesdetaljer er ikke tilgængelige for denne rolle, før rollekataloget er opdateret.",
"groups": {
"account": "Konto",
"orders": "Ordrer",
"bookings": "Bookinger",
"time_bookings": "Tidsbookinger",
"reports": "Rapporter",
"limited_backoffice": "Backoffice",
"unknown": "Øvrigt"
},
"capabilities": {
"sign_in": {
"label": "Log ind",
"description": "Giver medarbejderen adgang til at logge ind i Pleno."
},
"view_own_permissions": {
"label": "Se egne tilladelser",
"description": "Viser medarbejderen, hvilke adgangsrettigheder kontoen har."
},
"view_orders": {
"label": "Se ordrer",
"description": "Kan åbne ordrelister og ordredetaljer for tildelte afdelinger."
},
"create_orders": {
"label": "Opret ordrer",
"description": "Kan oprette nye ordrer for tildelte afdelinger."
},
"edit_orders": {
"label": "Rediger ordrer",
"description": "Kan ændre ordredetaljer for tildelte afdelinger."
},
"delete_orders": {
"label": "Slet ordrer",
"description": "Kan slette ordrer i tildelte afdelinger."
},
"view_order_items": {
"label": "Se ordrelinjer",
"description": "Kan se produkter, ydelser og priser på ordrer."
},
"create_order_items": {
"label": "Opret ordrelinjer",
"description": "Kan tilføje produkter og ydelser til ordrer."
},
"update_order_lines": {
"label": "Rediger ordrelinjer",
"description": "Kan ændre produkter, antal og priser på ordrer."
},
"remove_order_lines": {
"label": "Slet ordrelinjer",
"description": "Kan fjerne produkter og ydelser fra ordrer."
},
"charge_orders": {
"label": "Opkræv ordrer",
"description": "Kan tage betaling eller opkræve en betalingsreservation for en ordre."
},
"view_department_bookings": {
"label": "Se afdelingsbookinger",
"description": "Kan se bookinger for tildelte afdelinger."
},
"view_own_bookings": {
"label": "Se egne bookinger",
"description": "Kan se bookingantal og bookinger knyttet til medarbejderkontoen."
},
"update_bookings": {
"label": "Rediger bookinger",
"description": "Kan ændre tilladte bookingdetaljer."
},
"create_bookings": {
"label": "Opret bookinger",
"description": "Kan oprette nye bookinger for tildelte afdelinger."
},
"mark_bookings_complete": {
"label": "Afslut bookinger",
"description": "Kan markere bookinger som afsluttet."
},
"send_booking_confirmations": {
"label": "Gensend bookingbekræftelser",
"description": "Kan gensende bookingbekræftelser og afslutningsmails."
},
"view_time_booking_entries": {
"label": "Se tidsbookinger",
"description": "Kan gennemse tidsbookingposter for tildelte afdelinger."
},
"create_time_booking_entries": {
"label": "Opret tidsbookinger",
"description": "Kan oprette nye tidsbookingposter."
},
"edit_time_booking_entries": {
"label": "Rediger tidsbookinger",
"description": "Kan redigere tidsbookingposter, når backend-ruten understøtter det."
},
"view_order_statistics": {
"label": "Se ordrestatistik",
"description": "Kan åbne statistikvisninger for ordrer i tildelte afdelinger."
},
"view_booking_statistics": {
"label": "Se bookingstatistik",
"description": "Kan åbne statistikvisninger for bookinger i tildelte afdelinger."
},
"open_limited_backoffice": {
"label": "Åbn begrænset backoffice",
"description": "Kan tilgå det begrænsede backofficeområde."
},
"manage_department_prices": {
"label": "Administrer afdelingspriser",
"description": "Kan redigere eksplicitte priser for tildelte afdelinger."
},
"manage_employee_access": {
"label": "Administrer medarbejderadgang",
"description": "Kan oprette, redigere og deaktivere begrænsede backofficemedarbejdere."
},
"unknown": {
"label": "Ekstra funktion",
"description": "Denne funktion kommer fra rollekataloget, men er endnu ikke beskrevet i grænsefladen."
}
}
} }
} }
} }
+248
View File
@@ -95,6 +95,130 @@
"load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'phrases.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'phrases.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'phrases.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'phrases.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'phrases.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'phrases.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'phrases.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -204,6 +328,130 @@
"load_employees": "@:{'terms.glossary.mitarbeiter'} @:{'terms.glossary.konnten'} @:{'terms.glossary.nicht'} @:{'terms.glossary.geladen'} @:{'terms.glossary.werden'}.", "load_employees": "@:{'terms.glossary.mitarbeiter'} @:{'terms.glossary.konnten'} @:{'terms.glossary.nicht'} @:{'terms.glossary.geladen'} @:{'terms.glossary.werden'}.",
"save_employee": "@:{'terms.glossary.mitarbeiter'} @:{'terms.glossary.konnte'} @:{'terms.glossary.nicht'} @:{'terms.glossary.gespeichert'} @:{'terms.glossary.werden'}.", "save_employee": "@:{'terms.glossary.mitarbeiter'} @:{'terms.glossary.konnte'} @:{'terms.glossary.nicht'} @:{'terms.glossary.gespeichert'} @:{'terms.glossary.werden'}.",
"deactivate_employee": "@:{'terms.glossary.mitarbeiter'} @:{'terms.glossary.konnte'} @:{'terms.glossary.nicht'} @:{'terms.glossary.deaktiviert'} @:{'terms.glossary.werden'}." "deactivate_employee": "@:{'terms.glossary.mitarbeiter'} @:{'terms.glossary.konnte'} @:{'terms.glossary.nicht'} @:{'terms.glossary.deaktiviert'} @:{'terms.glossary.werden'}."
},
"role_permissions": {
"title": "Rollenberechtigungen",
"tooltip": "Rollenberechtigungen anzeigen",
"intro": "Rollen bündeln die genauen Funktionen, die einem Mitarbeiter beim Speichern der Rolle zugewiesen werden.",
"scope": "Jede Funktion ist auf die Abteilungen begrenzt, die für den Mitarbeiter ausgewählt sind.",
"selected": "Ausgewählt",
"close": "Schließen",
"unavailable": "Berechtigungsdetails sind für diese Rolle erst verfügbar, wenn der Rollenkatalog aktualisiert wurde.",
"groups": {
"account": "Konto",
"orders": "Aufträge",
"bookings": "Buchungen",
"time_bookings": "Zeitbuchungen",
"reports": "Berichte",
"limited_backoffice": "Backoffice",
"unknown": "Sonstiges"
},
"capabilities": {
"sign_in": {
"label": "Anmelden",
"description": "Erlaubt dem Mitarbeiter, sich bei Pleno anzumelden."
},
"view_own_permissions": {
"label": "Eigene Berechtigungen anzeigen",
"description": "Zeigt dem Mitarbeiter, welche Zugriffsrechte das Konto hat."
},
"view_orders": {
"label": "Aufträge anzeigen",
"description": "Kann Auftragslisten und Auftragsdetails für zugewiesene Abteilungen öffnen."
},
"create_orders": {
"label": "Aufträge erstellen",
"description": "Kann neue Aufträge für zugewiesene Abteilungen erstellen."
},
"edit_orders": {
"label": "Aufträge bearbeiten",
"description": "Kann Auftragsdetails für zugewiesene Abteilungen ändern."
},
"delete_orders": {
"label": "Aufträge löschen",
"description": "Kann Aufträge in zugewiesenen Abteilungen löschen."
},
"view_order_items": {
"label": "Auftragspositionen anzeigen",
"description": "Kann Produkte, Leistungen und Preise auf Aufträgen sehen."
},
"create_order_items": {
"label": "Auftragspositionen erstellen",
"description": "Kann Produkte und Leistungen zu Aufträgen hinzufügen."
},
"update_order_lines": {
"label": "Auftragspositionen bearbeiten",
"description": "Kann Produkte, Mengen und Preise auf Aufträgen ändern."
},
"remove_order_lines": {
"label": "Auftragspositionen löschen",
"description": "Kann Produkte und Leistungen aus Aufträgen entfernen."
},
"charge_orders": {
"label": "Aufträge abrechnen",
"description": "Kann Zahlungen annehmen oder eine Zahlungsreservierung für einen Auftrag belasten."
},
"view_department_bookings": {
"label": "Abteilungsbuchungen anzeigen",
"description": "Kann Buchungen für zugewiesene Abteilungen sehen."
},
"view_own_bookings": {
"label": "Eigene Buchungen anzeigen",
"description": "Kann Buchungszahlen und Buchungen sehen, die mit dem Mitarbeiterkonto verbunden sind."
},
"update_bookings": {
"label": "Buchungen bearbeiten",
"description": "Kann erlaubte Buchungsdetails ändern."
},
"create_bookings": {
"label": "Buchungen erstellen",
"description": "Kann neue Buchungen für zugewiesene Abteilungen erstellen."
},
"mark_bookings_complete": {
"label": "Buchungen abschließen",
"description": "Kann Buchungen als abgeschlossen markieren."
},
"send_booking_confirmations": {
"label": "Buchungsbestätigungen erneut senden",
"description": "Kann Buchungsbestätigungen und Abschluss-E-Mails erneut senden."
},
"view_time_booking_entries": {
"label": "Zeitbuchungen anzeigen",
"description": "Kann Zeitbuchungseinträge für zugewiesene Abteilungen prüfen."
},
"create_time_booking_entries": {
"label": "Zeitbuchungen erstellen",
"description": "Kann neue Zeitbuchungseinträge hinzufügen."
},
"edit_time_booking_entries": {
"label": "Zeitbuchungen bearbeiten",
"description": "Kann Zeitbuchungseinträge bearbeiten, wenn die Backend-Route dies unterstützt."
},
"view_order_statistics": {
"label": "Auftragsstatistik anzeigen",
"description": "Kann Auftragsstatistiken für zugewiesene Abteilungen öffnen."
},
"view_booking_statistics": {
"label": "Buchungsstatistik anzeigen",
"description": "Kann Buchungsstatistiken für zugewiesene Abteilungen öffnen."
},
"open_limited_backoffice": {
"label": "Begrenztes Backoffice öffnen",
"description": "Kann den begrenzten Backofficebereich öffnen."
},
"manage_department_prices": {
"label": "Abteilungspreise verwalten",
"description": "Kann explizite Preise für zugewiesene Abteilungen bearbeiten."
},
"manage_employee_access": {
"label": "Mitarbeiterzugang verwalten",
"description": "Kann begrenzte Backoffice-Mitarbeiter erstellen, bearbeiten und deaktivieren."
},
"unknown": {
"label": "Zusätzliche Funktion",
"description": "Diese Funktion kommt aus dem Rollenkatalog, ist aber in der Oberfläche noch nicht beschrieben."
}
}
} }
} }
} }
+248
View File
@@ -95,6 +95,130 @@
"load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'phrases.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'phrases.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'phrases.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'phrases.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'phrases.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'phrases.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'phrases.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -204,6 +328,130 @@
"load_employees": "@.capitalize:{'terms.glossary.could'} @:{'terms.glossary.not'} @:{'terms.glossary.load'} @:{'terms.glossary.employees'}.", "load_employees": "@.capitalize:{'terms.glossary.could'} @:{'terms.glossary.not'} @:{'terms.glossary.load'} @:{'terms.glossary.employees'}.",
"save_employee": "@.capitalize:{'terms.glossary.could'} @:{'terms.glossary.not'} @:{'terms.glossary.save'} @:{'terms.glossary.employee'}.", "save_employee": "@.capitalize:{'terms.glossary.could'} @:{'terms.glossary.not'} @:{'terms.glossary.save'} @:{'terms.glossary.employee'}.",
"deactivate_employee": "@.capitalize:{'terms.glossary.could'} @:{'terms.glossary.not'} @:{'terms.glossary.deactivate'} @:{'terms.glossary.employee'}." "deactivate_employee": "@.capitalize:{'terms.glossary.could'} @:{'terms.glossary.not'} @:{'terms.glossary.deactivate'} @:{'terms.glossary.employee'}."
},
"role_permissions": {
"title": "Role permissions",
"tooltip": "View role permissions",
"intro": "Roles combine the exact capabilities assigned to an employee when the role is saved.",
"scope": "Every capability is limited to the departments selected for the employee.",
"selected": "Selected",
"close": "Close",
"unavailable": "Permission details are unavailable for this role until the role catalog has been updated.",
"groups": {
"account": "Account",
"orders": "Orders",
"bookings": "Bookings",
"time_bookings": "Time bookings",
"reports": "Reports",
"limited_backoffice": "Backoffice",
"unknown": "Other"
},
"capabilities": {
"sign_in": {
"label": "Sign in",
"description": "Allows the employee to sign in to Pleno."
},
"view_own_permissions": {
"label": "View own permissions",
"description": "Shows the employee which access rights their account has."
},
"view_orders": {
"label": "View orders",
"description": "Can open order lists and order details for assigned departments."
},
"create_orders": {
"label": "Create orders",
"description": "Can create new orders for assigned departments."
},
"edit_orders": {
"label": "Edit orders",
"description": "Can update order details for assigned departments."
},
"delete_orders": {
"label": "Delete orders",
"description": "Can delete orders in assigned departments."
},
"view_order_items": {
"label": "View order lines",
"description": "Can see products, services, and prices on orders."
},
"create_order_items": {
"label": "Create order lines",
"description": "Can add products and services to orders."
},
"update_order_lines": {
"label": "Edit order lines",
"description": "Can change products, quantities, and prices on orders."
},
"remove_order_lines": {
"label": "Delete order lines",
"description": "Can remove products and services from orders."
},
"charge_orders": {
"label": "Charge orders",
"description": "Can take payment or charge a payment intent for an order."
},
"view_department_bookings": {
"label": "View department bookings",
"description": "Can see bookings for assigned departments."
},
"view_own_bookings": {
"label": "View own bookings",
"description": "Can see booking counts and bookings tied to the employee account."
},
"update_bookings": {
"label": "Edit bookings",
"description": "Can change permitted booking details."
},
"create_bookings": {
"label": "Create bookings",
"description": "Can create new bookings for assigned departments."
},
"mark_bookings_complete": {
"label": "Complete bookings",
"description": "Can mark bookings as completed."
},
"send_booking_confirmations": {
"label": "Resend booking confirmations",
"description": "Can resend booking confirmation and completion emails."
},
"view_time_booking_entries": {
"label": "View time booking entries",
"description": "Can inspect time-booking entries for assigned departments."
},
"create_time_booking_entries": {
"label": "Create time booking entries",
"description": "Can add new time-booking entries."
},
"edit_time_booking_entries": {
"label": "Edit time booking entries",
"description": "Can edit time-booking entries when the backend route supports it."
},
"view_order_statistics": {
"label": "View order statistics",
"description": "Can open order statistics views for assigned departments."
},
"view_booking_statistics": {
"label": "View booking statistics",
"description": "Can open booking statistics views for assigned departments."
},
"open_limited_backoffice": {
"label": "Open limited backoffice",
"description": "Can access the limited backoffice area."
},
"manage_department_prices": {
"label": "Manage department prices",
"description": "Can edit explicit prices for assigned departments."
},
"manage_employee_access": {
"label": "Manage employee access",
"description": "Can create, edit, and deactivate limited backoffice employees."
},
"unknown": {
"label": "Additional capability",
"description": "This capability is provided by the role catalog but is not yet described in the interface."
}
}
} }
} }
} }
+248
View File
@@ -95,6 +95,130 @@
"load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'phrases.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'phrases.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'phrases.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'phrases.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'phrases.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'phrases.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'phrases.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -204,6 +328,130 @@
"load_employees": "@.capitalize:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.laste'} @:{'terms.glossary.medarbeidere'}.", "load_employees": "@.capitalize:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.laste'} @:{'terms.glossary.medarbeidere'}.",
"save_employee": "@.capitalize:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.lagre'} @:{'terms.glossary.medarbeideren'}.", "save_employee": "@.capitalize:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} @:{'terms.glossary.lagre'} @:{'terms.glossary.medarbeideren'}.",
"deactivate_employee": "@.capitalize:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} deaktivere @:{'terms.glossary.medarbeideren'}." "deactivate_employee": "@.capitalize:{'terms.glossary.kunne'} @:{'terms.glossary.ikke'} deaktivere @:{'terms.glossary.medarbeideren'}."
},
"role_permissions": {
"title": "Rolletillatelser",
"tooltip": "Vis rolletillatelser",
"intro": "Roller samler de nøyaktige funksjonene som tildeles en ansatt når rollen lagres.",
"scope": "Alle funksjoner er begrenset til avdelingene som velges for den ansatte.",
"selected": "Valgt",
"close": "Lukk",
"unavailable": "Tillatelsesdetaljer er ikke tilgjengelige for denne rollen før rollekatalogen er oppdatert.",
"groups": {
"account": "Konto",
"orders": "Ordrer",
"bookings": "Bookinger",
"time_bookings": "Tidsbookinger",
"reports": "Rapporter",
"limited_backoffice": "Backoffice",
"unknown": "Annet"
},
"capabilities": {
"sign_in": {
"label": "Logg inn",
"description": "Lar den ansatte logge inn i Pleno."
},
"view_own_permissions": {
"label": "Se egne tillatelser",
"description": "Viser den ansatte hvilke tilgangsrettigheter kontoen har."
},
"view_orders": {
"label": "Se ordrer",
"description": "Kan åpne ordrelister og ordredetaljer for tildelte avdelinger."
},
"create_orders": {
"label": "Opprett ordrer",
"description": "Kan opprette nye ordrer for tildelte avdelinger."
},
"edit_orders": {
"label": "Rediger ordrer",
"description": "Kan endre ordredetaljer for tildelte avdelinger."
},
"delete_orders": {
"label": "Slett ordrer",
"description": "Kan slette ordrer i tildelte avdelinger."
},
"view_order_items": {
"label": "Se ordrelinjer",
"description": "Kan se produkter, tjenester og priser på ordrer."
},
"create_order_items": {
"label": "Opprett ordrelinjer",
"description": "Kan legge produkter og tjenester til ordrer."
},
"update_order_lines": {
"label": "Rediger ordrelinjer",
"description": "Kan endre produkter, antall og priser på ordrer."
},
"remove_order_lines": {
"label": "Slett ordrelinjer",
"description": "Kan fjerne produkter og tjenester fra ordrer."
},
"charge_orders": {
"label": "Belast ordrer",
"description": "Kan ta betaling eller belaste en betalingsreservasjon for en ordre."
},
"view_department_bookings": {
"label": "Se avdelingsbookinger",
"description": "Kan se bookinger for tildelte avdelinger."
},
"view_own_bookings": {
"label": "Se egne bookinger",
"description": "Kan se bookingantall og bookinger knyttet til ansattkontoen."
},
"update_bookings": {
"label": "Rediger bookinger",
"description": "Kan endre tillatte bookingdetaljer."
},
"create_bookings": {
"label": "Opprett bookinger",
"description": "Kan opprette nye bookinger for tildelte avdelinger."
},
"mark_bookings_complete": {
"label": "Fullfør bookinger",
"description": "Kan markere bookinger som fullført."
},
"send_booking_confirmations": {
"label": "Send bookingbekreftelser på nytt",
"description": "Kan sende bookingbekreftelser og fullførings-e-poster på nytt."
},
"view_time_booking_entries": {
"label": "Se tidsbookinger",
"description": "Kan gå gjennom tidsbookingoppføringer for tildelte avdelinger."
},
"create_time_booking_entries": {
"label": "Opprett tidsbookinger",
"description": "Kan legge til nye tidsbookingoppføringer."
},
"edit_time_booking_entries": {
"label": "Rediger tidsbookinger",
"description": "Kan redigere tidsbookingoppføringer når backend-ruten støtter det."
},
"view_order_statistics": {
"label": "Se ordrestatistikk",
"description": "Kan åpne ordrestatistikk for tildelte avdelinger."
},
"view_booking_statistics": {
"label": "Se bookingstatistikk",
"description": "Kan åpne bookingstatistikk for tildelte avdelinger."
},
"open_limited_backoffice": {
"label": "Åpne begrenset backoffice",
"description": "Kan åpne det begrensede backofficeområdet."
},
"manage_department_prices": {
"label": "Administrer avdelingspriser",
"description": "Kan redigere eksplisitte priser for tildelte avdelinger."
},
"manage_employee_access": {
"label": "Administrer ansattilgang",
"description": "Kan opprette, redigere og deaktivere begrensede backofficeansatte."
},
"unknown": {
"label": "Ekstra funksjon",
"description": "Denne funksjonen kommer fra rollekatalogen, men er ennå ikke beskrevet i grensesnittet."
}
}
} }
} }
} }
+248
View File
@@ -95,6 +95,130 @@
"load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}", "load_employees": "@:{'phrases.compat.limited_backoffice.errors.load_employees'}",
"save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}", "save_employee": "@:{'phrases.compat.limited_backoffice.errors.save_employee'}",
"deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}" "deactivate_employee": "@:{'phrases.compat.limited_backoffice.errors.deactivate_employee'}"
},
"role_permissions": {
"title": "@:{'phrases.compat.limited_backoffice.role_permissions.title'}",
"tooltip": "@:{'phrases.compat.limited_backoffice.role_permissions.tooltip'}",
"intro": "@:{'phrases.compat.limited_backoffice.role_permissions.intro'}",
"scope": "@:{'phrases.compat.limited_backoffice.role_permissions.scope'}",
"selected": "@:{'phrases.compat.limited_backoffice.role_permissions.selected'}",
"close": "@:{'phrases.compat.limited_backoffice.role_permissions.close'}",
"unavailable": "@:{'phrases.compat.limited_backoffice.role_permissions.unavailable'}",
"groups": {
"account": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.account'}",
"orders": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.orders'}",
"bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.bookings'}",
"time_bookings": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.time_bookings'}",
"reports": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.reports'}",
"limited_backoffice": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.limited_backoffice'}",
"unknown": "@:{'phrases.compat.limited_backoffice.role_permissions.groups.unknown'}"
},
"capabilities": {
"sign_in": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.sign_in.description'}"
},
"view_own_permissions": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_permissions.description'}"
},
"view_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_orders.description'}"
},
"create_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_orders.description'}"
},
"edit_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_orders.description'}"
},
"delete_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.delete_orders.description'}"
},
"view_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_items.description'}"
},
"create_order_items": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_order_items.description'}"
},
"update_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_order_lines.description'}"
},
"remove_order_lines": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.remove_order_lines.description'}"
},
"charge_orders": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.charge_orders.description'}"
},
"view_department_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_department_bookings.description'}"
},
"view_own_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_own_bookings.description'}"
},
"update_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.update_bookings.description'}"
},
"create_bookings": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_bookings.description'}"
},
"mark_bookings_complete": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description'}"
},
"send_booking_confirmations": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description'}"
},
"view_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description'}"
},
"create_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description'}"
},
"edit_time_booking_entries": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description'}"
},
"view_order_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_order_statistics.description'}"
},
"view_booking_statistics": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description'}"
},
"open_limited_backoffice": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description'}"
},
"manage_department_prices": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_department_prices.description'}"
},
"manage_employee_access": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.manage_employee_access.description'}"
},
"unknown": {
"label": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.label'}",
"description": "@:{'phrases.compat.limited_backoffice.role_permissions.capabilities.unknown.description'}"
}
}
} }
}, },
"redirect": { "redirect": {
@@ -204,6 +328,130 @@
"load_employees": "@.capitalize:{'terms.glossary.kunde'} @:{'terms.glossary.inte'} @:{'terms.glossary.ladda'} @:{'terms.glossary.medarbetare'}.", "load_employees": "@.capitalize:{'terms.glossary.kunde'} @:{'terms.glossary.inte'} @:{'terms.glossary.ladda'} @:{'terms.glossary.medarbetare'}.",
"save_employee": "@.capitalize:{'terms.glossary.kunde'} @:{'terms.glossary.inte'} @:{'terms.glossary.spara'} @:{'terms.glossary.medarbetaren'}.", "save_employee": "@.capitalize:{'terms.glossary.kunde'} @:{'terms.glossary.inte'} @:{'terms.glossary.spara'} @:{'terms.glossary.medarbetaren'}.",
"deactivate_employee": "@.capitalize:{'terms.glossary.kunde'} @:{'terms.glossary.inte'} @:{'terms.glossary.inaktivera'} @:{'terms.glossary.medarbetaren'}." "deactivate_employee": "@.capitalize:{'terms.glossary.kunde'} @:{'terms.glossary.inte'} @:{'terms.glossary.inaktivera'} @:{'terms.glossary.medarbetaren'}."
},
"role_permissions": {
"title": "Rollbehörigheter",
"tooltip": "Visa rollbehörigheter",
"intro": "Roller samlar de exakta funktioner som tilldelas en medarbetare när rollen sparas.",
"scope": "Alla funktioner är begränsade till de avdelningar som väljs för medarbetaren.",
"selected": "Vald",
"close": "Stäng",
"unavailable": "Behörighetsdetaljer är inte tillgängliga för den här rollen förrän rollkatalogen har uppdaterats.",
"groups": {
"account": "Konto",
"orders": "Order",
"bookings": "Bokningar",
"time_bookings": "Tidsbokningar",
"reports": "Rapporter",
"limited_backoffice": "Backoffice",
"unknown": "Övrigt"
},
"capabilities": {
"sign_in": {
"label": "Logga in",
"description": "Ger medarbetaren möjlighet att logga in i Pleno."
},
"view_own_permissions": {
"label": "Se egna behörigheter",
"description": "Visar medarbetaren vilka åtkomsträttigheter kontot har."
},
"view_orders": {
"label": "Se order",
"description": "Kan öppna orderlistor och orderdetaljer för tilldelade avdelningar."
},
"create_orders": {
"label": "Skapa order",
"description": "Kan skapa nya order för tilldelade avdelningar."
},
"edit_orders": {
"label": "Redigera order",
"description": "Kan ändra orderdetaljer för tilldelade avdelningar."
},
"delete_orders": {
"label": "Ta bort order",
"description": "Kan ta bort order i tilldelade avdelningar."
},
"view_order_items": {
"label": "Se orderrader",
"description": "Kan se produkter, tjänster och priser på order."
},
"create_order_items": {
"label": "Skapa orderrader",
"description": "Kan lägga till produkter och tjänster på order."
},
"update_order_lines": {
"label": "Redigera orderrader",
"description": "Kan ändra produkter, antal och priser på order."
},
"remove_order_lines": {
"label": "Ta bort orderrader",
"description": "Kan ta bort produkter och tjänster från order."
},
"charge_orders": {
"label": "Debitera order",
"description": "Kan ta betalt eller debitera en betalningsreservation för en order."
},
"view_department_bookings": {
"label": "Se avdelningsbokningar",
"description": "Kan se bokningar för tilldelade avdelningar."
},
"view_own_bookings": {
"label": "Se egna bokningar",
"description": "Kan se bokningsantal och bokningar kopplade till medarbetarkontot."
},
"update_bookings": {
"label": "Redigera bokningar",
"description": "Kan ändra tillåtna bokningsdetaljer."
},
"create_bookings": {
"label": "Skapa bokningar",
"description": "Kan skapa nya bokningar för tilldelade avdelningar."
},
"mark_bookings_complete": {
"label": "Slutför bokningar",
"description": "Kan markera bokningar som slutförda."
},
"send_booking_confirmations": {
"label": "Skicka bokningsbekräftelser igen",
"description": "Kan skicka bokningsbekräftelser och slutförandemejl igen."
},
"view_time_booking_entries": {
"label": "Se tidsbokningar",
"description": "Kan granska tidsbokningsposter för tilldelade avdelningar."
},
"create_time_booking_entries": {
"label": "Skapa tidsbokningar",
"description": "Kan lägga till nya tidsbokningsposter."
},
"edit_time_booking_entries": {
"label": "Redigera tidsbokningar",
"description": "Kan redigera tidsbokningsposter när backend-rutten stöder det."
},
"view_order_statistics": {
"label": "Se orderstatistik",
"description": "Kan öppna orderstatistik för tilldelade avdelningar."
},
"view_booking_statistics": {
"label": "Se bokningsstatistik",
"description": "Kan öppna bokningsstatistik för tilldelade avdelningar."
},
"open_limited_backoffice": {
"label": "Öppna begränsat backoffice",
"description": "Kan öppna det begränsade backofficeområdet."
},
"manage_department_prices": {
"label": "Hantera avdelningspriser",
"description": "Kan redigera uttryckliga priser för tilldelade avdelningar."
},
"manage_employee_access": {
"label": "Hantera medarbetaråtkomst",
"description": "Kan skapa, redigera och inaktivera begränsade backofficemedarbetare."
},
"unknown": {
"label": "Extra funktion",
"description": "Den här funktionen kommer från rollkatalogen men är ännu inte beskriven i gränssnittet."
}
}
} }
} }
} }
@@ -28,6 +28,7 @@ const errorMessage = ref("");
const successMessage = ref(""); const successMessage = ref("");
const editingEmployee = ref(null); const editingEmployee = ref(null);
const formAttempted = ref(false); const formAttempted = ref(false);
const showRolePermissions = ref(false);
const form = ref({ const form = ref({
display_name: "", display_name: "",
email: "", email: "",
@@ -59,9 +60,155 @@ const roleMessages = computed(() => ({
}, },
})); }));
const rolePermissionGroupMessages = computed(() => ({
account: {
label: t("templates.limited_backoffice.role_permissions.groups.account"),
},
orders: {
label: t("templates.limited_backoffice.role_permissions.groups.orders"),
},
bookings: {
label: t("templates.limited_backoffice.role_permissions.groups.bookings"),
},
time_bookings: {
label: t("templates.limited_backoffice.role_permissions.groups.time_bookings"),
},
reports: {
label: t("templates.limited_backoffice.role_permissions.groups.reports"),
},
limited_backoffice: {
label: t("templates.limited_backoffice.role_permissions.groups.limited_backoffice"),
},
unknown: {
label: t("templates.limited_backoffice.role_permissions.groups.unknown"),
},
}));
const roleCapabilityMessages = computed(() => ({
sign_in: {
label: t("templates.limited_backoffice.role_permissions.capabilities.sign_in.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.sign_in.description"),
},
view_own_permissions: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_own_permissions.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_own_permissions.description"),
},
view_orders: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_orders.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_orders.description"),
},
create_orders: {
label: t("templates.limited_backoffice.role_permissions.capabilities.create_orders.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.create_orders.description"),
},
edit_orders: {
label: t("templates.limited_backoffice.role_permissions.capabilities.edit_orders.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.edit_orders.description"),
},
delete_orders: {
label: t("templates.limited_backoffice.role_permissions.capabilities.delete_orders.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.delete_orders.description"),
},
view_order_items: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_order_items.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_order_items.description"),
},
create_order_items: {
label: t("templates.limited_backoffice.role_permissions.capabilities.create_order_items.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.create_order_items.description"),
},
update_order_lines: {
label: t("templates.limited_backoffice.role_permissions.capabilities.update_order_lines.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.update_order_lines.description"),
},
remove_order_lines: {
label: t("templates.limited_backoffice.role_permissions.capabilities.remove_order_lines.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.remove_order_lines.description"),
},
charge_orders: {
label: t("templates.limited_backoffice.role_permissions.capabilities.charge_orders.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.charge_orders.description"),
},
view_department_bookings: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_department_bookings.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_department_bookings.description"),
},
view_own_bookings: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_own_bookings.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_own_bookings.description"),
},
update_bookings: {
label: t("templates.limited_backoffice.role_permissions.capabilities.update_bookings.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.update_bookings.description"),
},
create_bookings: {
label: t("templates.limited_backoffice.role_permissions.capabilities.create_bookings.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.create_bookings.description"),
},
mark_bookings_complete: {
label: t("templates.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.mark_bookings_complete.description"),
},
send_booking_confirmations: {
label: t("templates.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.send_booking_confirmations.description"),
},
view_time_booking_entries: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_time_booking_entries.description"),
},
create_time_booking_entries: {
label: t("templates.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.create_time_booking_entries.description"),
},
edit_time_booking_entries: {
label: t("templates.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.edit_time_booking_entries.description"),
},
view_order_statistics: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_order_statistics.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_order_statistics.description"),
},
view_booking_statistics: {
label: t("templates.limited_backoffice.role_permissions.capabilities.view_booking_statistics.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.view_booking_statistics.description"),
},
open_limited_backoffice: {
label: t("templates.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.open_limited_backoffice.description"),
},
manage_department_prices: {
label: t("templates.limited_backoffice.role_permissions.capabilities.manage_department_prices.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.manage_department_prices.description"),
},
manage_employee_access: {
label: t("templates.limited_backoffice.role_permissions.capabilities.manage_employee_access.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.manage_employee_access.description"),
},
unknown: {
label: t("templates.limited_backoffice.role_permissions.capabilities.unknown.label"),
description: t("templates.limited_backoffice.role_permissions.capabilities.unknown.description"),
},
}));
const roleLabel = (role) => roleMessages.value[role?.key]?.label || role?.label || ""; const roleLabel = (role) => roleMessages.value[role?.key]?.label || role?.label || "";
const roleDescription = (role) => roleMessages.value[role?.key]?.description || role?.description || ""; const roleDescription = (role) => roleMessages.value[role?.key]?.description || role?.description || "";
const roleByKey = (key) => roles.value.find((role) => role.key === key) || { key }; const roleByKey = (key) => roles.value.find((role) => role.key === key) || { key };
const rolePermissionGroupLabel = (groupKey) =>
rolePermissionGroupMessages.value[groupKey]?.label || rolePermissionGroupMessages.value.unknown.label;
const roleCapabilityLabel = (capabilityKey) =>
roleCapabilityMessages.value[capabilityKey]?.label || roleCapabilityMessages.value.unknown.label;
const roleCapabilityDescription = (capabilityKey) =>
roleCapabilityMessages.value[capabilityKey]?.description || roleCapabilityMessages.value.unknown.description;
const rolePermissionGroups = (role) =>
(Array.isArray(role?.permission_groups) ? role.permission_groups : [])
.map((group) => ({
key: String(group?.key || ""),
capabilities: (Array.isArray(group?.capabilities) ? group.capabilities : [])
.map((capability) => String(capability || ""))
.filter(Boolean),
}))
.filter((group) => group.key && group.capabilities.length > 0);
const visibleRoles = computed(() => roles.value.filter((role) => ROLE_KEYS.includes(role.key))); const visibleRoles = computed(() => roles.value.filter((role) => ROLE_KEYS.includes(role.key)));
const isEditing = computed(() => Boolean(editingEmployee.value)); const isEditing = computed(() => Boolean(editingEmployee.value));
@@ -301,9 +448,29 @@ onMounted(() => {
</div> </div>
<div class="field"> <div class="field">
<label class="label" for="limited-employee-role"> <div class="limited-employee-role-label-row">
{{ t("templates.limited_backoffice.employees.role") }} <label class="label mb-0" for="limited-employee-role">
</label> {{ t("templates.limited_backoffice.employees.role") }}
</label>
<b-tooltip
:label="t('templates.limited_backoffice.role_permissions.tooltip')"
position="is-left"
type="is-dark"
>
<button
type="button"
class="button is-white is-small limited-role-help-button"
:aria-label="t('templates.limited_backoffice.role_permissions.tooltip')"
:title="t('templates.limited_backoffice.role_permissions.tooltip')"
data-testid="limited-employee-role-help"
@click="showRolePermissions = true"
>
<span class="icon is-small">
<i class="fas fa-question-circle" aria-hidden="true"></i>
</span>
</button>
</b-tooltip>
</div>
<div class="control"> <div class="control">
<div class="select is-fullwidth"> <div class="select is-fullwidth">
<select id="limited-employee-role" v-model="form.role_key" data-testid="limited-employee-role"> <select id="limited-employee-role" v-model="form.role_key" data-testid="limited-employee-role">
@@ -464,6 +631,94 @@ onMounted(() => {
</div> </div>
</div> </div>
</div> </div>
<b-modal
v-model="showRolePermissions"
:width="880"
:can-cancel="['escape', 'x', 'outside']"
trap-focus
aria-role="dialog"
aria-modal
>
<div class="modal-card limited-role-permissions-modal" data-testid="limited-role-permissions-modal">
<header class="modal-card-head">
<p class="modal-card-title">{{ t("templates.limited_backoffice.role_permissions.title") }}</p>
<button
type="button"
class="delete"
:aria-label="t('templates.limited_backoffice.role_permissions.close')"
data-testid="limited-role-permissions-close"
@click="showRolePermissions = false"
></button>
</header>
<section class="modal-card-body">
<p class="limited-role-permissions-modal__intro" data-testid="limited-role-permissions-intro">
{{ t("templates.limited_backoffice.role_permissions.intro") }}
</p>
<p class="limited-role-permissions-modal__scope">
{{ t("templates.limited_backoffice.role_permissions.scope") }}
</p>
<div class="limited-role-permissions-list">
<section
v-for="role in visibleRoles"
:key="role.key"
class="limited-role-permissions-role"
:class="{ 'limited-role-permissions-role--selected': role.key === form.role_key }"
:data-testid="`limited-role-permissions-role-${role.key}`"
>
<div class="limited-role-permissions-role__header">
<div>
<h3 class="title is-6 mb-1">{{ roleLabel(role) }}</h3>
<p class="is-size-7 has-text-grey">{{ roleDescription(role) }}</p>
</div>
<span v-if="role.key === form.role_key" class="tag is-info is-light">
{{ t("templates.limited_backoffice.role_permissions.selected") }}
</span>
</div>
<div
v-if="rolePermissionGroups(role).length === 0"
class="notification is-warning is-light limited-role-permissions-role__empty"
>
{{ t("templates.limited_backoffice.role_permissions.unavailable") }}
</div>
<div
v-for="group in rolePermissionGroups(role)"
:key="`${role.key}-${group.key}`"
class="limited-role-permissions-group"
:data-testid="`limited-role-permissions-group-${role.key}-${group.key}`"
>
<h4 class="limited-role-permissions-group__title">
{{ rolePermissionGroupLabel(group.key) }}
</h4>
<ul class="limited-role-permissions-capabilities">
<li
v-for="capability in group.capabilities"
:key="`${role.key}-${group.key}-${capability}`"
class="limited-role-permissions-capability"
>
<strong>{{ roleCapabilityLabel(capability) }}</strong>
<span>{{ roleCapabilityDescription(capability) }}</span>
</li>
</ul>
</div>
</section>
</div>
</section>
<footer class="modal-card-foot is-justify-content-flex-end">
<button
type="button"
class="button is-dark"
data-testid="limited-role-permissions-close-footer"
@click="showRolePermissions = false"
>
{{ t("templates.limited_backoffice.role_permissions.close") }}
</button>
</footer>
</div>
</b-modal>
</LimitedBackofficeLayout> </LimitedBackofficeLayout>
</RestrictedPageWrapper> </RestrictedPageWrapper>
</template> </template>
@@ -484,6 +739,28 @@ onMounted(() => {
gap: 0.5rem; gap: 0.5rem;
} }
.limited-employee-role-label-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
margin-bottom: 0.5rem;
}
.limited-role-help-button {
flex: 0 0 auto;
width: 2rem;
height: 2rem;
color: #485fc7;
border-radius: 999px;
}
.limited-role-help-button:focus,
.limited-role-help-button:hover {
color: #363636;
background: #f5f5f5;
}
.limited-employees-header { .limited-employees-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -509,6 +786,78 @@ onMounted(() => {
width: 190px; width: 190px;
} }
.limited-role-permissions-modal {
width: 100%;
max-width: 880px;
}
.limited-role-permissions-modal__intro {
margin-bottom: 0.5rem;
}
.limited-role-permissions-modal__scope {
margin-bottom: 1rem;
color: #4a4a4a;
}
.limited-role-permissions-list {
display: grid;
gap: 1rem;
}
.limited-role-permissions-role {
border: 1px solid #dbdbdb;
border-radius: 8px;
padding: 1rem;
background: #fff;
}
.limited-role-permissions-role--selected {
border-color: #485fc7;
box-shadow: inset 3px 0 0 #485fc7;
}
.limited-role-permissions-role__header {
display: flex;
justify-content: space-between;
gap: 1rem;
align-items: flex-start;
margin-bottom: 0.75rem;
}
.limited-role-permissions-role__empty {
margin-bottom: 0;
}
.limited-role-permissions-group + .limited-role-permissions-group {
margin-top: 0.85rem;
}
.limited-role-permissions-group__title {
margin-bottom: 0.4rem;
font-size: 0.85rem;
font-weight: 700;
color: #363636;
text-transform: uppercase;
}
.limited-role-permissions-capabilities {
display: grid;
gap: 0.45rem;
margin: 0;
}
.limited-role-permissions-capability {
display: grid;
gap: 0.1rem;
padding-left: 0.75rem;
border-left: 2px solid #dbdbdb;
}
.limited-role-permissions-capability span {
color: #4a4a4a;
}
@media screen and (max-width: 1024px) { @media screen and (max-width: 1024px) {
.limited-employees-header { .limited-employees-header {
display: block; display: block;
@@ -518,4 +867,14 @@ onMounted(() => {
margin-top: 0.5rem; margin-top: 0.5rem;
} }
} }
@media screen and (max-width: 768px) {
.limited-role-permissions-role__header {
display: block;
}
.limited-role-permissions-role__header .tag {
margin-top: 0.5rem;
}
}
</style> </style>
@@ -1340,6 +1340,10 @@ const clearRecentCompletedRefreshInterval = () => {
}; };
const scheduleRecentCompletedWashRefresh = (attempt = 0) => { const scheduleRecentCompletedWashRefresh = (attempt = 0) => {
if (isMyWashStartUnmounted.value) {
return;
}
clearRecentCompletedRefreshTimeout(); clearRecentCompletedRefreshTimeout();
if (refreshRecentlyCompletedWashState() || attempt >= 20 || isMyWashStartUnmounted.value) { if (refreshRecentlyCompletedWashState() || attempt >= 20 || isMyWashStartUnmounted.value) {
@@ -1347,6 +1351,10 @@ const scheduleRecentCompletedWashRefresh = (attempt = 0) => {
} }
recentCompletedRefreshTimeout.value = window.setTimeout(() => { recentCompletedRefreshTimeout.value = window.setTimeout(() => {
if (isMyWashStartUnmounted.value) {
return;
}
scheduleRecentCompletedWashRefresh(attempt + 1); scheduleRecentCompletedWashRefresh(attempt + 1);
}, 250); }, 250);
}; };
+170 -5
View File
@@ -82,12 +82,128 @@ const pricePayload = {
], ],
}; };
const rolePermissionGroups = {
viewer: [{ key: "account", capabilities: ["sign_in", "view_own_permissions"] }],
cashier: [
{ key: "account", capabilities: ["sign_in", "view_own_permissions"] },
{
key: "orders",
capabilities: [
"view_orders",
"create_orders",
"edit_orders",
"view_order_items",
"create_order_items",
"update_order_lines",
"remove_order_lines",
"charge_orders",
],
},
],
booking_coordinator: [
{ key: "account", capabilities: ["sign_in", "view_own_permissions"] },
{ key: "orders", capabilities: ["view_orders"] },
{
key: "bookings",
capabilities: [
"view_department_bookings",
"view_own_bookings",
"update_bookings",
"create_bookings",
"mark_bookings_complete",
"send_booking_confirmations",
],
},
{
key: "time_bookings",
capabilities: ["view_time_booking_entries", "create_time_booking_entries", "edit_time_booking_entries"],
},
],
operations_lead: [
{ key: "account", capabilities: ["sign_in", "view_own_permissions"] },
{
key: "orders",
capabilities: [
"view_orders",
"create_orders",
"edit_orders",
"delete_orders",
"view_order_items",
"create_order_items",
"update_order_lines",
"remove_order_lines",
"charge_orders",
],
},
{
key: "bookings",
capabilities: [
"view_department_bookings",
"view_own_bookings",
"update_bookings",
"create_bookings",
"mark_bookings_complete",
"send_booking_confirmations",
],
},
{ key: "reports", capabilities: ["view_order_statistics", "view_booking_statistics"] },
],
department_admin: [
{ key: "account", capabilities: ["sign_in", "view_own_permissions"] },
{
key: "orders",
capabilities: [
"view_orders",
"create_orders",
"edit_orders",
"delete_orders",
"view_order_items",
"create_order_items",
"update_order_lines",
"remove_order_lines",
"charge_orders",
],
},
{
key: "bookings",
capabilities: [
"view_department_bookings",
"view_own_bookings",
"update_bookings",
"create_bookings",
"mark_bookings_complete",
"send_booking_confirmations",
],
},
{ key: "reports", capabilities: ["view_order_statistics", "view_booking_statistics"] },
{
key: "limited_backoffice",
capabilities: ["open_limited_backoffice", "manage_department_prices", "manage_employee_access"],
},
],
};
const rolesPayload = [ const rolesPayload = [
{ key: "viewer", label: "Viewer", description: "Can view." }, { key: "viewer", label: "Viewer", description: "Can view.", permission_groups: rolePermissionGroups.viewer },
{ key: "cashier", label: "Cashier", description: "Can sell." }, { key: "cashier", label: "Cashier", description: "Can sell.", permission_groups: rolePermissionGroups.cashier },
{ key: "booking_coordinator", label: "Booking coordinator", description: "Can coordinate." }, {
{ key: "operations_lead", label: "Operations lead", description: "Can coordinate operations." }, key: "booking_coordinator",
{ key: "department_admin", label: "Department admin", description: "Can administer." }, label: "Booking coordinator",
description: "Can coordinate.",
permission_groups: rolePermissionGroups.booking_coordinator,
},
{
key: "operations_lead",
label: "Operations lead",
description: "Can coordinate operations.",
permission_groups: rolePermissionGroups.operations_lead,
},
{
key: "department_admin",
label: "Department admin",
description: "Can administer.",
permission_groups: rolePermissionGroups.department_admin,
},
{ key: "superuser", label: "Superuser", description: "Must not render." }, { key: "superuser", label: "Superuser", description: "Must not render." },
]; ];
@@ -271,6 +387,55 @@ test.describe("Limited backoffice", () => {
expect(api.forbiddenCalls).toEqual([]); expect(api.forbiddenCalls).toEqual([]);
}); });
test("shows grouped human-readable role permission help without raw permission keys", async ({ page }, testInfo) => {
await seedLimitedBackofficeSession(page);
await mockLimitedBackofficeApi(page);
await page.goto("/backoffice/employees");
const helpButton = page.getByTestId("limited-employee-role-help");
await expect(helpButton).toBeVisible();
await expect(helpButton).toHaveAttribute("title", "View role permissions");
if (isDesktopProject(testInfo)) {
await helpButton.hover();
await expect(page.locator(".tooltip-content").filter({ hasText: "View role permissions" })).toBeVisible();
}
await helpButton.click();
const modal = page.getByTestId("limited-role-permissions-modal");
await expect(modal).toBeVisible();
await expect(modal).toContainText("Role permissions");
await expect(modal).toContainText("Every capability is limited to the departments selected for the employee.");
await expect(page.getByTestId("limited-role-permissions-role-cashier")).toContainText("Cashier");
await expect(page.getByTestId("limited-role-permissions-role-cashier")).toContainText("Orders");
await expect(page.getByTestId("limited-role-permissions-role-cashier")).toContainText("View orders");
await expect(page.getByTestId("limited-role-permissions-role-cashier")).toContainText("Create order lines");
await expect(page.getByTestId("limited-role-permissions-role-viewer")).toContainText("Selected");
for (const rawPermission of [
"list_orders",
"add_order",
"edit_order_items",
"delete_order_items",
"department_timebookings_entries_get",
"limited_backoffice_employees_manage",
"department_access_1",
"raw_permissions",
]) {
await expect(page.locator("body")).not.toContainText(rawPermission);
}
await page.getByTestId("limited-role-permissions-close-footer").click();
await expect(page.getByTestId("limited-role-permissions-modal")).toHaveCount(0);
await helpButton.click();
await expect(page.getByTestId("limited-role-permissions-modal")).toBeVisible();
await page.keyboard.press("Escape");
await expect(page.getByTestId("limited-role-permissions-modal")).toHaveCount(0);
});
test("does not render data for a department outside the manager scope", async ({ page }, testInfo) => { test("does not render data for a department outside the manager scope", async ({ page }, testInfo) => {
test.skip(!isDesktopProject(testInfo), "Desktop only"); test.skip(!isDesktopProject(testInfo), "Desktop only");
+2 -2
View File
@@ -223,7 +223,7 @@ test.describe("Self-serve wash", () => {
await page.goto("/user/wash"); await page.goto("/user/wash");
await expect(page.getByRole("link", { name: "Start vask" })).toBeVisible({ timeout: 15_000 }); await expect(page.getByRole("link", { name: "Start vask" })).toBeVisible({ timeout: 30_000 });
await expect(page.getByText("Roskilde").first()).toBeVisible(); await expect(page.getByText("Roskilde").first()).toBeVisible();
const orderedDepartmentNames = await page const orderedDepartmentNames = await page
@@ -268,7 +268,7 @@ test.describe("Self-serve wash", () => {
}); });
await page.reload({ waitUntil: "domcontentloaded" }); await page.reload({ waitUntil: "domcontentloaded" });
await expect(page.getByTestId("self-serve-live-elapsed")).toBeVisible({ timeout: 10_000 }); await expect(page.getByTestId("self-serve-inline-progress")).toContainText("ZZ00000", { timeout: 20_000 });
await advanceGuidedWashToLastStep(page); await advanceGuidedWashToLastStep(page);
await expect(page.getByTestId("self-serve-guided-next")).toBeHidden(); await expect(page.getByTestId("self-serve-guided-next")).toBeHidden();
+23 -14
View File
@@ -6,7 +6,12 @@ async function primeSuperuserSession(page) {
await primeMockSession(page, { token }); await primeMockSession(page, { token });
} }
async function runDiagnostic(page, testId, inputValue = "") { async function expectDiagnosticResult(page, expectedText) {
const result = page.locator(".swal2-popup:visible pre").first();
await expect(result).toContainText(expectedText);
}
async function runDiagnostic(page, testId, { inputValue = "", expectedText } = {}) {
await page.locator(`[data-testid="${testId}"]:visible`).first().click(); await page.locator(`[data-testid="${testId}"]:visible`).first().click();
await expect(page.locator(".swal2-popup")).toBeVisible(); await expect(page.locator(".swal2-popup")).toBeVisible();
const input = page.locator(".swal2-input"); const input = page.locator(".swal2-input");
@@ -14,10 +19,10 @@ async function runDiagnostic(page, testId, inputValue = "") {
await input.fill(inputValue); await input.fill(inputValue);
} }
await page.locator(".swal2-confirm").click(); await page.locator(".swal2-confirm").click();
await expect(page.locator(".swal2-popup pre")).toBeVisible(); await expectDiagnosticResult(page, expectedText);
} }
async function runShiftDiagnostic(page, { startFrom, startTo, employeeID = "", released = "" }) { async function runShiftDiagnostic(page, { startFrom, startTo, employeeID = "", released = "", expectedText }) {
await page.locator('[data-testid="workfeed-diagnostics-list-shifts"]:visible').first().click(); await page.locator('[data-testid="workfeed-diagnostics-list-shifts"]:visible').first().click();
await expect(page.locator(".swal2-popup")).toBeVisible(); await expect(page.locator(".swal2-popup")).toBeVisible();
await page.locator("#workfeed-start-from").fill(startFrom); await page.locator("#workfeed-start-from").fill(startFrom);
@@ -29,11 +34,13 @@ async function runShiftDiagnostic(page, { startFrom, startTo, employeeID = "", r
await page.locator("#workfeed-released").selectOption(released); await page.locator("#workfeed-released").selectOption(released);
} }
await page.locator(".swal2-confirm").click(); await page.locator(".swal2-confirm").click();
await expect(page.locator(".swal2-popup pre")).toBeVisible(); await expectDiagnosticResult(page, expectedText);
} }
async function closeResultModal(page) { async function closeResultModal(page) {
await page.locator(".swal2-confirm").click(); const confirmButton = page.locator(".swal2-popup:visible .swal2-confirm").first();
await expect(confirmButton).toBeVisible();
await confirmButton.evaluate((button) => button.click());
await expect(page.locator(".swal2-popup")).toBeHidden(); await expect(page.locator(".swal2-popup")).toBeHidden();
} }
@@ -67,12 +74,10 @@ test.describe("Workfeed configuration smoke", () => {
await expect(page.locator('[data-testid="workfeed-diagnostics-get-employee"]:visible').first()).toBeVisible(); await expect(page.locator('[data-testid="workfeed-diagnostics-get-employee"]:visible').first()).toBeVisible();
await expect(page.locator('[data-testid="workfeed-diagnostics-get-shift"]:visible').first()).toBeVisible(); await expect(page.locator('[data-testid="workfeed-diagnostics-get-shift"]:visible').first()).toBeVisible();
await runDiagnostic(page, "workfeed-diagnostics-list-departments"); await runDiagnostic(page, "workfeed-diagnostics-list-departments", { expectedText: "North Facility" });
await expect(page.locator(".swal2-popup pre")).toContainText("North Facility");
await closeResultModal(page); await closeResultModal(page);
await runDiagnostic(page, "workfeed-diagnostics-list-employees"); await runDiagnostic(page, "workfeed-diagnostics-list-employees", { expectedText: "Anne Nielsen" });
await expect(page.locator(".swal2-popup pre")).toContainText("Anne Nielsen");
await closeResultModal(page); await closeResultModal(page);
await runShiftDiagnostic(page, { await runShiftDiagnostic(page, {
@@ -80,16 +85,20 @@ test.describe("Workfeed configuration smoke", () => {
startTo: "2026-03-25T00:00", startTo: "2026-03-25T00:00",
employeeID: "emp_01J5P2F2A0CQKBBX4P8M3Y7R5P", employeeID: "emp_01J5P2F2A0CQKBBX4P8M3Y7R5P",
released: "true", released: "true",
expectedText: "Morning Shift",
}); });
await expect(page.locator(".swal2-popup pre")).toContainText("Morning Shift");
await closeResultModal(page); await closeResultModal(page);
await runDiagnostic(page, "workfeed-diagnostics-get-employee", "emp_01J5P2F2A0CQKBBX4P8M3Y7R5P"); await runDiagnostic(page, "workfeed-diagnostics-get-employee", {
await expect(page.locator(".swal2-popup pre")).toContainText("Anne Nielsen"); inputValue: "emp_01J5P2F2A0CQKBBX4P8M3Y7R5P",
expectedText: "Anne Nielsen",
});
await closeResultModal(page); await closeResultModal(page);
await runDiagnostic(page, "workfeed-diagnostics-get-shift", "shf_01J5P3X9D35R9C6BDZ1S0R4V6Q"); await runDiagnostic(page, "workfeed-diagnostics-get-shift", {
await expect(page.locator(".swal2-popup pre")).toContainText("Morning Shift"); inputValue: "shf_01J5P3X9D35R9C6BDZ1S0R4V6Q",
expectedText: "Morning Shift",
});
await closeResultModal(page); await closeResultModal(page);
}); });
}); });