From 9db6bd08a2d9a5fca9885639136c4b61be4a54cd Mon Sep 17 00:00:00 2001 From: Kris Date: Wed, 20 Nov 2024 16:08:08 -0500 Subject: [PATCH] FEATURE: add transformer to pass topic ID to simple invite generation (#29861) --- .../discourse/app/components/modal/create-invite.gjs | 7 +++++++ .../javascripts/discourse/app/lib/transformer/registry.js | 1 + 2 files changed, 8 insertions(+) diff --git a/app/assets/javascripts/discourse/app/components/modal/create-invite.gjs b/app/assets/javascripts/discourse/app/components/modal/create-invite.gjs index f29f6a4f50f..bbf970c33aa 100644 --- a/app/assets/javascripts/discourse/app/components/modal/create-invite.gjs +++ b/app/assets/javascripts/discourse/app/components/modal/create-invite.gjs @@ -14,6 +14,7 @@ import FutureDateInput from "discourse/components/future-date-input"; import { extractError } from "discourse/lib/ajax-error"; import { canNativeShare, nativeShare } from "discourse/lib/pwa-utils"; import { sanitize } from "discourse/lib/text"; +import { applyValueTransformer } from "discourse/lib/transformer"; import { emailValid, hostnameValid } from "discourse/lib/utilities"; import Group from "discourse/models/group"; import Invite from "discourse/models/invite"; @@ -248,11 +249,17 @@ export default class CreateInvite extends Component { @action async createLink() { this.sendEmail = false; + + const topicId = applyValueTransformer("invite-simple-mode-topic", null, { + invite: this.invite, + }); + await this.save({ max_redemptions_allowed: this.defaultRedemptionsAllowed, expires_at: moment() .add(this.siteSettings.invite_expiry_days, "days") .format(DATE_INPUT_FORMAT), + ...(topicId != null && { topic_id: topicId }), }); } diff --git a/app/assets/javascripts/discourse/app/lib/transformer/registry.js b/app/assets/javascripts/discourse/app/lib/transformer/registry.js index fb641495c61..d3adc0f4059 100644 --- a/app/assets/javascripts/discourse/app/lib/transformer/registry.js +++ b/app/assets/javascripts/discourse/app/lib/transformer/registry.js @@ -10,6 +10,7 @@ export const VALUE_TRANSFORMERS = Object.freeze([ "header-notifications-avatar-size", "home-logo-href", "home-logo-image-url", + "invite-simple-mode-topic", "mentions-class", "more-topics-tabs", "post-menu-buttons",