Add messages to checklist (#1676)

This commit is contained in:
Geometrically 2024-04-10 18:31:05 -07:00 committed by GitHub
parent 5b1850e161
commit 00328d04cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 43 additions and 16 deletions

View File

@ -275,7 +275,8 @@
<div class="input-group modpack-buttons"> <div class="input-group modpack-buttons">
<button v-if="!done" class="btn skip-btn" @click="goToNextProject"> <button v-if="!done" class="btn skip-btn" @click="goToNextProject">
<ExitIcon /> <ExitIcon />
Skip <template v-if="futureProjects.length > 0">Skip</template>
<template v-else>Exit</template>
</button> </button>
<button v-if="currentStepIndex > 0" class="btn" @click="previousPage() && !done"> <button v-if="currentStepIndex > 0" class="btn" @click="previousPage() && !done">
<LeftArrowIcon /> Previous <LeftArrowIcon /> Previous
@ -348,6 +349,10 @@ const props = defineProps({
type: Object, type: Object,
default: null, default: null,
}, },
futureProjects: {
type: Array,
default: () => [],
},
resetProject: { resetProject: {
type: Function, type: Function,
required: true, required: true,
@ -436,9 +441,6 @@ This is the first thing most people will see about your mod other than the Logo,
'Should indicate any other critical information the user must know before downloading', 'Should indicate any other critical information the user must know before downloading',
'Should be accessible (no fancy characters / non-standard text, no image-only descriptions, must have English component, etc)', 'Should be accessible (no fancy characters / non-standard text, no image-only descriptions, must have English component, etc)',
], ],
exceptions: [
'Modpacks generally have a more lax requirement to qualify as a sufficient description. Generally, a mod list and a short explainer is approvable.',
],
options: [ options: [
{ {
name: 'Insufficient', name: 'Insufficient',
@ -454,6 +456,24 @@ Currently, it looks like there are some missing details.
}, },
], ],
}, },
{
name: 'Insufficient (default packs)',
resultingMessage: `## Insufficient Description
Per section 2.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#general-expectations) your project's Description should clearly inform the reader of the content, purpose, and appeal of your project.
Currently, it looks like there are some missing details.
What does your modpack add? What features does it have? Why would a user want to download it? Be specific!
See descriptions like [Simply Optimized](https://modrinth.com/modpack/sop) or [Aged](https://modrinth.com/modpack/aged) for examples of what a good description looks like.
`,
},
{
name: 'Insufficient (default projects)',
resultingMessage: `## Insufficient Description
Per section 2.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#general-expectations) your project's Description should clearly inform the reader of the content, purpose, and appeal of your project.
Currently, it looks like there are some missing details.
What does your project add? What features does it have? Why would a user want to download it? Be specific!
See descriptions like [Sodium](https://modrinth.com/mod/sodium) or [LambDynamicLights](https://modrinth.com/mod/lambdynamiclights) for examples of what a good description looks like.
`,
},
{ {
name: 'Non-english', name: 'Non-english',
resultingMessage: `## No English Description resultingMessage: `## No English Description
@ -554,10 +574,7 @@ Per section 5.1 of [Modrinth's Content Rules](https://modrinth.com/legal/rules#m
For a brief rundown of how this works: For a brief rundown of how this works:
**Client side** refers to a mod that is only required by the client, like [Sodium](https://modrinth.com/mod/sodium). **Client side** refers to a mod that is only required by the client, like [Sodium](https://modrinth.com/mod/sodium).
**Server side** mods change the behavior of the server without the client needing the mod, like Datapacks, recipes, or server-side behaviors, like [Falling Tree](https://modrinth.com/mod/fallingtree). **Server side** mods change the behavior of the server without the client needing the mod, like Datapacks, recipes, or server-side behaviors, like [Falling Tree](https://modrinth.com/mod/fallingtree).
A mod that adds features, entities, or new blocks and items, generally will be required on **both** the server and the client, for example [Cobblemon](https://modrinth.com/mod/cobblemon). A mod that adds features, entities, or new blocks and items, generally will be required on **both** the server and the client, for example [Cobblemon](https://modrinth.com/mod/cobblemon).`,
However, it looks like your project falls into the latter category and should be *required* on **both** the client and server sides.
This has been changed accordingly for your convenience. In the future, you can edit your project's environment information on its settings page under "Client-side" and "Server-side".
0`,
}, },
], ],
}, },
@ -595,6 +612,11 @@ Please upload each version of your mod separately, thank you.`,
resultingMessage: `## Modpacks on Modrinth resultingMessage: `## Modpacks on Modrinth
It looks like you've uploaded your Modpack as a \`.zip\`, unfortunately, this is invalid and is why your project type is "Mod". I recommend taking a look at our support page about [Modrinth Modpacks](https://support.modrinth.com/en/articles/8802250-modpacks-on-modrinth), and once you're ready feel free to resubmit your project as a \`.mrpack\`. Don't forget to delete the old files from your Versions!`, It looks like you've uploaded your Modpack as a \`.zip\`, unfortunately, this is invalid and is why your project type is "Mod". I recommend taking a look at our support page about [Modrinth Modpacks](https://support.modrinth.com/en/articles/8802250-modpacks-on-modrinth), and once you're ready feel free to resubmit your project as a \`.mrpack\`. Don't forget to delete the old files from your Versions!`,
}, },
{
name: 'Invalid file type (resourcepacks)',
resultingMessage: `## Resource Packs on Modrinth
It looks like you've selected loaders for your Resource Pack that are causing it to be marked as a different project type. Resource Packs must only be uploaded with the "Resource Pack" loader selected. Please re-upload all versions of your resource pack and make sure to only select "Resource Pack" as the loader.`,
},
], ],
}, },
{ {
@ -974,16 +996,10 @@ async function sendMessage(status) {
stopLoading() stopLoading()
} }
const futureProjects = ref([])
if (process.client && history && history.state && history.state.projects) {
futureProjects.value = history.state.projects
}
async function goToNextProject() { async function goToNextProject() {
const router = useRouter() const router = useRouter()
const project = futureProjects.value[0] const project = props.futureProjects[0]
if (!project) { if (!project) {
await navigateTo('/moderation/review') await navigateTo('/moderation/review')
@ -997,7 +1013,7 @@ async function goToNextProject() {
}, },
state: { state: {
showChecklist: true, showChecklist: true,
projects: futureProjects.value.slice(1), projects: props.futureProjects.slice(1),
}, },
}) })
} }

View File

@ -437,6 +437,13 @@
]" ]"
/> />
<div v-if="auth.user && currentMember" class="input-group"> <div v-if="auth.user && currentMember" class="input-group">
<button
v-if="tags.staffRoles.includes(auth.user.role) && !showModerationChecklist"
class="iconified-button"
@click="showModerationChecklist = true"
>
<EyeIcon /> Checklist
</button>
<nuxt-link <nuxt-link
:to="`/${project.project_type}/${project.slug ? project.slug : project.id}/settings`" :to="`/${project.project_type}/${project.slug ? project.slug : project.id}/settings`"
class="iconified-button" class="iconified-button"
@ -725,6 +732,7 @@
<ModerationChecklist <ModerationChecklist
v-if="auth.user && tags.staffRoles.includes(auth.user.role) && showModerationChecklist" v-if="auth.user && tags.staffRoles.includes(auth.user.role) && showModerationChecklist"
:project="project" :project="project"
:future-projects="futureProjects"
:reset-project="resetProject" :reset-project="resetProject"
/> />
</div> </div>
@ -740,6 +748,7 @@ import {
PlusIcon, PlusIcon,
Checkbox, Checkbox,
ChartIcon, ChartIcon,
EyeIcon,
renderString, renderString,
isRejected, isRejected,
isUnderReview, isUnderReview,
@ -1159,8 +1168,10 @@ async function copyId() {
const collapsedChecklist = ref(false) const collapsedChecklist = ref(false)
const showModerationChecklist = ref(false) const showModerationChecklist = ref(false)
const futureProjects = ref([])
if (process.client && history && history.state && history.state.showChecklist) { if (process.client && history && history.state && history.state.showChecklist) {
showModerationChecklist.value = true showModerationChecklist.value = true
futureProjects.value = history.state.projects
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>