From 89af00d1d5da2e7353de4f88e2242baf3dfd2935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 22 Sep 2021 23:56:34 -0400 Subject: [PATCH] fix: #9827, fix reward duplication --- public/src/admin/extend/rewards.js | 8 +++++++- src/rewards/admin.js | 1 + src/socket.io/admin/rewards.js | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 7df62a7e15..93f6227ccd 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -167,11 +167,17 @@ define('admin/extend/rewards', [], function () { activeRewards.push(data); }); - socket.emit('admin.rewards.save', activeRewards, function (err) { + socket.emit('admin.rewards.save', activeRewards, function (err, result) { if (err) { app.alertError(err.message); } else { app.alertSuccess('[[admin/extend/rewards:alert.save-success]]'); + // newly added rewards are missing data-id, update to prevent rewards getting duplicated + $('#active li').each(function (index) { + if (!$(this).attr('data-id')) { + $(this).attr('data-id', result[index].id); + } + }); } }); } diff --git a/src/rewards/admin.js b/src/rewards/admin.js index 15a0c9fcc8..edd3202e26 100644 --- a/src/rewards/admin.js +++ b/src/rewards/admin.js @@ -24,6 +24,7 @@ rewards.save = async function (data) { await Promise.all(data.map(data => save(data))); await saveConditions(data); + return data; }; rewards.delete = async function (data) { diff --git a/src/socket.io/admin/rewards.js b/src/socket.io/admin/rewards.js index e68527547c..278d5e6e0f 100644 --- a/src/socket.io/admin/rewards.js +++ b/src/socket.io/admin/rewards.js @@ -5,7 +5,7 @@ const rewardsAdmin = require('../../rewards/admin'); const SocketRewards = module.exports; SocketRewards.save = async function (socket, data) { - await rewardsAdmin.save(data); + return await rewardsAdmin.save(data); }; SocketRewards.delete = async function (socket, data) {