diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index 9a5f6327b8..50d7503f5a 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -128,12 +128,10 @@ define('admin/extend/rewards', function() { } function newReward() { - var ul = $('#active'), - id = $('#active li').last().attr('data-id'); + var ul = $('#active'); var data = { active: [{ - id: id ? parseInt(id, 10) + 1 : 0, disabled: true, value: '', claimable: 1 diff --git a/src/rewards/admin.js b/src/rewards/admin.js index 4d3681b094..796127b5f3 100644 --- a/src/rewards/admin.js +++ b/src/rewards/admin.js @@ -15,20 +15,24 @@ rewards.save = function(data, callback) { var rewardsData = data.rewards; delete data.rewards; - async.parallel([ - function(next) { - rewards.delete(data, next); - }, - function(next) { - db.setAdd('rewards:list', data.id, next); - }, - function(next) { - db.setObject('rewards:id:' + data.id, data, next); - }, - function(next) { - db.setObject('rewards:id:' + data.id + ':rewards', rewardsData, next); - } - ], next); + db.incrObjectField('global', 'nextRid', function(err, id) { + data.id = id; + + async.parallel([ + function(next) { + rewards.delete(data, next); + }, + function(next) { + db.setAdd('rewards:list', data.id, next); + }, + function(next) { + db.setObject('rewards:id:' + data.id, data, next); + }, + function(next) { + db.setObject('rewards:id:' + data.id + ':rewards', rewardsData, next); + } + ], next); + }); } async.each(data, save, function(err) {