diff --git a/common/script/ops/updateTask.js b/common/script/ops/updateTask.js index b6dd9f0f90..2a2b1edba2 100644 --- a/common/script/ops/updateTask.js +++ b/common/script/ops/updateTask.js @@ -2,25 +2,24 @@ import _ from 'lodash'; // From server pass task.toObject() not the task document directly module.exports = function updateTask (task, req = {}) { + let body = req.body || {}; + // If reminders are updated -> replace the original ones - if (req.body.reminders) { - task.reminders = req.body.reminders; - delete req.body.reminders; + if (body.reminders) { + task.reminders = body.reminders; } // If checklist is updated -> replace the original one - if (req.body.checklist) { - task.checklist = req.body.checklist; - delete req.body.checklist; + if (body.checklist) { + task.checklist = body.checklist; } // If tags are updated -> replace the original ones - if (req.body.tags) { - task.tags = req.body.tags; - delete req.body.tags; + if (body.tags) { + task.tags = body.tags; } - _.merge(task, _.omit(req.body, ['_id', 'id', 'type'])); + _.merge(task, _.omit(body, ['_id', 'id', 'type', 'reminders', 'checklist', 'tags'])); return [task]; }; diff --git a/package.json b/package.json index eb7e278837..9cac7fbc09 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "coveralls": "^2.11.2", "csv": "~0.3.6", "deep-diff": "~0.1.4", - "eslint": "^2.7.0", + "eslint": "2.9.0", "eslint-config-habitrpg": "^1.0.0", "eslint-plugin-babel": "^3.0.0", "eslint-plugin-mocha": "^2.1.0", diff --git a/website/client/js/controllers/tasksCtrl.js b/website/client/js/controllers/tasksCtrl.js index fa88ecd271..a2835256e2 100644 --- a/website/client/js/controllers/tasksCtrl.js +++ b/website/client/js/controllers/tasksCtrl.js @@ -100,8 +100,11 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N }; $scope.saveTask = function(task, stayOpen, isSaveAndClose) { - if (task.checklist) - task.checklist = _.filter(task.checklist,function(i){return !!i.text}); + if (task.checklist) { + task.checklist = _.filter(task.checklist, function (i) { + return !!i.text + }); + } User.updateTask(task, {body: task}); if (!stayOpen) task._editing = false; @@ -172,8 +175,8 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N if (!task.checklist[$index].text) { // Don't allow creation of an empty checklist item // TODO Provide UI feedback that this item is still blank - } else if ($index == task.checklist.length-1){ - User.updateTask({params:{id:task._id},body:task}); // don't preen the new empty item + } else if ($index == task.checklist.length - 1) { + Tasks.addChecklistItem(task._id, task.checklist[$index]); task.checklist.push({completed:false,text:''}); focusChecklist(task,task.checklist.length-1); } else { @@ -185,12 +188,12 @@ habitrpg.controller("TasksCtrl", ['$scope', '$rootScope', '$location', 'User','N $scope.removeChecklistItem = function(task, $event, $index, force){ // Remove item if clicked on trash icon if (force) { - Tasks.removeChecklistItem(task._id, task.checklist[$index]._id); + Tasks.removeChecklistItem(task._id, task.checklist[$index].id); task.checklist.splice($index, 1); } else if (!task.checklist[$index].text) { // User deleted all the text and is now wishing to delete the item // saveTask will prune the empty item - Tasks.removeChecklistItem(task._id, task.checklist[$index]._id); + Tasks.removeChecklistItem(task._id, task.checklist[$index].id); // Move focus if the list is still non-empty if ($index > 0) focusChecklist(task, $index-1);