From 110311b25ee2a194ad5ebc39e427096f0f77e8f5 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] 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) {