diff --git a/messages/en-US.json b/messages/en-US.json index 48ad74542..f033e96f4 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -214,6 +214,7 @@ "resourceErrorDelte": "Error deleting resource", "resourcePoliciesBannerTitle": "Re-use Authentication and Access Rules", "resourcePoliciesBannerDescription": "Shared resource policies let you define authentication methods and access rules once, then attach them to multiple public resources. When you update a policy, every linked resource inherits the change automatically.", + "resourcePoliciesBannerButtonText": "Learn More", "resourcePoliciesTitle": "Manage Public Resource Policies", "resourcePoliciesAttachedResourcesColumnTitle": "Resources", "resourcePoliciesAttachedResources": "{count} resource(s)", diff --git a/src/app/[orgId]/settings/general/page.tsx b/src/app/[orgId]/settings/general/page.tsx index 0ebfae651..e20523250 100644 --- a/src/app/[orgId]/settings/general/page.tsx +++ b/src/app/[orgId]/settings/general/page.tsx @@ -282,7 +282,7 @@ function GeneralSectionForm({ org }: SectionFormProps) { {t("newtAutoUpdateDescription")}{" "} diff --git a/src/app/[orgId]/settings/resources/public/[niceId]/ssh/page.tsx b/src/app/[orgId]/settings/resources/public/[niceId]/ssh/page.tsx index 3629ed7cd..8696e1967 100644 --- a/src/app/[orgId]/settings/resources/public/[niceId]/ssh/page.tsx +++ b/src/app/[orgId]/settings/resources/public/[niceId]/ssh/page.tsx @@ -467,7 +467,7 @@ function SshServerForm({

{t("sshDaemonDisclaimer")}{" "} @@ -602,7 +602,7 @@ function SshServerForm({ siteField="selectedSite" destinationField="destination" destinationPortField="destinationPort" - learnMoreHref="https://docs.pangolin.net/manage/resources/public/ssh" + learnMoreHref="https://docs.pangolin.net/manage/resources/public/ssh#site-and-host-configuration" defaultPort={22} /> diff --git a/src/app/[orgId]/settings/resources/public/create/page.tsx b/src/app/[orgId]/settings/resources/public/create/page.tsx index 08c2093d7..e80919042 100644 --- a/src/app/[orgId]/settings/resources/public/create/page.tsx +++ b/src/app/[orgId]/settings/resources/public/create/page.tsx @@ -80,7 +80,6 @@ import { toASCII } from "punycode"; import { useMemo, useState, - useTransition, useEffect } from "react"; import { useForm, type Resolver } from "react-hook-form"; @@ -229,7 +228,7 @@ export default function Page() { >([]); const [loadingExitNodes, setLoadingExitNodes] = useState(build === "saas"); - const [createLoading, startTransition] = useTransition(); + const [createLoading, setCreateLoading] = useState(false); const [showSnippets, setShowSnippets] = useState(false); const [niceId, setNiceId] = useState(""); @@ -461,6 +460,7 @@ export default function Page() { }; async function onSubmit() { + setCreateLoading(true); const baseData = baseForm.getValues(); try { @@ -707,6 +707,8 @@ export default function Page() { t("resourceErrorCreateMessageDescription") ) }); + } finally { + setCreateLoading(false); } } @@ -1097,7 +1099,7 @@ export default function Page() { "sshDaemonDisclaimer" )}{" "} @@ -1256,7 +1258,7 @@ export default function Page() { siteField="selectedSite" destinationField="destination" destinationPortField="destinationPort" - learnMoreHref="https://docs.pangolin.net/manage/resources/public/ssh" + learnMoreHref="https://docs.pangolin.net/manage/resources/public/ssh#site-and-host-configuration" defaultPort={22} /> @@ -1306,7 +1308,7 @@ export default function Page() { sitesField="selectedSites" destinationField="destination" destinationPortField="destinationPort" - learnMoreHref="https://docs.pangolin.net/manage/resources/public/rdp" + learnMoreHref="https://docs.pangolin.net/manage/resources/public/rdp#site-and-host-configuration" defaultPort={3389} /> @@ -1353,7 +1355,7 @@ export default function Page() { sitesField="selectedSites" destinationField="destination" destinationPortField="destinationPort" - learnMoreHref="https://docs.pangolin.net/manage/resources/public/vnc" + learnMoreHref="https://docs.pangolin.net/manage/resources/public/vnc#site-and-host-configuration" defaultPort={5900} /> @@ -1427,7 +1429,7 @@ export default function Page() { } }} loading={createLoading} - disabled={!areAllTargetsValid() || browserGatewayDisabled} + disabled={!areAllTargetsValid() || browserGatewayDisabled || createLoading} > {t("resourceCreate")} diff --git a/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx b/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx index 4f1b8035f..8d5a654c9 100644 --- a/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/sites/[niceId]/general/page.tsx @@ -317,7 +317,7 @@ export default function GeneralPage() { "siteAutoUpdateDescription" )}{" "} {t("sshPrivateKeyDisclaimer")}{" "} ( + { + if (!canManageLabels) return; startTransition(async () => createOrgLabel(data)); }} /> @@ -98,7 +106,7 @@ export function CreateOrgLabelDialog({