From 5f54de3b37cc3ffa9ad777a8fbc636b0ae9e5fdb Mon Sep 17 00:00:00 2001 From: psychobunny Date: Thu, 19 Feb 2015 23:39:39 -0500 Subject: [PATCH] successfully got loading and saving of rewards working --- public/src/admin/extend/rewards.js | 16 +++++----- src/rewards/admin.js | 50 ++++++++++++++++++++++++++---- src/socket.io/admin/rewards.js | 12 +++---- 3 files changed, 58 insertions(+), 20 deletions(-) diff --git a/public/src/admin/extend/rewards.js b/public/src/admin/extend/rewards.js index b9e837159d..645f5b0d98 100644 --- a/public/src/admin/extend/rewards.js +++ b/public/src/admin/extend/rewards.js @@ -106,12 +106,14 @@ define('admin/extend/rewards', function() { function populateInputs() { $('[data-rid]').each(function(i) { - var div = $(this).find('.inputs'), - rewards = active[i].rewards; - - for (var reward in rewards) { - if (rewards.hasOwnProperty(reward)) { - div.find('[name="' + reward + '"]').val(rewards[reward]); + if (active[i]) { + var div = $(this).find('.inputs'), + rewards = active[i].rewards; + + for (var reward in rewards) { + if (rewards.hasOwnProperty(reward)) { + div.find('[name="' + reward + '"]').val(rewards[reward]); + } } } }); @@ -121,7 +123,7 @@ define('admin/extend/rewards', function() { var ul = $('#active'), li = $('#active li').last().clone(true); - li.attr('data-id', parseInt(li.attr('data-id') + 1, 10)) + li.attr('data-id', parseInt(li.attr('data-id'), 10) + 1) .attr('data-rid', ''); li.find('.inputs').html(''); diff --git a/src/rewards/admin.js b/src/rewards/admin.js index 688f3dcce5..8f5fc8b40c 100644 --- a/src/rewards/admin.js +++ b/src/rewards/admin.js @@ -31,11 +31,24 @@ var defaults = { }; rewards.save = function(data, callback) { - data.forEach(function(reward) { - if (reward.disabled) { - //db.setAdd - } - }); + function save(data, next) { + var rewards = data.rewards; + delete data.rewards; + + async.parallel([ + 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', rewards, next); + } + ], next); + } + + async.each(data, save, callback); }; rewards.get = function(callback) { @@ -113,6 +126,31 @@ function getConditions() { } function getActiveRewards(callback) { + var activeRewards = []; + + function load(id, next) { + async.parallel({ + main: function(next) { + db.getObject('rewards:id:' + id, next); + }, + rewards: function(next) { + db.getObject('rewards:id:' + id + ':rewards', next); + } + }, function(err, data) { + data.main.rewards = data.rewards; + activeRewards.push(data.main); + + next(err); + }); + } + + db.getSetMembers('rewards:list', function(err, rewards) { + async.eachSeries(rewards, load, function(err) { + callback(err, activeRewards); + }); + }); + +/* callback(false, [ { "id": 0, @@ -137,7 +175,7 @@ function getActiveRewards(callback) { "value": 10, "disabled": true } - ]); + ]);*/ } module.exports = rewards; \ No newline at end of file diff --git a/src/socket.io/admin/rewards.js b/src/socket.io/admin/rewards.js index 70ac1fecf5..36e8b66c2c 100644 --- a/src/socket.io/admin/rewards.js +++ b/src/socket.io/admin/rewards.js @@ -1,13 +1,11 @@ "use strict"; -var rewards = require('../../rewards'), - rewards = {}; +var rewardsAdmin = require('../../rewards/admin'), + SocketRewards = {}; -rewards.save = function(socket, data, callback) { - console.log(data); - callback(new Error('derp')); - //callback(err ? err.message : null); +SocketRewards.save = function(socket, data, callback) { + rewardsAdmin.save(data, callback); }; -module.exports = rewards; \ No newline at end of file +module.exports = SocketRewards; \ No newline at end of file