Skip to content

Commit 2cf6ec6

Browse files
authored
Merge pull request #14 from rupalitomar5/task
Angular with apis
2 parents 3370d92 + 4bc0693 commit 2cf6ec6

File tree

13 files changed

+5079
-66
lines changed

13 files changed

+5079
-66
lines changed

my-todolist/.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
node_modules/
2+
3+
24
.idea
3-
uploads/
5+
uploads

my-todolist/app.js

Lines changed: 30 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,25 @@
11
var express = require('express');
22
var multer=require('multer');
3-
var session = require('cookie-session');
3+
var session = require('cookie-session'); // Loads the piece of middleware for sessions
44
var bodyParser = require('body-parser');// Loads the piece of middleware for managing the settings
55
var mongoose=require('mongoose');
66
var validator=require('validator');
77
var fs= require('fs');
88
mongoose.connect('mongodb://localhost:27017/test');
99
var user=require('./model/user');
10-
//nick.save(function(err){console.log('user saved successfully')})
1110
var morgan=require('morgan');
1211
var jwt=require('jsonwebtoken');
1312
var config=require('./config');
1413
var urlencodedParser = bodyParser.urlencoded({ extended: false });
15-
//var fs = require('fs');
1614
var app = express();
1715
var Task=require('./model/task');
1816
var Step=require('./model/step');
19-
//console.log(Step);
2017
var router=express.Router();
2118
var ObjectId = require('mongodb').ObjectID;
22-
// var buf = new Buffer(1024);
2319
var id,id1=0;
2420
var arr=[],arr1=[],arr2=[],array1=[],array=[],arr3=[],arr4=[];
2521
var gfs;
2622
var token;
27-
//var myo=new Object();
2823
/* If there is no to do list in the session,
2924
we create an empty one in the form of an array before continuing */
3025
app.use('/uploads',express.static(__dirname+"/upload"));
@@ -48,17 +43,15 @@ app.use(function(req, res, next){
4843
});
4944
function addme(n,m,res)
5045
{
51-
//var addme=require("./Routes/addme")(n,m,res);
46+
5247
Task.find({}, "-_id Todo", function (err, task) {
5348
arr = task;
5449
for (var i in arr) {
55-
//console.log(arr[i]);
5650
var myo = new Object();
5751
myo = arr[i];
5852
arr1[i] = myo.Todo;
59-
//console.log(myo.Todo);
6053
}
61-
//console.log(arr[1]);
54+
6255
}).skip(n).limit(m);
6356
Task.find({}, "-_id Memberassigned", function (err, task) {
6457
arr = task;
@@ -88,7 +81,6 @@ function addme(n,m,res)
8881
Task.find({}, "-_id Priority", function (err, task) {
8982

9083
arr = task;
91-
//arr.forEach();
9284
for (var i in arr) {
9385
//console.log(arr[i]);
9486
var myo = new Object();
@@ -107,7 +99,7 @@ function addme(n,m,res)
10799
}
108100
/*
109101
/* The to do list and the form are displayed */
110-
router.get('/todo', function(req, res,next) {
102+
router.get('/todo', function(req, res) {
111103
// var token = req.body.token || req.query.token || req.headers['x-access-token'];
112104
if(token)
113105
{
@@ -126,40 +118,37 @@ addme(0,10,res);
126118
router.get('/todo/login',function(req,res) {
127119
res.render('login.ejs');
128120
});
129-
router.post('/todo/login/', urlencodedParser,
121+
router.post('/todo/login/',
130122
function(req,res){
131-
user.findOne({'name':req.body.member},function(err,user){
132-
console.log(user);
123+
user.findOne({'name':req.body.member,'admin':true},function(err,user){
133124
if(!user)
134-
{ res.json({success:false,message:'Authentication failed.user not found'})
135-
}
125+
{
126+
user.findOne({'name':req.body.member,'admin':false},function(err,user){
127+
if(!user) {
136128

137-
else if(user){
138-
console.log(user);
139-
console.log(user.password);
140-
console.log(req.body.password);
141-
//req.session.name = user;
142-
//res.redirect('/todo/member');
143-
//res.json({success:false,message:'Authentication failed.user not found'});
129+
res.json({success:false,message:'Authentication failed.user not found'})
130+
}else if(user){
131+
if(user.password!=req.body.password)
132+
{
133+
res.json({success:false,message:'Authentication failed.Wrong password'})
134+
}}
135+
else
136+
{
137+
req.session.name = user;
138+
res.redirect('/todo/member');
139+
}
140+
});
144141

142+
}else if(user){
145143
if(user.password!=req.body.password)
146144
{
147145
res.json({success:false,message:'Authentication failed.Wrong password'})
148146
}else{
149-
if(user.admin==true) {
150-
151-
152-
var secret = config.secret;
153-
console.log(secret);
154-
var token1 = jwt.sign(user, app.get('superSecret'), {
155-
expiresIn: 1440
156-
});
157-
token = token1;
158-
res.redirect('/api/todo');
159-
}
160-
else{
161-
res.redirect('/todo/member');
162-
}
147+
var token1=jwt.sign(user,app.get('supersecret'),{
148+
expiresInMinutes:1440
149+
});
150+
token=token1;
151+
res.redirect('/todo')
163152
}
164153
}
165154

@@ -199,20 +188,13 @@ router.get('/todo1', function(req, res) {
199188
});
200189
/* Adding an item to the to do list */
201190
router.post('/todo/add/', urlencodedParser, function(req, res) {
202-
203-
//console.log(step);
204191
if (req.body.newtodo != '') {
205-
// for(var i in req.body.)
206192
var task = new Task();
207193
var step= new Step();
208-
209-
//console.log(req.body.hid);
210194
for (var i in req.body.hid)
211195
{
212196
var a=req.body.Step;
213-
//console.log(req.body.Step);
214197
step.Steps=a;
215-
//step.Todo=task.Todo;
216198
}
217199
task.Todo = req.body.newtodo;
218200
console.log(req.body.newtodo);
@@ -236,9 +218,6 @@ router.post('/todo/add/', urlencodedParser, function(req, res) {
236218
upload(req,res,function(err){
237219
if(err) {
238220
return res.end(err);
239-
//res.end("error uploading file")}
240-
// res.end("file is uploaded");
241-
242221
}
243222
}
244223
);
@@ -268,8 +247,6 @@ router.post('/todo/add/', urlencodedParser, function(req, res) {
268247
if (err) {
269248
throw err;
270249
}
271-
console.log(task);
272-
//res.json({message:'Bear updated!'});
273250
});
274251
}
275252
);
@@ -278,23 +255,14 @@ router.post('/todo/add/', urlencodedParser, function(req, res) {
278255
else
279256
{
280257
res.send("sorry no data updated");
281-
//alert("No data updated");
282258
res.redirect('/api/todo1')
283259
}});
284-
router.get('*', function (req, res) {
285-
res.sendFile(__dirname + '/public/index.html');
286-
// load the single view file (angular will handle the page changes on the front-end)
287-
});
288260
/* Deletes an item from the to do list */
289261
router.get('/todo/delete/:id', function(req, res) {
290262

291263
console.log(req.params.id);
292264
id=req.params.id;
293265
Task.findByIdAndRemove(req.params.id,function(err,tasks){console.log(tasks);});
294-
295-
//Task.remove();
296-
//console.log(a);
297-
298266
res.redirect('/api/todo');
299267
});
300268

@@ -308,19 +276,17 @@ router.get('/todo/delete/:id', function(req, res) {
308276
/* Redirects to the to do list if the page requested is not found */
309277
app.use('/api',router);
310278
app.use(function(req, res, next) {
311-
console.log(id1);
279+
312280
if(id1==0)
313281
{
314-
router.route('/api/todo');
282+
res.redirect('/api/todo/login');
283+
315284
}
316285
else
317286
{
318287
res.redirect('/api/todo1');
319288
}
320-
//next();
321289
});
322-
323-
324290
app.set('superSecret',config.secret);
325291
app.use(morgan('dev'));
326292
app.listen(8010);

my-todolist/index.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!doctype html>
2+
<html ng-app="todoApp">
3+
<head>
4+
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js">
5+
</script>
6+
<script src="todo.js"></script>
7+
<link rel="stylesheet" href="todo.css">
8+
</head>
9+
<body>
10+
<h2>Todo</h2>
11+
<div ng-controller="TodoListController as todoList">
12+
<span>{{todoList.remaining()}} of {{todoList.todos.length}} remaining</span>
13+
[ <a href="" ng-click="todoList.archive()">archive</a> ]
14+
<ul class="unstyled">
15+
<li ng-repeat="todo in todoList.todos">
16+
<label class="checkbox">
17+
<input type="checkbox" ng-model="todo.done">
18+
<span class="done-{{todo.done}}">{{todo.text}}</span>
19+
</label>
20+
</li>
21+
</ul>
22+
<form ng-submit="todoList.addTodo()">
23+
<input type="text" ng-model="todoList.todoText" size="30"
24+
placeholder="add new todo here">
25+
<input class="btn-primary" type="submit" value="add">
26+
</form>
27+
</div>
28+
</body>
29+
</html>

my-todolist/indexanother.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<!DOCTYPE html>
2+
<html data-ng-app="TodoApp">
3+
<head>
4+
<meta charset="UTF-8">
5+
<base href="/"/>
6+
<title>Todo</title>
7+
</head>
8+
<body>
9+
<div>
10+
<div>
11+
<a ui-sref="Todo">Todo App</a>
12+
</div>
13+
<div>
14+
<a ui-sref="Todo">Home</a>
15+
</div>
16+
17+
</div>
18+
<script type="text/javascript" src="lib/angular.min.js"></script>
19+
<script type="text/javascript" src="lib/angular-resource.min.js">
20+
</script>
21+
<script type="text/javascript" src="lib/angular-resource-ui-router.min.js"></script>
22+
<script type="text/javascript" src="js/appstar.js"></script>
23+
<script type="text/javascript" src="js/controllers"></script>
24+
<script type="text/javascript" src="js/services.js"></script>
25+
</body>
26+
</html>

my-todolist/js/appstar.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
angular.module('movieApp',['uirouter','ngResource','TodoApp.controllers','TodoApp.services']);
2+
3+
angular.module('TodoApp').config(function($stateProvider){
4+
$stateProvider.state('Todo',{
5+
url:'/todo',
6+
templateurl:'views/todo.ejs',
7+
controller:'TodoController'
8+
})
9+
.state('viewTodo',{
10+
url:'/todo/delete/:id',
11+
templateurl:'views/todo.ejs',
12+
controller:'TodoViewController'
13+
})
14+
.state('AddTodo',{
15+
url:'/todo/add',
16+
templateurl:'views/todo.ejs',
17+
controller:'TodoCreateController'
18+
})
19+
.state('editTodo',{
20+
url:'/todo/update/',
21+
templateurl:'views/todo1.ejs',
22+
controller:'TodoEditController'
23+
});
24+
}).run(function ($state) {
25+
$state.go('Todo');
26+
});

my-todolist/js/controllers

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Created by lcom64 on 27/1/17.
3+
*/
4+
angular.module('TodoApp.controllers',[]).controller('TodoListController',function ($scope,$state,popupService,$window,Todo){
5+
6+
$scope.Todo=Todo.query();
7+
$scope.deleteTodo=function(Todo)
8+
{
9+
if(popupService.showPopup("Really delete this?"))
10+
{
11+
Todo.$delete(function(){
12+
$window.location.href='';
13+
});
14+
}
15+
};
16+
}).controller('TodoListController',function($scope,$stateParams,Todo){
17+
$scope.Todo=Todo.get({id:$stateParams});
18+
19+
}).controller('TodoCreateController',function($scope,$state,$stateParams,Todo){
20+
$scope.Todo=new Todo();
21+
22+
$scope.addTodo =function(){
23+
$scope.Todo.$save(function(){
24+
$state.go('Todo');
25+
});
26+
};
27+
}).controller('TodoEditController',function($scope,$state,$stateParams,Todo){
28+
$scope.updateTodo=function(){
29+
$scope.Todo.$update(function(){
30+
state.go('Todo');
31+
});
32+
};
33+
$scope.loadTodo=function(){
34+
$scope.Todo(Todo.get({id:$stateParams.id}))
35+
};
36+
$scope.loadTodo();
37+
})

my-todolist/js/services.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
/**
2+
* Created by lcom64 on 27/1/17.
3+
*/
4+
angular.module('Todo.services',[]).factory('Todo',function($resource){
5+
return $resource('http://localhost:8010/api/todo/:id',{ id:'@_id'},{
6+
update: {
7+
method: 'PUT'
8+
}
9+
10+
})
11+
});

0 commit comments

Comments
 (0)