Quick moderation fixes (#3556)
* Quick moderation fixes * Fix Odyssey mods linking * Add "Copy permanent link" button to orgs, users, projects * Use permanent links for Slack webhooks * Update apps/frontend/src/pages/organization/[id].vue Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com> Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com> * Run Prettier --------- Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com> Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com> Co-authored-by: Alejandro González <me@alegon.dev> Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
This commit is contained in:
parent
2f68c62b3a
commit
0508f13cb6
@ -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 @@
|
||||
<ClipboardCopyIcon aria-hidden="true" />
|
||||
Copy ID
|
||||
</template>
|
||||
<template #copy-permalink>
|
||||
<ClipboardCopyIcon aria-hidden="true" />
|
||||
Copy permanent link
|
||||
</template>
|
||||
</OverflowMenu>
|
||||
</ButtonStyled>
|
||||
</template>
|
||||
@ -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);
|
||||
|
||||
@ -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 @@
|
||||
<ClipboardCopyIcon aria-hidden="true" />
|
||||
{{ formatMessage(commonMessages.copyIdButton) }}
|
||||
</template>
|
||||
<template #copy-permalink>
|
||||
<ClipboardCopyIcon aria-hidden="true" />
|
||||
{{ formatMessage(commonMessages.copyPermalinkButton) }}
|
||||
</template>
|
||||
</OverflowMenu>
|
||||
</ButtonStyled>
|
||||
</template>
|
||||
@ -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}`,
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@ -125,6 +125,7 @@
|
||||
shown: auth.user?.id !== user.id,
|
||||
},
|
||||
{ id: 'copy-id', action: () => copyId() },
|
||||
{ id: 'copy-permalink', action: () => copyPermalink() },
|
||||
{
|
||||
id: 'open-billing',
|
||||
action: () => navigateTo(`/admin/billing/${user.id}`),
|
||||
@ -151,6 +152,10 @@
|
||||
<ClipboardCopyIcon aria-hidden="true" />
|
||||
{{ formatMessage(commonMessages.copyIdButton) }}
|
||||
</template>
|
||||
<template #copy-permalink>
|
||||
<ClipboardCopyIcon aria-hidden="true" />
|
||||
{{ formatMessage(commonMessages.copyPermalinkButton) }}
|
||||
</template>
|
||||
<template #open-billing>
|
||||
<CurrencyIcon aria-hidden="true" />
|
||||
{{ formatMessage(messages.billingButton) }}
|
||||
@ -381,6 +386,7 @@ const auth = await useAuth();
|
||||
const cosmetics = useCosmetics();
|
||||
const tags = useTags();
|
||||
const flags = useFeatureFlags();
|
||||
const config = useRuntimeConfig();
|
||||
|
||||
const vintl = useVIntl();
|
||||
const { formatMessage } = vintl;
|
||||
@ -616,6 +622,10 @@ async function copyId() {
|
||||
await navigator.clipboard.writeText(user.value.id);
|
||||
}
|
||||
|
||||
async function copyPermalink() {
|
||||
await navigator.clipboard.writeText(`${config.public.siteUrl}/user/${user.value.id}`);
|
||||
}
|
||||
|
||||
const navLinks = computed(() => [
|
||||
{
|
||||
label: formatMessage(commonMessages.allProjectType),
|
||||
|
||||
@ -168,19 +168,19 @@ impl ModerationMessage {
|
||||
|
||||
for project in &projects {
|
||||
let additional_text = if project.contains("ftb-quests") {
|
||||
Some("Heracles")
|
||||
Some(("Odyssey Quests", "lo90fZoB"))
|
||||
} else if project.contains("ftb-ranks") || project.contains("ftb-essentials") {
|
||||
Some("Prometheus")
|
||||
Some(("Odyssey Roles", "iYcNKH7W"))
|
||||
} else if project.contains("ftb-teams") {
|
||||
Some("Argonauts")
|
||||
Some(("Odyssey Guilds", "bb2EpKpx"))
|
||||
} else if project.contains("ftb-chunks") {
|
||||
Some("Cadmus")
|
||||
Some(("Odyssey Claims", "fEWKxVzh"))
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
val.push_str(&if let Some(additional_text) = additional_text {
|
||||
format!("- {project}(consider using [{additional_text}](https://modrinth.com/mod/{}) instead)\n", additional_text.to_lowercase())
|
||||
format!("- {project} (consider using [{}](https://modrinth.com/project/{}) instead)\n", additional_text.0, additional_text.1)
|
||||
} else {
|
||||
format!("- {project}\n")
|
||||
})
|
||||
|
||||
@ -71,7 +71,7 @@ async fn get_webhook_metadata(
|
||||
url: format!(
|
||||
"{}/organization/{}",
|
||||
dotenvy::var("SITE_URL").unwrap_or_default(),
|
||||
organization.slug
|
||||
to_base62(organization.id.0 as u64)
|
||||
),
|
||||
icon_url: organization.icon_url,
|
||||
});
|
||||
@ -97,7 +97,7 @@ async fn get_webhook_metadata(
|
||||
url: format!(
|
||||
"{}/user/{}",
|
||||
dotenvy::var("SITE_URL").unwrap_or_default(),
|
||||
user.username
|
||||
to_base62(user.id.0 as u64)
|
||||
),
|
||||
name: user.username,
|
||||
icon_url: user.avatar_url,
|
||||
@ -145,11 +145,7 @@ async fn get_webhook_metadata(
|
||||
"{}/{}/{}",
|
||||
dotenvy::var("SITE_URL").unwrap_or_default(),
|
||||
project_type,
|
||||
project
|
||||
.inner
|
||||
.slug
|
||||
.clone()
|
||||
.unwrap_or_else(|| to_base62(project.inner.id.0 as u64))
|
||||
to_base62(project.inner.id.0 as u64)
|
||||
),
|
||||
project_title: project.inner.name,
|
||||
project_summary: project.inner.summary,
|
||||
|
||||
@ -21,6 +21,10 @@ export const commonMessages = defineMessages({
|
||||
id: 'button.copy-id',
|
||||
defaultMessage: 'Copy ID',
|
||||
},
|
||||
copyPermalinkButton: {
|
||||
id: 'button.copy-permalink',
|
||||
defaultMessage: 'Copy permanent link',
|
||||
},
|
||||
changesSavedLabel: {
|
||||
id: 'label.changes-saved',
|
||||
defaultMessage: 'Changes saved',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user