From 5924154a62c4cb4abcf7bbfb67fadc4b0aabc86e Mon Sep 17 00:00:00 2001 From: Geometrically <18202329+Geometrically@users.noreply.github.com> Date: Wed, 10 Jan 2024 15:13:37 -0500 Subject: [PATCH] Fix org ownership (#1553) --- assets/images/utils/crown.svg | 1 + pages/[type]/[id].vue | 26 +++++--- pages/[type]/[id]/settings/members.vue | 58 +++++++++-------- pages/organization/[id].vue | 18 +++++- pages/organization/[id]/settings/members.vue | 66 ++++++++++---------- 5 files changed, 98 insertions(+), 71 deletions(-) create mode 100644 assets/images/utils/crown.svg diff --git a/assets/images/utils/crown.svg b/assets/images/utils/crown.svg new file mode 100644 index 000000000..7772c5b55 --- /dev/null +++ b/assets/images/utils/crown.svg @@ -0,0 +1 @@ + diff --git a/pages/[type]/[id].vue b/pages/[type]/[id].vue index a8afcad88..184d6dac1 100644 --- a/pages/[type]/[id].vue +++ b/pages/[type]/[id].vue @@ -637,7 +637,9 @@ >
-

{{ organization.name }}

+

+ {{ organization.name }} +

Organization

@@ -650,7 +652,9 @@
-

{{ member.name }}

+

+ {{ member.name }} +

{{ member.role }}

@@ -766,6 +770,7 @@ import { Checkbox, ChartIcon, } from 'omorphia' +import CrownIcon from '~/assets/images/utils/crown.svg' import CalendarIcon from '~/assets/images/utils/calendar.svg' import ClearIcon from '~/assets/images/utils/clear.svg' import DownloadIcon from '~/assets/images/utils/download.svg' @@ -878,7 +883,7 @@ try { }), useAsyncData( `project/${route.params.id}/members`, - () => useBaseFetch(`project/${route.params.id}/members`), + () => useBaseFetch(`project/${route.params.id}/members`, { apiVersion: 3 }), { transform: (members) => { members.forEach((it, index) => { @@ -939,8 +944,8 @@ if (project.value.project_type !== route.params.type || route.params.id !== proj // The rest of the members should be sorted by role, then by name const members = computed(() => { const acceptedMembers = allMembers.value.filter((x) => x.accepted) - const owner = acceptedMembers.find((x) => x.role === 'Owner') - const rest = acceptedMembers.filter((x) => x.role !== 'Owner') || [] + const owner = acceptedMembers.find((x) => x.is_owner) + const rest = acceptedMembers.filter((x) => !x.is_owner) || [] rest.sort((a, b) => { if (a.role === b.role) { @@ -1017,9 +1022,7 @@ const description = computed( () => `${project.value.description} - Download the Minecraft ${projectTypeDisplay.value} ${ project.value.title - } by ${ - members.value.find((x) => x.role === 'Owner')?.user?.username || 'a Creator' - } on Modrinth` + } by ${members.value.find((x) => x.is_owner)?.user?.username || 'a Creator'} on Modrinth` ) if (!route.name.startsWith('type-id-settings')) { @@ -1409,6 +1412,13 @@ const collapsedChecklist = ref(false) .name { font-weight: bold; + display: flex; + align-items: center; + gap: 0.25rem; + + svg { + color: var(--color-orange); + } } p { diff --git a/pages/[type]/[id]/settings/members.vue b/pages/[type]/[id]/settings/members.vue index 7112ca8b3..24850da8e 100644 --- a/pages/[type]/[id]/settings/members.vue +++ b/pages/[type]/[id]/settings/members.vue @@ -47,7 +47,7 @@
-
+
@@ -117,11 +117,7 @@ :disabled="(props.currentMember?.permissions & EDIT_MEMBER) !== EDIT_MEMBER" />
-

- A project can only have one 'Owner'. Use the 'Transfer ownership' button below if you no - longer wish to be owner. -

-