diff --git a/lib/app/index.js b/lib/app/index.js index 375661db0d..fc56a6336e 100644 --- a/lib/app/index.js +++ b/lib/app/index.js @@ -197,20 +197,24 @@ ready(function(model) { } tour.start(); model.on('set', '_user.tasks.*.completed', function(i, completed, previous, isLocal) { - var direction, from, ids, index, shouldTransfer, task, to, _ref3, _ref4, _ref5; - _ref3 = [null, null, false, null], from = _ref3[0], to = _ref3[1], shouldTransfer = _ref3[2], direction = _ref3[3]; - if (completed === true && previous === false && isLocal) { - _ref4 = ['_todoList', '_completedList', true, 'up'], from = _ref4[0], to = _ref4[1], shouldTransfer = _ref4[2], direction = _ref4[3]; - } else if (completed === false && previous === true && isLocal) { - _ref5 = ['_completedList', '_todoList', true, 'down'], from = _ref5[0], to = _ref5[1], shouldTransfer = _ref5[2], direction = _ref5[3]; - } - if (shouldTransfer) { - task = model.at("_user.tasks." + i); - score({ - user: model.at('_user'), - task: task, - direction: direction - }); + var direction, from, ids, index, task, to, _ref3; + direction = function() { + if (completed === true && previous === false) { + return 'up'; + } + if (completed === false && previous === true) { + return 'down'; + } + return console.error('Error: direction neither "up" nor "down" on checkbox set.'); + }; + task = model.at("_user.tasks." + i); + score({ + user: model.at('_user'), + task: task, + direction: direction() + }); + if (task.get('type') === 'todo') { + _ref3 = direction() === 'up' ? ['_todoList', '_completedList'] : ['_completedList', '_todoList'], from = _ref3[0], to = _ref3[1]; ids = _.map(model.get(from), function(obj) { return obj.id; }); diff --git a/src/app/index.coffee b/src/app/index.coffee index 3481c0a28c..c1cdbd0929 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -164,17 +164,18 @@ ready (model) -> # return false model.on 'set', '_user.tasks.*.completed', (i, completed, previous, isLocal) -> - - [from, to, shouldTransfer, direction] = [null, null, false, null] - if completed==true and previous==false and isLocal - [from, to, shouldTransfer, direction] = ['_todoList', '_completedList', true, 'up'] - else if completed==false and previous==true and isLocal - [from, to, shouldTransfer, direction] = ['_completedList', '_todoList', true, 'down'] - if shouldTransfer - task = model.at("_user.tasks.#{i}") - # Score the user based on todo task - score({user:model.at('_user'), task:task, direction:direction}) - # Then move the task to/from _todoList/_completedList + direction = () -> + return 'up' if completed==true and previous == false + return 'down' if completed==false and previous == true + console.error 'Error: direction neither "up" nor "down" on checkbox set.' + + # Score the user based on todo task + task = model.at("_user.tasks.#{i}") + score({user:model.at('_user'), task:task, direction:direction()}) + + # Then move the todos to/from _todoList/_completedList + if task.get('type') == 'todo' + [from, to] = if (direction()=='up') then ['_todoList', '_completedList'] else ['_completedList', '_todoList'] ids = _.map model.get(from), (obj) -> obj.id index = ids.indexOf(i)