From 526561f2de92ceea59cf6cb96e15bbcdd51d374d Mon Sep 17 00:00:00 2001 From: Josiah Glosson Date: Sat, 19 Jul 2025 07:42:17 -0500 Subject: [PATCH 1/4] Add --color to intl:extract verification (#4023) --- .github/workflows/turbo-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turbo-ci.yml b/.github/workflows/turbo-ci.yml index 6f82db1b..82e9f333 100644 --- a/.github/workflows/turbo-ci.yml +++ b/.github/workflows/turbo-ci.yml @@ -80,4 +80,4 @@ jobs: - name: 🔍 Verify intl:extract has been run run: | pnpm intl:extract - git diff --exit-code */*/src/locales/en-US/index.json + git diff --exit-code --color */*/src/locales/en-US/index.json From bcf46d440b5c864b2bada5b797a767a964858726 Mon Sep 17 00:00:00 2001 From: Emma Alexia Date: Sat, 19 Jul 2025 10:33:37 -0400 Subject: [PATCH 2/4] Count failed payments as "open" charges (#4013) This allows people to cancel failed payments, currently it fails with error "There is no open charge for this subscription" --- ...316e5f60d197196b880b72c0b2a576e470d9fd7182558103d055.json} | 4 ++-- apps/labrinth/src/database/models/charge_item.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename apps/labrinth/.sqlx/{query-99cca53fd3f35325e2da3b671532bf98b8c7ad8e7cb9158e4eb9c5bac66d20b2.json => query-cf020daa52a1316e5f60d197196b880b72c0b2a576e470d9fd7182558103d055.json} (94%) diff --git a/apps/labrinth/.sqlx/query-99cca53fd3f35325e2da3b671532bf98b8c7ad8e7cb9158e4eb9c5bac66d20b2.json b/apps/labrinth/.sqlx/query-cf020daa52a1316e5f60d197196b880b72c0b2a576e470d9fd7182558103d055.json similarity index 94% rename from apps/labrinth/.sqlx/query-99cca53fd3f35325e2da3b671532bf98b8c7ad8e7cb9158e4eb9c5bac66d20b2.json rename to apps/labrinth/.sqlx/query-cf020daa52a1316e5f60d197196b880b72c0b2a576e470d9fd7182558103d055.json index c7e1c1a3..47805a8b 100644 --- a/apps/labrinth/.sqlx/query-99cca53fd3f35325e2da3b671532bf98b8c7ad8e7cb9158e4eb9c5bac66d20b2.json +++ b/apps/labrinth/.sqlx/query-cf020daa52a1316e5f60d197196b880b72c0b2a576e470d9fd7182558103d055.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "\n SELECT\n id, user_id, price_id, amount, currency_code, status, due, last_attempt,\n charge_type, subscription_id,\n -- Workaround for https://github.com/launchbadge/sqlx/issues/3336\n subscription_interval AS \"subscription_interval?\",\n payment_platform,\n payment_platform_id AS \"payment_platform_id?\",\n parent_charge_id AS \"parent_charge_id?\",\n net AS \"net?\"\n FROM charges\n WHERE subscription_id = $1 AND (status = 'open' OR status = 'cancelled')", + "query": "\n SELECT\n id, user_id, price_id, amount, currency_code, status, due, last_attempt,\n charge_type, subscription_id,\n -- Workaround for https://github.com/launchbadge/sqlx/issues/3336\n subscription_interval AS \"subscription_interval?\",\n payment_platform,\n payment_platform_id AS \"payment_platform_id?\",\n parent_charge_id AS \"parent_charge_id?\",\n net AS \"net?\"\n FROM charges\n WHERE subscription_id = $1 AND (status = 'open' OR status = 'cancelled' OR status = 'failed')", "describe": { "columns": [ { @@ -102,5 +102,5 @@ true ] }, - "hash": "99cca53fd3f35325e2da3b671532bf98b8c7ad8e7cb9158e4eb9c5bac66d20b2" + "hash": "cf020daa52a1316e5f60d197196b880b72c0b2a576e470d9fd7182558103d055" } diff --git a/apps/labrinth/src/database/models/charge_item.rs b/apps/labrinth/src/database/models/charge_item.rs index 5acf4c69..2ca8b9ed 100644 --- a/apps/labrinth/src/database/models/charge_item.rs +++ b/apps/labrinth/src/database/models/charge_item.rs @@ -197,7 +197,7 @@ impl DBCharge { ) -> Result, DatabaseError> { let user_subscription_id = user_subscription_id.0; let res = select_charges_with_predicate!( - "WHERE subscription_id = $1 AND (status = 'open' OR status = 'cancelled')", + "WHERE subscription_id = $1 AND (status = 'open' OR status = 'cancelled' OR status = 'failed')", user_subscription_id ) .fetch_optional(exec) From 0f755b94cef253e824496207c8bdfc8113626f6d Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Sat, 19 Jul 2025 15:04:47 -0700 Subject: [PATCH 3/4] Revert "Author Validation Improvements (#3970)" (#4024) This reverts commit 44267619b60e8ff8fcdb7579462022be187a56cc. --- apps/frontend/nuxt.config.ts | 35 +- .../src/components/ui/ProjectMemberHeader.vue | 818 ++++++++++-------- apps/frontend/src/locales/en-US/index.json | 63 -- .../[type]/[id]/settings/description.vue | 18 +- .../src/pages/[type]/[id]/settings/index.vue | 26 +- .../src/pages/[type]/[id]/settings/links.vue | 39 +- .../src/pages/[type]/[id]/settings/tags.vue | 318 +++---- packages/moderation/README.md | 145 +--- packages/moderation/data/nags.ts | 7 - packages/moderation/data/nags/core.i18n.ts | 116 --- packages/moderation/data/nags/core.ts | 151 ---- .../moderation/data/nags/description.i18n.ts | 88 -- packages/moderation/data/nags/description.ts | 226 ----- packages/moderation/data/nags/index.ts | 4 - packages/moderation/data/nags/links.i18n.ts | 48 - packages/moderation/data/nags/links.ts | 155 ---- packages/moderation/data/nags/tags.i18n.ts | 35 - packages/moderation/data/nags/tags.ts | 107 --- packages/moderation/index.ts | 3 - packages/moderation/locales/en-US/index.json | 191 ---- packages/moderation/package.json | 7 +- packages/moderation/types/nags.ts | 96 -- pnpm-lock.yaml | 178 +--- 23 files changed, 661 insertions(+), 2213 deletions(-) delete mode 100644 packages/moderation/data/nags.ts delete mode 100644 packages/moderation/data/nags/core.i18n.ts delete mode 100644 packages/moderation/data/nags/core.ts delete mode 100644 packages/moderation/data/nags/description.i18n.ts delete mode 100644 packages/moderation/data/nags/description.ts delete mode 100644 packages/moderation/data/nags/index.ts delete mode 100644 packages/moderation/data/nags/links.i18n.ts delete mode 100644 packages/moderation/data/nags/links.ts delete mode 100644 packages/moderation/data/nags/tags.i18n.ts delete mode 100644 packages/moderation/data/nags/tags.ts delete mode 100644 packages/moderation/locales/en-US/index.json delete mode 100644 packages/moderation/types/nags.ts diff --git a/apps/frontend/nuxt.config.ts b/apps/frontend/nuxt.config.ts index e84ae0c0..354bff29 100644 --- a/apps/frontend/nuxt.config.ts +++ b/apps/frontend/nuxt.config.ts @@ -34,7 +34,7 @@ const enabledLocales: string[] = []; /** * Overrides for the categories of the certain locales. */ -const localesCategoriesOverrides: Partial = { +const localesCategoriesOverrides: Partial> = { "en-x-pirate": "fun", "en-x-updown": "fun", "en-x-lolcat": "fun", @@ -260,28 +260,21 @@ export default defineNuxtConfig({ const omorphiaLocales: string[] = []; const omorphiaLocaleSets = new Map(); - const externalLocales = [ - "node_modules/@modrinth/ui/src/locales/en-US", - "node_modules/@modrinth/moderation/locales/en-US", - ]; + for await (const localeDir of globIterate("node_modules/@modrinth/ui/src/locales/*", { + posix: true, + })) { + const tag = basename(localeDir); + omorphiaLocales.push(tag); - for (const localePath of externalLocales) { - for await (const localeDir of globIterate(localePath, { - posix: true, - })) { - const tag = basename(localeDir); - omorphiaLocales.push(tag); + const localeFiles: { from: string; format?: string }[] = []; - const localeFiles: { from: string; format?: string }[] = []; + omorphiaLocaleSets.set(tag, { files: localeFiles }); - omorphiaLocaleSets.set(tag, { files: localeFiles }); - - for await (const localeFile of globIterate(`${localeDir}/*`, { posix: true })) { - localeFiles.push({ - from: pathToFileURL(localeFile).toString(), - format: "default", - }); - } + for await (const localeFile of globIterate(`${localeDir}/*`, { posix: true })) { + localeFiles.push({ + from: pathToFileURL(localeFile).toString(), + format: "default", + }); } } @@ -308,7 +301,7 @@ export default defineNuxtConfig({ format: "crowdin", }); } else if (fileName === "meta.json") { - const meta: Record = await fs + const meta: Record = await fs .readFile(localeFile, "utf8") .then((date) => JSON.parse(date)); const localeMeta = (locale.meta ??= {}); diff --git a/apps/frontend/src/components/ui/ProjectMemberHeader.vue b/apps/frontend/src/components/ui/ProjectMemberHeader.vue index 9afe2d16..9bef2085 100644 --- a/apps/frontend/src/components/ui/ProjectMemberHeader.vue +++ b/apps/frontend/src/components/ui/ProjectMemberHeader.vue @@ -1,442 +1,510 @@ - diff --git a/apps/frontend/src/locales/en-US/index.json b/apps/frontend/src/locales/en-US/index.json index bf910c1e..e6a708f7 100644 --- a/apps/frontend/src/locales/en-US/index.json +++ b/apps/frontend/src/locales/en-US/index.json @@ -533,69 +533,6 @@ "profile.user-id": { "message": "User ID: {id}" }, - "project-member-header.accept": { - "message": "Accept" - }, - "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.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.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 45f0a8eb..174d4bc9 100644 --- a/apps/frontend/src/pages/[type]/[id]/settings/description.vue +++ b/apps/frontend/src/pages/[type]/[id]/settings/description.vue @@ -22,10 +22,6 @@ " :on-image-upload="onUploadHandler" /> -
- - {{ descriptionWarning }} -