refactor(housekeeping): modal confirm, bulk delete, search debounce, audit inline, form reset
Local Build and Deploy / deploy (push) Successful in 1m6s

- Replace browser confirm() with custom ConfirmModal component
- Add search debounce (300ms) before syncing URL params
- Reset add-permission form after successful submit
- Add bulk select/delete with checkbox column and bulkDeletePermissions action
- AuditSection fetches logs server-side via getAuditLogs and shows inline table
- Add 10 new i18n keys (cancel, confirm, confirmDeletePermission,
  confirmBulkDelete, deleteSelected, confirmClearAllDesc,
  auditTime, auditUser, auditAction, auditTarget) synced to all 22 locales
This commit is contained in:
openhands committed 2026-07-17 19:53:53 +02:00
1 parent d693d169dd
commit f1e4e32a1e
25 files changed
+645 -137

No files matched your search

+23
View File
@@ -870,4 +870,27 @@ export async function clearAllPermissions(): Promise<void> {
revalidatePath("/admin/housekeeping"); revalidatePath("/admin/housekeeping");
} }
export async function bulkDeletePermissions(
ids: bigint[],
): Promise<{ count: number }> {
await requirePermission(PERMS.SETTINGS_EDIT);
if (!ids.length) return { count: 0 };
const userId = await currentUserId();
await prisma.websiteHousekeepingPermissions.deleteMany({
where: { id: { in: ids } },
});
await logAudit({
userId: userId ?? 0,
action: "housekeeping.permission.bulk_delete",
target: "WebsiteHousekeepingPermissions",
after: { deletedCount: ids.length },
});
revalidatePath("/admin/housekeeping");
return { count: ids.length };
}
File diff suppressed because it is too large. Load diff
+8 -14
View File
@@ -3,7 +3,9 @@ import { redirect } from "next/navigation";
import { getTranslations } from "next-intl/server"; import { getTranslations } from "next-intl/server";
import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions";
import { prisma } from "@/lib/prisma"; import { prisma } from "@/lib/prisma";
import { getAuditLogs } from "@/lib/services/audit";
import { import {
AuditSection,
ExportSection, ExportSection,
ImportSection, ImportSection,
ManageSection, ManageSection,
@@ -77,6 +79,11 @@ export default async function AdminHousekeeping({
const allGroups = [...new Set([...GROUPS, ...Object.keys(groupCounts)])]; const allGroups = [...new Set([...GROUPS, ...Object.keys(groupCounts)])];
const auditLogs = await getAuditLogs({
search: "housekeeping",
perPage: 25,
}).catch(() => null);
return ( return (
<main> <main>
<div className="admin-tabs mb-4"> <div className="admin-tabs mb-4">
@@ -308,20 +315,7 @@ export default async function AdminHousekeeping({
</section> </section>
)} )}
{tab === "audit" && ( {tab === "audit" && <AuditSection initialLogs={auditLogs} />}
<section>
<h2 className="admin-section-title">{t("auditTitle")}</h2>
<p className="text-xs text-[var(--admin-text-muted)] -mt-2 mb-3">
{t("auditHint")}
</p>
<div className="admin-card">
<p className="text-sm opacity-70">{t("auditLogsAt")}</p>
<Link href="/admin/logs/audit" className="btn btn-outline mt-2">
{t("viewAuditLogs")}
</Link>
</div>
</section>
)}
</main> </main>
); );
} }
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Стаи", "title": "Стаи",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Pokoje", "title": "Pokoje",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Værelser", "title": "Værelser",
+11 -1
View File
@@ -1922,7 +1922,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Räume", "title": "Räume",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Δωμάτια", "title": "Δωμάτια",
+11 -1
View File
@@ -1895,6 +1895,12 @@
"cancel": "Cancel" "cancel": "Cancel"
}, },
"confirmClearAll": "Delete ALL permissions? This action cannot be undone!", "confirmClearAll": "Delete ALL permissions? This action cannot be undone!",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"colGroup": "Group", "colGroup": "Group",
"colDepends": "Depends on", "colDepends": "Depends on",
"colPermission": "Permission", "colPermission": "Permission",
@@ -1957,7 +1963,11 @@
"auditTitle": "Permission audit log", "auditTitle": "Permission audit log",
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs" "viewAuditLogs": "View audit logs",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Rooms", "title": "Rooms",
+11 -1
View File
@@ -1922,7 +1922,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Salas", "title": "Salas",
+11 -1
View File
@@ -1922,7 +1922,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Salons", "title": "Salons",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Sobe", "title": "Sobe",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Szobák", "title": "Szobák",
+11 -1
View File
@@ -1922,7 +1922,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Stanze", "title": "Stanze",
+11 -1
View File
@@ -1895,6 +1895,12 @@
"cancel": "Annuleren" "cancel": "Annuleren"
}, },
"confirmClearAll": "ALLE permissies verwijderen? Dit kan niet ongedaan worden gemaakt!", "confirmClearAll": "ALLE permissies verwijderen? Dit kan niet ongedaan worden gemaakt!",
"confirmClearAllDesc": "Dit verwijdert alle permissies uit de database. Weet je het zeker?",
"confirmDeletePermission": "Deze permissie permanent verwijderen?",
"confirmBulkDelete": "{count} geselecteerde permissies verwijderen?",
"deleteSelected": "Verwijder {count} geselecteerd",
"cancel": "Annuleren",
"confirm": "Bevestigen",
"colGroup": "Groep", "colGroup": "Groep",
"colDepends": "Afhankelijk van", "colDepends": "Afhankelijk van",
"colPermission": "Permissie", "colPermission": "Permissie",
@@ -1957,7 +1963,11 @@
"auditTitle": "Permissie auditlog", "auditTitle": "Permissie auditlog",
"auditHint": "Alle wijzigingen aan housekeeping permissies worden gelogd.", "auditHint": "Alle wijzigingen aan housekeeping permissies worden gelogd.",
"auditLogsAt": "Auditlogs zijn beschikbaar op de Auditlog-pagina.", "auditLogsAt": "Auditlogs zijn beschikbaar op de Auditlog-pagina.",
"viewAuditLogs": "Bekijk auditlogs" "viewAuditLogs": "Bekijk auditlogs",
"auditTime": "Tijd",
"auditUser": "Gebruiker",
"auditAction": "Actie",
"auditTarget": "Doel"
}, },
"rooms": { "rooms": {
"title": "Kamers", "title": "Kamers",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Rom", "title": "Rom",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Pokoje", "title": "Pokoje",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Quartos", "title": "Quartos",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Camerele", "title": "Camerele",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Rooms", "title": "Rooms",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Izby", "title": "Izby",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Собе", "title": "Собе",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Rum", "title": "Rum",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Odalar", "title": "Odalar",
+11 -1
View File
@@ -1958,7 +1958,17 @@
"auditHint": "All changes to housekeeping permissions are logged.", "auditHint": "All changes to housekeeping permissions are logged.",
"auditLogsAt": "Audit logs are available on the Audit log page.", "auditLogsAt": "Audit logs are available on the Audit log page.",
"viewAuditLogs": "View audit logs", "viewAuditLogs": "View audit logs",
"importedWithErrors": "Imported {count} permissions with {errors} errors" "importedWithErrors": "Imported {count} permissions with {errors} errors",
"confirmClearAllDesc": "This will remove every permission entry from the database. Are you sure?",
"confirmDeletePermission": "Delete this permission permanently?",
"confirmBulkDelete": "Delete {count} selected permissions?",
"deleteSelected": "Delete {count} selected",
"cancel": "Cancel",
"confirm": "Confirm",
"auditTime": "Time",
"auditUser": "User",
"auditAction": "Action",
"auditTarget": "Target"
}, },
"rooms": { "rooms": {
"title": "Кімнати", "title": "Кімнати",