From e2e72ccf84bfbe9c704ef09675b9a74f4368d794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 10 Sep 2025 09:45:39 -0400 Subject: [PATCH] https://github.com/NodeBB/NodeBB/issues/13649 --- static/lib/composer.js | 3 ++- static/lib/composer/categoryList.js | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/static/lib/composer.js b/static/lib/composer.js index 2d1ac46..facfd6c 100644 --- a/static/lib/composer.js +++ b/static/lib/composer.js @@ -460,10 +460,11 @@ define('composer', [ var title = postData.title.replace(/%/g, '%').replace(/,/g, ','); postData.category = await getSelectedCategory(postData); const privileges = postData.category ? postData.category.privileges : ajaxify.data.privileges; + const topicTemplate = isTopic && postData.category ? postData.category.topicTemplate : null; var data = { topicTitle: title, titleLength: title.length, - body: translator.escape(utils.escapeHTML(postData.body)), + body: translator.escape(utils.escapeHTML(topicTemplate || postData.body)), mobile: composer.bsEnvironment === 'xs' || composer.bsEnvironment === 'sm', resizable: true, thumb: postData.thumb, diff --git a/static/lib/composer/categoryList.js b/static/lib/composer/categoryList.js index dd7d4fe..397b4cf 100644 --- a/static/lib/composer/categoryList.js +++ b/static/lib/composer/categoryList.js @@ -92,11 +92,23 @@ define('composer/categoryList', [ } } + function updateTopicTemplate(postContainer, category, previousCategory) { + const currentText = postContainer.find('textarea.write').val(); + const previousTopicTemplate = previousCategory && previousCategory.topicTemplate; + if (category && (!currentText.length || currentText === previousTopicTemplate) && + currentText !== category.topicTemplate) { + postContainer.find('textarea.write').val(category.topicTemplate).trigger('input'); + } + } + async function changeCategory(postContainer, postData, selectedCategory) { + const previousCategory = postData.category; postData.cid = selectedCategory.cid; const categoryData = await window.fetch(`${config.relative_path}/api/category/${encodeURIComponent(selectedCategory.cid)}`).then(r => r.json()); postData.category = categoryData; updateTaskbarByCategory(postContainer, categoryData); + updateTopicTemplate(postContainer, categoryData, previousCategory); + require(['composer/scheduler', 'composer/tags', 'composer/post-queue'], function (scheduler, tags, postQueue) { scheduler.onChangeCategory(categoryData); tags.onChangeCategory(postContainer, postData, selectedCategory.cid, categoryData);