From bb82eb71e23533678af92e014962f273c85db2f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 21 Nov 2022 13:37:35 -0500 Subject: [PATCH 1/2] fix: #11052, add missing await --- src/posts/delete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posts/delete.js b/src/posts/delete.js index 900d0c717c..fb285b5128 100644 --- a/src/posts/delete.js +++ b/src/posts/delete.js @@ -203,7 +203,7 @@ module.exports = function (Posts) { await Promise.all(promises); const parentPids = _.uniq(postsWithParents.map(p => p.toPid)); - const counts = db.sortedSetsCard(parentPids.map(pid => `pid:${pid}:replies`)); + const counts = await db.sortedSetsCard(parentPids.map(pid => `pid:${pid}:replies`)); await db.setObjectBulk(parentPids.map((pid, index) => [`post:${pid}`, { replies: counts[index] }])); } From fc49665fe58150fb0d7269ea0e348e29e29410ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 22 Nov 2022 19:30:58 -0500 Subject: [PATCH 2/2] fix: https://github.com/NodeBB-Community/nodebb-plugin-custom-pages/issues/68 don't crash if template doesn't have any widgets set before --- src/widgets/index.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/widgets/index.js b/src/widgets/index.js index 686c309e7b..473a33a820 100644 --- a/src/widgets/index.js +++ b/src/widgets/index.js @@ -212,11 +212,13 @@ widgets.reset = async function () { widgets.resetTemplate = async function (template) { const area = await db.getObject(`widgets:${template}.tpl`); - const toBeDrafted = _.flatMap(Object.values(area), value => JSON.parse(value)); - await db.delete(`widgets:${template}.tpl`); - let draftWidgets = await db.getObjectField('widgets:global', 'drafts'); - draftWidgets = JSON.parse(draftWidgets).concat(toBeDrafted); - await db.setObjectField('widgets:global', 'drafts', JSON.stringify(draftWidgets)); + if (area) { + const toBeDrafted = _.flatMap(Object.values(area), value => JSON.parse(value)); + await db.delete(`widgets:${template}.tpl`); + let draftWidgets = await db.getObjectField('widgets:global', 'drafts'); + draftWidgets = JSON.parse(draftWidgets).concat(toBeDrafted); + await db.setObjectField('widgets:global', 'drafts', JSON.stringify(draftWidgets)); + } }; widgets.resetTemplates = async function (templates) {