diff --git a/apps/frontend/src/pages/[type]/[id].vue b/apps/frontend/src/pages/[type]/[id].vue
index f97367cd7..3df2518ba 100644
--- a/apps/frontend/src/pages/[type]/[id].vue
+++ b/apps/frontend/src/pages/[type]/[id].vue
@@ -638,6 +638,7 @@
shown: !isMember,
},
{ id: 'copy-id', action: () => copyId() },
+ { id: 'copy-permalink', action: () => copyPermalink() },
]"
aria-label="More options"
:dropdown-id="`${baseId}-more-options`"
@@ -659,6 +660,10 @@
Copy ID
+
+
+ Copy permanent link
+
@@ -888,6 +893,7 @@ import { reportProject } from "~/utils/report-helpers.ts";
const data = useNuxtApp();
const route = useNativeRoute();
+const config = useRuntimeConfig();
const auth = await useAuth();
const user = await useUser();
@@ -1458,6 +1464,10 @@ async function copyId() {
await navigator.clipboard.writeText(project.value.id);
}
+async function copyPermalink() {
+ await navigator.clipboard.writeText(`${config.public.siteUrl}/project/${project.value.id}`);
+}
+
const collapsedChecklist = ref(false);
const showModerationChecklist = ref(false);
diff --git a/apps/frontend/src/pages/organization/[id].vue b/apps/frontend/src/pages/organization/[id].vue
index 9a78ceadd..6dfdc57d5 100644
--- a/apps/frontend/src/pages/organization/[id].vue
+++ b/apps/frontend/src/pages/organization/[id].vue
@@ -123,6 +123,7 @@
},
{ divider: true, shown: auth.user && currentMember },
{ id: 'copy-id', action: () => copyId() },
+ { id: 'copy-permalink', action: () => copyPermalink() },
]"
aria-label="More options"
>
@@ -135,6 +136,10 @@
{{ formatMessage(commonMessages.copyIdButton) }}
+
+
+ {{ formatMessage(commonMessages.copyPermalinkButton) }}
+
@@ -287,6 +292,7 @@ const cosmetics = useCosmetics();
const route = useNativeRoute();
const tags = useTags();
const flags = useFeatureFlags();
+const config = useRuntimeConfig();
let orgId = useRouteId();
@@ -502,6 +508,12 @@ const navLinks = computed(() => [
async function copyId() {
await navigator.clipboard.writeText(organization.value.id);
}
+
+async function copyPermalink() {
+ await navigator.clipboard.writeText(
+ `${config.public.siteUrl}/organization/${organization.value.id}`,
+ );
+}