mirror of
https://github.com/modrinth/code.git
synced 2026-08-26 09:34:50 +00:00
fix: attribution scanning details (#6651)
* key override file sources on file path, allow deleting groups * dont scan modrinth files * delete attr group button * return what override files already exist on platform * intl:extract * uppercase queries * fix dupe migration key
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
||||
ReportIcon,
|
||||
ScaleIcon,
|
||||
SpinnerIcon,
|
||||
TrashIcon,
|
||||
VersionIcon,
|
||||
XCircleIcon,
|
||||
XIcon,
|
||||
@@ -135,6 +136,10 @@ const messages = defineMessages({
|
||||
id: 'external-files.permissions-card.add-files-to-group',
|
||||
defaultMessage: 'Add files...',
|
||||
},
|
||||
removeGroup: {
|
||||
id: 'external-files.permissions-card.remove-group',
|
||||
defaultMessage: 'Remove group',
|
||||
},
|
||||
moderationReasonLabel: {
|
||||
id: 'external-files.permissions-card.moderation-reason',
|
||||
defaultMessage: 'Reason',
|
||||
@@ -248,6 +253,26 @@ const splitFileMutation = useMutation({
|
||||
},
|
||||
})
|
||||
|
||||
const deleteGroupMutation = useMutation({
|
||||
mutationFn: () => client.labrinth.attribution_internal.deleteGroup(props.group.id),
|
||||
onSuccess: async () => {
|
||||
await queryClient.invalidateQueries({ queryKey: ['project-attribution', props.projectId] })
|
||||
emit('updated')
|
||||
},
|
||||
onError: (error: Error) => {
|
||||
addNotification({
|
||||
type: 'error',
|
||||
title: formatMessage(
|
||||
defineMessage({
|
||||
id: 'external-files.permissions-card.remove-group-error.title',
|
||||
defaultMessage: 'Could not remove group',
|
||||
}),
|
||||
),
|
||||
text: error.message,
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
function startEditingAttribution() {
|
||||
editingMode.value = 'attribution'
|
||||
collapsed.value = false
|
||||
@@ -280,6 +305,10 @@ function handleConfirmAddFiles(sha1s: string[]) {
|
||||
assignFilesMutation.mutate(sha1s)
|
||||
}
|
||||
|
||||
function handleDeleteGroup() {
|
||||
deleteGroupMutation.mutate()
|
||||
}
|
||||
|
||||
async function handleAddFilesToGroup(event: MouseEvent) {
|
||||
try {
|
||||
const groups = await queryClient.ensureQueryData({
|
||||
@@ -782,6 +811,18 @@ const visibleQuickReplies = computed<OverflowMenuOption[]>(() => {
|
||||
@cancel="stopEditing"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="isModerator" class="flex justify-end pt-2">
|
||||
<ButtonStyled color="red" type="outlined">
|
||||
<button :disabled="deleteGroupMutation.isPending.value" @click="handleDeleteGroup">
|
||||
<SpinnerIcon
|
||||
v-if="deleteGroupMutation.isPending.value"
|
||||
class="size-4 shrink-0 animate-spin"
|
||||
/>
|
||||
<TrashIcon v-else class="size-4 shrink-0" />
|
||||
{{ formatMessage(messages.removeGroup) }}
|
||||
</button>
|
||||
</ButtonStyled>
|
||||
</div>
|
||||
</div>
|
||||
</Collapsible>
|
||||
<AddFilesToAttributionGroupModal
|
||||
|
||||
@@ -1142,6 +1142,12 @@
|
||||
"external-files.permissions-card.reason.special-permission.description": {
|
||||
"defaultMessage": "You have obtained special permission to redistribute this work in your modpack."
|
||||
},
|
||||
"external-files.permissions-card.remove-group": {
|
||||
"defaultMessage": "Remove group"
|
||||
},
|
||||
"external-files.permissions-card.remove-group-error.title": {
|
||||
"defaultMessage": "Could not remove group"
|
||||
},
|
||||
"external-files.permissions-card.split-file": {
|
||||
"defaultMessage": "Remove from group"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user