From b279c430695769d2e679e357249df379f3113c2c Mon Sep 17 00:00:00 2001 From: IMB11 Date: Wed, 13 Aug 2025 09:45:13 +0100 Subject: [PATCH] Author Validation Improvements (#4025) * feat: set up typed nag (validators) system * feat: start on frontend impl * fix: shouldShow issues * feat: continue work * feat: re add submitting/re-submit nags * feat: start work implementing validation checks using new nag system * fix: links page + add more validations * feat: tags validations * fix: lint issues * fix: lint * fix: issues * feat: start on i18nifying nags * feat: impl intl * fix: minecraft title clause update * fix: locale issues * refactor: inline i18n * fix: summary char min * fix: issues * Rephrase a few core nags * Modify character limit numbers * Remove redundant sentanceEnders check to reduce false positive. * Description nag rephrasing and tweaks * Tweak links nags adding project type checking for source publication check, make description nag tonally consistent. * fix: description nag * bump source publication nag to warn until additional files can be checked. * refactor link checking helper functions, prevent misuse of dsc links, prevent link shortener usage, check if source required licensed projects have additional files, bump this check back to required. * Correct plugin project type checking * fix: lint issues * update links.ts * feat: key + sort nags by type * Tweak core and description nag titles, change image accessability nag logic. * feat: update readme * updates to tags checking and rest of the nag titles * fix locale * fix: formatjs * fix tags warning, and link shorteners and misused discord warnings to link settings page, reword some warnings. * correct vocabulary for resolutions tags warning and sort tags list in resolution tags nag * lint fix * fix method typo * Add nag for summary formatting. * Check for link shorteners in donation links * add Gallery requirement nag for shaders and most resource packs * update index.json --------- Signed-off-by: IMB11 Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com> Co-authored-by: coolbot100s <76798835+coolbot100s@users.noreply.github.com> --- .../src/components/ui/ProjectMemberHeader.vue | 851 +++++++++--------- apps/frontend/src/locales/en-US/index.json | 72 ++ .../[type]/[id]/settings/description.vue | 18 +- .../src/pages/[type]/[id]/settings/index.vue | 26 +- .../src/pages/[type]/[id]/settings/links.vue | 104 ++- .../src/pages/[type]/[id]/settings/tags.vue | 325 ++++--- package.json | 1 + packages/moderation/README.md | 129 ++- packages/moderation/data/nags.ts | 7 + packages/moderation/data/nags/core.ts | 292 ++++++ packages/moderation/data/nags/description.ts | 381 ++++++++ packages/moderation/data/nags/index.ts | 4 + packages/moderation/data/nags/links.ts | 281 ++++++ packages/moderation/data/nags/tags.ts | 160 ++++ packages/moderation/index.ts | 3 + packages/moderation/locales/en-US/index.json | 215 +++++ packages/moderation/package.json | 7 +- packages/moderation/types/nags.ts | 96 ++ packages/utils/types.ts | 17 +- pnpm-lock.yaml | 48 +- 20 files changed, 2430 insertions(+), 607 deletions(-) create mode 100644 packages/moderation/data/nags.ts create mode 100644 packages/moderation/data/nags/core.ts create mode 100644 packages/moderation/data/nags/description.ts create mode 100644 packages/moderation/data/nags/index.ts create mode 100644 packages/moderation/data/nags/links.ts create mode 100644 packages/moderation/data/nags/tags.ts create mode 100644 packages/moderation/locales/en-US/index.json create mode 100644 packages/moderation/types/nags.ts diff --git a/apps/frontend/src/components/ui/ProjectMemberHeader.vue b/apps/frontend/src/components/ui/ProjectMemberHeader.vue index 9bef20859..352af56a0 100644 --- a/apps/frontend/src/components/ui/ProjectMemberHeader.vue +++ b/apps/frontend/src/components/ui/ProjectMemberHeader.vue @@ -1,510 +1,481 @@ - diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index 3a5bdd371..aa88ae7ac 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -554,6 +554,78 @@ "profile.user-id": { "message": "User ID: {id}" }, + "project-member-header.accept": { + "message": "Accept" + }, + "project-member-header.action": { + "message": "Action" + }, + "project-member-header.decline": { + "message": "Decline" + }, + "project-member-header.error": { + "message": "Error" + }, + "project-member-header.error-decline": { + "message": "Failed to decline team invitation" + }, + "project-member-header.error-join": { + "message": "Failed to accept team invitation" + }, + "project-member-header.invitation-no-role": { + "message": "You've been invited to join this project. Please accept or decline the invitation." + }, + "project-member-header.invitation-title": { + "message": "Invitation to join project" + }, + "project-member-header.invitation-with-role": { + "message": "You've been invited be a member of this project with the role of '{role}'." + }, + "project-member-header.key-title": { + "message": "Status Key" + }, + "project-member-header.publishing-checklist": { + "message": "Publishing checklist" + }, + "project-member-header.required": { + "message": "Required" + }, + "project-member-header.resubmit-for-review": { + "message": "Resubmit for review" + }, + "project-member-header.resubmit-for-review-desc": { + "message": "Your project has been {status} by Modrinth's staff. In most cases, you can resubmit for review after addressing the staff's message." + }, + "project-member-header.show-key": { + "message": "Toggle key" + }, + "project-member-header.submit-checklist-tooltip": { + "message": "You must complete the required steps in the publishing checklist!" + }, + "project-member-header.submit-for-review": { + "message": "Submit for review" + }, + "project-member-header.submit-for-review-desc": { + "message": "Your project is only viewable by members of the project. It must be reviewed by moderators in order to be published." + }, + "project-member-header.success": { + "message": "Success" + }, + "project-member-header.success-decline": { + "message": "You have declined the team invitation" + }, + "project-member-header.success-join": { + "message": "You have joined the project team" + }, + "project-member-header.suggestion": { + "message": "Suggestion" + }, + "project-member-header.visit-moderation-page": { + "message": "Visit moderation page" + }, + "project-member-header.warning": { + "message": "Warning" + }, "project-type.collection.plural": { "message": "Collections" }, diff --git a/apps/frontend/src/pages/[type]/[id]/settings/description.vue b/apps/frontend/src/pages/[type]/[id]/settings/description.vue index 174d4bc9c..94aa51ad7 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/description.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/description.vue @@ -22,6 +22,10 @@ " :on-image-upload="onUploadHandler" /> +
+ + {{ descriptionWarning }} +