diff --git a/messages/en-US.json b/messages/en-US.json index 44668c5d..6b31db25 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -47,9 +47,8 @@ "edit": "Edit", "siteConfirmDelete": "Confirm Delete Site", "siteDelete": "Delete Site", - "siteMessageRemove": "Once removed, the site will no longer be accessible. All resources and targets associated with the site will also be removed.", - "siteMessageConfirm": "To confirm, please type the name of the site below.", - "siteQuestionRemove": "Are you sure you want to remove the site {selectedSite} from the organization?", + "siteMessageRemove": "Once removed the site will no longer be accessible. All targets associated with the site will also be removed.", + "siteQuestionRemove": "Are you sure you want to remove the site from the organization?", "siteManageSites": "Manage Sites", "siteDescription": "Allow connectivity to your network through secure tunnels", "siteCreate": "Create Site", @@ -154,8 +153,7 @@ "protected": "Protected", "notProtected": "Not Protected", "resourceMessageRemove": "Once removed, the resource will no longer be accessible. All targets associated with the resource will also be removed.", - "resourceMessageConfirm": "To confirm, please type the name of the resource below.", - "resourceQuestionRemove": "Are you sure you want to remove the resource {selectedResource} from the organization?", + "resourceQuestionRemove": "Are you sure you want to remove the resource from the organization?", "resourceHTTP": "HTTPS Resource", "resourceHTTPDescription": "Proxy requests to your app over HTTPS using a subdomain or base domain.", "resourceRaw": "Raw TCP/UDP Resource", @@ -220,7 +218,7 @@ "orgDeleteConfirm": "Confirm Delete Organization", "orgMessageRemove": "This action is irreversible and will delete all associated data.", "orgMessageConfirm": "To confirm, please type the name of the organization below.", - "orgQuestionRemove": "Are you sure you want to remove the organization {selectedOrg}?", + "orgQuestionRemove": "Are you sure you want to remove the organization?", "orgUpdated": "Organization updated", "orgUpdatedDescription": "The organization has been updated.", "orgErrorUpdate": "Failed to update organization", @@ -287,9 +285,8 @@ "apiKeysAdd": "Generate API Key", "apiKeysErrorDelete": "Error deleting API key", "apiKeysErrorDeleteMessage": "Error deleting API key", - "apiKeysQuestionRemove": "Are you sure you want to remove the API key {selectedApiKey} from the organization?", + "apiKeysQuestionRemove": "Are you sure you want to remove the API key from the organization?", "apiKeysMessageRemove": "Once removed, the API key will no longer be able to be used.", - "apiKeysMessageConfirm": "To confirm, please type the name of the API key below.", "apiKeysDeleteConfirm": "Confirm Delete API Key", "apiKeysDelete": "Delete API Key", "apiKeysManage": "Manage API Keys", @@ -305,8 +302,7 @@ "userDeleteConfirm": "Confirm Delete User", "userDeleteServer": "Delete User from Server", "userMessageRemove": "The user will be removed from all organizations and be completely removed from the server.", - "userMessageConfirm": "To confirm, please type the name of the user below.", - "userQuestionRemove": "Are you sure you want to permanently delete {selectedUser} from the server?", + "userQuestionRemove": "Are you sure you want to permanently delete user from the server?", "licenseKey": "License Key", "valid": "Valid", "numberOfSites": "Number of Sites", @@ -339,7 +335,7 @@ "fossorialLicense": "View Fossorial Commercial License & Subscription Terms", "licenseMessageRemove": "This will remove the license key and all associated permissions granted by it.", "licenseMessageConfirm": "To confirm, please type the license key below.", - "licenseQuestionRemove": "Are you sure you want to delete the license key {selectedKey} ?", + "licenseQuestionRemove": "Are you sure you want to delete the license key ?", "licenseKeyDelete": "Delete License Key", "licenseKeyDeleteConfirm": "Confirm Delete License Key", "licenseTitle": "Manage License Status", @@ -372,7 +368,7 @@ "inviteRemoveErrorDescription": "An error occurred while removing the invitation.", "inviteRemoved": "Invitation removed", "inviteRemovedDescription": "The invitation for {email} has been removed.", - "inviteQuestionRemove": "Are you sure you want to remove the invitation {email}?", + "inviteQuestionRemove": "Are you sure you want to remove the invitation?", "inviteMessageRemove": "Once removed, this invitation will no longer be valid. You can always re-invite the user later.", "inviteMessageConfirm": "To confirm, please type the email address of the invitation below.", "inviteQuestionRegenerate": "Are you sure you want to regenerate the invitation for {email}? This will revoke the previous invitation.", @@ -398,9 +394,8 @@ "userErrorOrgRemoveDescription": "An error occurred while removing the user.", "userOrgRemoved": "User removed", "userOrgRemovedDescription": "The user {email} has been removed from the organization.", - "userQuestionOrgRemove": "Are you sure you want to remove {email} from the organization?", + "userQuestionOrgRemove": "Are you sure you want to remove this user from the organization?", "userMessageOrgRemove": "Once removed, this user will no longer have access to the organization. You can always re-invite them later, but they will need to accept the invitation again.", - "userMessageOrgConfirm": "To confirm, please type the name of the of the user below.", "userRemoveOrgConfirm": "Confirm Remove User", "userRemoveOrg": "Remove User from Organization", "users": "Users", @@ -742,7 +737,7 @@ "idpManageDescription": "View and manage identity providers in the system", "idpDeletedDescription": "Identity provider deleted successfully", "idpOidc": "OAuth2/OIDC", - "idpQuestionRemove": "Are you sure you want to permanently delete the identity provider {name}?", + "idpQuestionRemove": "Are you sure you want to permanently delete the identity provider?", "idpMessageRemove": "This will remove the identity provider and all associated configurations. Users who authenticate through this provider will no longer be able to log in.", "idpMessageConfirm": "To confirm, please type the name of the identity provider below.", "idpConfirmDelete": "Confirm Delete Identity Provider", @@ -1211,9 +1206,8 @@ "domainCreate": "Create Domain", "domainCreatedDescription": "Domain created successfully", "domainDeletedDescription": "Domain deleted successfully", - "domainQuestionRemove": "Are you sure you want to remove the domain {domain} from your account?", + "domainQuestionRemove": "Are you sure you want to remove the domain from your account?", "domainMessageRemove": "Once removed, the domain will no longer be associated with your account.", - "domainMessageConfirm": "To confirm, please type the domain name below.", "domainConfirmDelete": "Confirm Delete Domain", "domainDelete": "Delete Domain", "domain": "Domain", @@ -1563,9 +1557,8 @@ "searchRemoteExitNodes": "Search nodes...", "remoteExitNodeAdd": "Add Node", "remoteExitNodeErrorDelete": "Error deleting node", - "remoteExitNodeQuestionRemove": "Are you sure you want to remove the node {selectedNode} from the organization?", + "remoteExitNodeQuestionRemove": "Are you sure you want to remove the node from the organization?", "remoteExitNodeMessageRemove": "Once removed, the node will no longer be accessible.", - "remoteExitNodeMessageConfirm": "To confirm, please type the name of the node below.", "remoteExitNodeConfirmDelete": "Confirm Delete Node", "remoteExitNodeDelete": "Delete Node", "sidebarRemoteExitNodes": "Remote Nodes", @@ -1894,5 +1887,9 @@ "pathRewriteRegex": "Regex", "pathRewriteStrip": "Strip", "pathRewriteStripLabel": "strip", - "sidebarEnableEnterpriseLicense": "Enable Enterprise License" + "sidebarEnableEnterpriseLicense": "Enable Enterprise License", + "cannotbeUndone": "This can not be undone.", + "toConfirm": "to confirm", + "deleteClientQuestion": "Are you sure you want to remove the client from the site and organization?", + "clientMessageRemove": "Once removed, the client will no longer be able to connect to the site." } diff --git a/src/app/[orgId]/settings/(private)/remote-exit-nodes/ExitNodesTable.tsx b/src/app/[orgId]/settings/(private)/remote-exit-nodes/ExitNodesTable.tsx index c7e332d7..6e9ab237 100644 --- a/src/app/[orgId]/settings/(private)/remote-exit-nodes/ExitNodesTable.tsx +++ b/src/app/[orgId]/settings/(private)/remote-exit-nodes/ExitNodesTable.tsx @@ -270,17 +270,12 @@ export default function ExitNodesTable({ setSelectedNode(null); }} dialog={ -
+

- {t("remoteExitNodeQuestionRemove", { - selectedNode: - selectedNode?.name || selectedNode?.id - })} + {t("remoteExitNodeQuestionRemove")}

{t("remoteExitNodeMessageRemove")}

- -

{t("remoteExitNodeMessageConfirm")}

} buttonText={t("remoteExitNodeConfirmDelete")} diff --git a/src/app/[orgId]/settings/general/page.tsx b/src/app/[orgId]/settings/general/page.tsx index 1801bcf2..b301fd32 100644 --- a/src/app/[orgId]/settings/general/page.tsx +++ b/src/app/[orgId]/settings/general/page.tsx @@ -168,13 +168,10 @@ export default function GeneralPage() { }} dialog={
-

- {t("orgQuestionRemove", { - selectedOrg: org?.org.name - })} +

+ {t("orgQuestionRemove")}

-

{t("orgMessageRemove")}

-

{t("orgMessageConfirm")}

+

{t("orgMessageRemove")}

} buttonText={t("orgDeleteConfirm")} diff --git a/src/app/admin/license/page.tsx b/src/app/admin/license/page.tsx index 665212fc..d01b215a 100644 --- a/src/app/admin/license/page.tsx +++ b/src/app/admin/license/page.tsx @@ -315,18 +315,13 @@ export default function LicensePage() { setSelectedLicenseKey(null); }} dialog={ -
+

- {t("licenseQuestionRemove", { - selectedKey: obfuscateLicenseKey( - selectedLicenseKey.licenseKey - ) - })} + {t("licenseQuestionRemove")}

{t("licenseMessageRemove")}

-

{t("licenseMessageConfirm")}

} buttonText={t("licenseKeyDeleteConfirm")} diff --git a/src/app/admin/users/AdminUsersTable.tsx b/src/app/admin/users/AdminUsersTable.tsx index 8e75ff24..c71c0ba9 100644 --- a/src/app/admin/users/AdminUsersTable.tsx +++ b/src/app/admin/users/AdminUsersTable.tsx @@ -237,21 +237,14 @@ export default function UsersTable({ users }: Props) { setSelected(null); }} dialog={ -
+

- {t("userQuestionRemove", { - selectedUser: - selected?.email || - selected?.name || - selected?.username - })} + {t("userQuestionRemove")}

- {t("userMessageRemove")} + {t("userMessageRemove")}

- -

{t("userMessageConfirm")}

} buttonText={t("userDeleteConfirm")} diff --git a/src/components/AdminIdpTable.tsx b/src/components/AdminIdpTable.tsx index 2db1415e..cea32da3 100644 --- a/src/components/AdminIdpTable.tsx +++ b/src/components/AdminIdpTable.tsx @@ -193,7 +193,7 @@ export default function IdpTable({ idps }: Props) { setSelectedIdp(null); }} dialog={ -
+

{t("idpQuestionRemove", { name: selectedIdp.name diff --git a/src/components/AdminUsersTable.tsx b/src/components/AdminUsersTable.tsx index 6bca4a74..5030377a 100644 --- a/src/components/AdminUsersTable.tsx +++ b/src/components/AdminUsersTable.tsx @@ -256,7 +256,7 @@ export default function UsersTable({ users }: Props) { setSelected(null); }} dialog={ -

+

{t("userQuestionRemove", { selectedUser: diff --git a/src/components/ApiKeysTable.tsx b/src/components/ApiKeysTable.tsx index adc150cf..1fcae24d 100644 --- a/src/components/ApiKeysTable.tsx +++ b/src/components/ApiKeysTable.tsx @@ -177,19 +177,14 @@ export default function ApiKeysTable({ apiKeys }: ApiKeyTableProps) { setSelected(null); }} dialog={ -

+

- {t("apiKeysQuestionRemove", { - selectedApiKey: - selected?.name || selected?.id - })} + {t("apiKeysQuestionRemove")}

- {t("apiKeysMessageRemove")} + {t("apiKeysMessageRemove")}

- -

{t("apiKeysMessageConfirm")}

} buttonText={t("apiKeysDeleteConfirm")} diff --git a/src/components/ClientsTable.tsx b/src/components/ClientsTable.tsx index 425b8395..95a6b55d 100644 --- a/src/components/ClientsTable.tsx +++ b/src/components/ClientsTable.tsx @@ -277,25 +277,12 @@ export default function ClientsTable({ clients, orgId }: ClientTableProps) { setSelectedClient(null); }} dialog={ -
+

- Are you sure you want to remove the client{" "} - - {selectedClient?.name || selectedClient?.id} - {" "} - from the site and organization? + {t("deleteClientQuestion")}

-

- - Once removed, the client will no longer be - able to connect to the site.{" "} - -

- -

- To confirm, please type the name of the client - below. + {t("clientMessageRemove")}

} diff --git a/src/components/ConfirmDeleteDialog.tsx b/src/components/ConfirmDeleteDialog.tsx index cd053a14..499d0887 100644 --- a/src/components/ConfirmDeleteDialog.tsx +++ b/src/components/ConfirmDeleteDialog.tsx @@ -44,6 +44,7 @@ import { Description } from "@radix-ui/react-toast"; import { createApiClient } from "@app/lib/api"; import { useEnvContext } from "@app/hooks/useEnvContext"; import { useTranslations } from "next-intl"; +import CopyToClipboard from "./CopyToClipboard"; type InviteUserFormProps = { open: boolean; @@ -110,6 +111,17 @@ export default function InviteUserForm({
{dialog} +
+ {t("cannotbeUndone")} +
+ +
+
+ {t("type")} + + {t("toConfirm")} +
+
+

- {t("domainQuestionRemove", { - domain: selectedDomain.baseDomain - })} + {t("domainQuestionRemove")}

- {t("domainMessageRemove")} + {t("domainMessageRemove")}

-

{t("domainMessageConfirm")}

} buttonText={t("domainConfirmDelete")} diff --git a/src/components/InvitationsTable.tsx b/src/components/InvitationsTable.tsx index 900003d7..20a9755b 100644 --- a/src/components/InvitationsTable.tsx +++ b/src/components/InvitationsTable.tsx @@ -175,14 +175,11 @@ export default function InvitationsTable({ setSelectedInvitation(null); }} dialog={ -
+

- {t("inviteQuestionRemove", { - email: selectedInvitation?.email || "" - })} + {t("inviteQuestionRemove")}

{t("inviteMessageRemove")}

-

{t("inviteMessageConfirm")}

} buttonText={t("inviteRemoveConfirm")} diff --git a/src/components/OrgApiKeysTable.tsx b/src/components/OrgApiKeysTable.tsx index d4c81e80..61c14024 100644 --- a/src/components/OrgApiKeysTable.tsx +++ b/src/components/OrgApiKeysTable.tsx @@ -185,19 +185,14 @@ export default function OrgApiKeysTable({ setSelected(null); }} dialog={ -
+

- {t("apiKeysQuestionRemove", { - selectedApiKey: - selected?.name || selected?.id - })} + {t("apiKeysQuestionRemove")}

- {t("apiKeysMessageRemove")} + {t("apiKeysMessageRemove")}

- -

{t("apiKeysMessageConfirm")}

} buttonText={t("apiKeysDeleteConfirm")} diff --git a/src/components/ResourcesTable.tsx b/src/components/ResourcesTable.tsx index c9fb9c04..200b3142 100644 --- a/src/components/ResourcesTable.tsx +++ b/src/components/ResourcesTable.tsx @@ -704,17 +704,12 @@ export default function ResourcesTable({ }} dialog={
-

- {t("resourceQuestionRemove", { - selectedResource: - selectedResource?.name || - selectedResource?.id - })} +

+ {t("resourceQuestionRemove")} +

+

+ {t("resourceMessageRemove")}

- -

{t("resourceMessageRemove")}

- -

{t("resourceMessageConfirm")}

} buttonText={t("resourceDeleteConfirm")} @@ -733,17 +728,12 @@ export default function ResourcesTable({ }} dialog={
-

- {t("resourceQuestionRemove", { - selectedResource: - selectedInternalResource?.name || - selectedInternalResource?.id - })} +

+ {t("resourceQuestionRemove")} +

+

+ {t("resourceMessageRemove")}

- -

{t("resourceMessageRemove")}

- -

{t("resourceMessageConfirm")}

} buttonText={t("resourceDeleteConfirm")} diff --git a/src/components/SitesTable.tsx b/src/components/SitesTable.tsx index 4ad51688..0f1b0536 100644 --- a/src/components/SitesTable.tsx +++ b/src/components/SitesTable.tsx @@ -418,17 +418,11 @@ export default function SitesTable({ sites, orgId }: SitesTableProps) { setSelectedSite(null); }} dialog={ -
+

- {t("siteQuestionRemove", { - selectedSite: - selectedSite?.name || selectedSite?.id - })} + {t("siteQuestionRemove")}

-

{t("siteMessageRemove")}

- -

{t("siteMessageConfirm")}

} buttonText={t("siteConfirmDelete")} diff --git a/src/components/UsersTable.tsx b/src/components/UsersTable.tsx index be8aea49..b6827dff 100644 --- a/src/components/UsersTable.tsx +++ b/src/components/UsersTable.tsx @@ -273,20 +273,11 @@ export default function UsersTable({ users: u }: UsersTableProps) { setSelectedUser(null); }} dialog={ -
+

- {t("userQuestionOrgRemove", { - email: - selectedUser?.email || - selectedUser?.name || - selectedUser?.username || - "" - })} + {t("userQuestionOrgRemove")}

-

{t("userMessageOrgRemove")}

- -

{t("userMessageOrgConfirm")}

} buttonText={t("userRemoveOrgConfirm")} diff --git a/src/components/private/OrgIdpTable.tsx b/src/components/private/OrgIdpTable.tsx index 436904a0..059d175f 100644 --- a/src/components/private/OrgIdpTable.tsx +++ b/src/components/private/OrgIdpTable.tsx @@ -177,16 +177,13 @@ export default function IdpTable({ idps, orgId }: Props) { setSelectedIdp(null); }} dialog={ -
+

- {t("idpQuestionRemove", { - name: selectedIdp.name - })} + {t("idpQuestionRemove")}

- {t("idpMessageRemove")} + {t("idpMessageRemove")}

-

{t("idpMessageConfirm")}

} buttonText={t("idpConfirmDelete")}