From f383a85f8ed569821ea0e929139dcd68c5541519 Mon Sep 17 00:00:00 2001 From: Kumar Damani Date: Wed, 3 Aug 2016 14:30:06 -0400 Subject: all files --- public/css/style.css | 7 ++++ public/index.html | 72 +++++++++++++++++++++++++++++++++ public/js/app.js | 1 + public/js/controllers/todoController.js | 44 ++++++++++++++++++++ public/js/services/todoService.js | 16 ++++++++ 5 files changed, 140 insertions(+) create mode 100644 public/css/style.css create mode 100644 public/index.html create mode 100644 public/js/app.js create mode 100644 public/js/controllers/todoController.js create mode 100644 public/js/services/todoService.js (limited to 'public') diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..31b3391 --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,7 @@ +body { + padding-top:50px; +} + +#todo-list { + margin-bottom:30px; +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..61548a5 --- /dev/null +++ b/public/index.html @@ -0,0 +1,72 @@ + + + + + + + + A Simple To-do List + + + + + + + + + + + + + + + + + +
+ + +
+

You have {{ todos.length }} to-dos

+
+ + +
+
+ + + +
+ +
+ + +

+ +

+ +
+
+ + +
+
+
+
+ + + +
+ + + +
+
+
+ +
+ + + diff --git a/public/js/app.js b/public/js/app.js new file mode 100644 index 0000000..01ec9be --- /dev/null +++ b/public/js/app.js @@ -0,0 +1 @@ +angular.module('toDoList', ['todoController', 'todoService']); diff --git a/public/js/controllers/todoController.js b/public/js/controllers/todoController.js new file mode 100644 index 0000000..eb73feb --- /dev/null +++ b/public/js/controllers/todoController.js @@ -0,0 +1,44 @@ +angular.module('todoController', []) + + // inject service factory into our controller + .controller('mainController', ['$scope','$http','Todos', function($scope, $http, Todos) { + $scope.formData = {}; + $scope.loading = true; + + // on first visit 'refresh' the todo list + Todos.get() + .success(function(data) { + $scope.todos = data; + $scope.loading = false; + }); + + // when submitting the add form, send formdata to api + $scope.createTodo = function() { + + // validate the formData to make sure that something is there + if ($scope.formData.text != undefined) { + $scope.loading = true; + + Todos.create($scope.formData) + + // if successful creation, 'refresh' todo list + .success(function(data) { + $scope.loading = false; + $scope.formData = ""; // clear the form + $scope.todos = data; // assign our new list of todo + }); + } + }; + + // delete a todo when pressed checkbox + $scope.deleteTodo = function(id) { + $scope.loading = true; + + Todos.delete(id) + // if successful, 'refresh' the list with latest data + .success(function(data) { + $scope.loading = false; + $scope.todos = data; + }); + }; + }]); \ No newline at end of file diff --git a/public/js/services/todoService.js b/public/js/services/todoService.js new file mode 100644 index 0000000..649c61f --- /dev/null +++ b/public/js/services/todoService.js @@ -0,0 +1,16 @@ +angular.module('todoService', []) + + // use the api + .factory('Todos', ['$http', function($http) { + return { + get : function() { + return $http.get('/api/todos'); + }, + create : function(data) { + return $http.post('/api/todos', data); + }, + delete : function(id) { + return $http.delete('/api/todos/' + id); + } + } + }]); \ No newline at end of file -- cgit v1.2.3