diff --git a/src/factories/todo-factory.js b/src/factories/todo-factory.js index 9afeb0e..a17e84c 100644 --- a/src/factories/todo-factory.js +++ b/src/factories/todo-factory.js @@ -58,12 +58,26 @@ const todoFactory = angular.module('app.todoFactory', []) } } + + function onCompletedClick($scope, todo){ + + todo.isCompleted = !todo.isCompleted; + let isComplete = todo.isCompleted; + let requestBody = { isCompleted: isComplete }; + + $http.put('/todos/checkbox/' + todo._id, requestBody).then(function(response){ + getTasks($scope); + }); + }; + + return { getTasks, createTask, updateTask, deleteTask, - watchCreateTaskInput + watchCreateTaskInput, + onCompletedClick }; }); diff --git a/src/server/todos/routes.js b/src/server/todos/routes.js index 2446780..b1133bd 100644 --- a/src/server/todos/routes.js +++ b/src/server/todos/routes.js @@ -40,4 +40,13 @@ router.delete('/:id', function(req, res) { }); }); +router.put('/checkbox/:id', function(req, res) { + var id = req.params.id; + var isCompleted = req.body.isCompleted; + Todo.update({_id: id}, {$set: { isCompleted: isCompleted}}, function(err){ + if (err) { console.log(err); } + res.send('isCompleted Updated'); + }); +}); + module.exports = router; diff --git a/src/todos/todos.js b/src/todos/todos.js index 169de15..3a5b8c8 100644 --- a/src/todos/todos.js +++ b/src/todos/todos.js @@ -20,10 +20,6 @@ export default function($scope, todoFactory) { todoFactory.getTasks($scope); - $scope.onCompletedClick = todo => { - todo.isCompleted = !todo.isCompleted; - }; - $scope.onEditClick = todo => { todo.isEditing = true; todo.updatedTask = todo.task; @@ -33,8 +29,9 @@ export default function($scope, todoFactory) { todo.isEditing = false; }; - const { createTask, updateTask, deleteTask, watchCreateTaskInput } = todoFactory; - + const { createTask, updateTask, deleteTask, watchCreateTaskInput, onCompletedClick } = todoFactory; + + $scope.onCompletedClick = _.partial(onCompletedClick, $scope); $scope.createTask = _.partial(createTask, $scope, params); $scope.updateTask = _.partial(updateTask, $scope); $scope.deleteTask = _.partial(deleteTask, $scope);