From d3c04afb98611e152cafbd4cb804e3a689f86cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 27 Nov 2020 16:36:23 -0500 Subject: [PATCH] fix: #8982, copy color on tag rename, dont copy if target exists refresh page on tag rename --- public/language/en-GB/admin/manage/tags.json | 3 ++- public/src/admin/manage/tags.js | 1 + src/topics/tags.js | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/public/language/en-GB/admin/manage/tags.json b/public/language/en-GB/admin/manage/tags.json index 928a6a5068..3976ea97d7 100644 --- a/public/language/en-GB/admin/manage/tags.json +++ b/public/language/en-GB/admin/manage/tags.json @@ -14,5 +14,6 @@ "alerts.editing": "Editing tag(s)", "alerts.confirm-delete": "Do you want to delete the selected tags?", - "alerts.update-success": "Tag Updated!" + "alerts.update-success": "Tag Updated!", + "reset-colors": "Reset colors" } \ No newline at end of file diff --git a/public/src/admin/manage/tags.js b/public/src/admin/manage/tags.js index 699d2ddffa..512e0732d7 100644 --- a/public/src/admin/manage/tags.js +++ b/public/src/admin/manage/tags.js @@ -159,6 +159,7 @@ define('admin/manage/tags', [ return app.alertError(err.message); } app.alertSuccess('[[admin/manage/tags:alerts.update-success]]'); + ajaxify.refresh(); }); }, }, diff --git a/src/topics/tags.js b/src/topics/tags.js index 967322da64..1aa573e3e1 100644 --- a/src/topics/tags.js +++ b/src/topics/tags.js @@ -90,6 +90,15 @@ module.exports = function (Topics) { } newTagName = utils.cleanUpTag(newTagName, meta.config.maximumTagLength); await Topics.createEmptyTag(newTagName); + const targetExists = await db.isSortedSetMember('tags:topic:count', newTagName); + const tagData = await db.getObject('tag:' + tag); + if (tagData && !targetExists) { + await db.setObject('tag:' + newTagName, { + color: tagData.color, + bgColor: tagData.bgColor, + }); + } + await batch.processSortedSet('tag:' + tag + ':topics', async function (tids) { const scores = await db.sortedSetScores('tag:' + tag + ':topics', tids); await db.sortedSetAdd('tag:' + newTagName + ':topics', scores, tids);