Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion my-todolist/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules/
.idea/
*/.idea/
uploads/
287 changes: 163 additions & 124 deletions my-todolist/.idea/workspace.xml

Large diffs are not rendered by default.

188 changes: 120 additions & 68 deletions my-todolist/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ var mongoose=require('mongoose');
var validator=require('validator');
var fs= require('fs');
mongoose.connect('mongodb://localhost:27017/test');
var user=require('./model/user');
//nick.save(function(err){console.log('user saved successfully')})
var morgan=require('morgan');
var jwt=require('jsonwebtoken');
var config=require('./config');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
//var fs = require('fs');
var app = express();
Expand All @@ -16,8 +21,9 @@ var router=express.Router();
var ObjectId = require('mongodb').ObjectID;
// var buf = new Buffer(1024);
var id,id1=0;
var arr=[],arr1=[],arr2=[],array1=[],array=[];
var arr=[],arr1=[],arr2=[],array1=[],array=[],arr3=[],arr4=[];
var gfs;
var token;
//var myo=new Object();
/* If there is no to do list in the session,
we create an empty one in the form of an array before continuing */
Expand All @@ -38,105 +44,145 @@ app.use(function(req, res, next){
if (typeof(arr1) == 'undefined'){
arr1=[];
}

next();
});
function addme(n,m,res)
{
Task.find({},"-_id Todo",function(err,task){
arr=task;
for (var i in arr)
{
//var addme=require("./Routes/addme")(n,m,res);
Task.find({}, "-_id Todo", function (err, task) {
arr = task;
for (var i in arr) {
//console.log(arr[i]);
var myo=new Object();
myo=arr[i];
arr1[i]=myo.Todo;
var myo = new Object();
myo = arr[i];
arr1[i] = myo.Todo;
//console.log(myo.Todo);
}
//console.log(arr[1]);
}).skip(n).limit(m);
Task.find({},"-_id Memberassigned",function(err,task){
arr=task;
for (var i in arr)
{
Task.find({}, "-_id Memberassigned", function (err, task) {
arr = task;
for (var i in arr) {
//console.log(arr[i]);
var myo=new Object();
myo=arr[i];
array1[i]=myo.Memberassigned;
var myo = new Object();
myo = arr[i];
array1[i] = myo.Memberassigned;
//console.log(myo.Todo);
}
// res.json(task);
//array1=task
}).skip(n).limit(m);
Task.find({},"_id",function(err,task){
arr=task;
for (var i in arr)
{
Task.find({}, "_id", function (err, task) {
arr = task;
for (var i in arr) {
//console.log(arr[i]);
var myo=new Object();
myo=arr[i];
array[i]=myo._id;
var myo = new Object();
myo = arr[i];
array[i] = myo._id;
//console.log(myo.Todo);
}
// res.json(task);
//array1=task
});

Task.find({},"-_id Priority",function(err,task){
Task.find({}, "-_id Priority", function (err, task) {

arr=task;
for (var i in arr)
{
arr = task;
for (var i in arr) {
//console.log(arr[i]);
var myo=new Object();
myo=arr[i];
arr2[i]=myo.Priority;
var myo = new Object();
myo = arr[i];
arr2[i] = myo.Priority;
//console.log(myo.Todo);
}
}).sort({KEY:1}).skip(n).limit(m);
}).sort({KEY: 1}).skip(n).limit(m);
//var Task=require('');

Step.find({},"-_id Steps",function(err,step){
arr=step.Steps;
//console.log(arr);
});
res.render('todo.ejs',{todolist:arr1, priority: array1, member:arr2,index:array});
}
/*router.get('/file/:id',function(req,res){
var pic_id = req.param('id');
var gfs = req.gfs;
/*
/* The to do list and the form are displayed */
router.get('/todo', function(req, res) {
// var token = req.body.token || req.query.token || req.headers['x-access-token'];
if(token)
{
jwt.verify(token, app.get('superSecret'), function (err, decoded) {
if (err) {
return res.json({success: false, message: 'failed to authenticate token'})
} else {
req.decoded = decoded;
next();
}
});
}else
{}
addme(0,10,res);
});
router.get('/todo/login',function(req,res) {
res.render('login.ejs');
});
router.post('/todo/login/',
function(req,res){
user.findOne({'name':req.body.member,'admin':true},function(err,user){
if(!user)
{
user.findOne({'name':req.body.member,'admin':false},function(err,user){
if(!user) {

gfs.files.find({filename: pic_id}).toArray(function (err, files) {
res.json({success:false,message:'Authentication failed.user not found'})
}else if(user){
if(user.password!=req.body.password)
{
res.json({success:false,message:'Authentication failed.Wrong password'})
}}
else
{
req.session.name = user;
res.redirect('/todo/member');
}
});

if (err) {
res.json(err);
}else if(user){
if(user.password!=req.body.password)
{
res.json({success:false,message:'Authentication failed.Wrong password'})
}else{
var token1=jwt.sign(user,app.get('supersecret'),{
expiresInMinutes:1440
});
token=token1;
res.redirect('/todo')
}
}
if (files.length > 0) {
var mime = 'image/jpeg';
res.set('Content-Type', mime);
var read_stream = gfs.createReadStream({filename: pic_id});
read_stream.pipe(res);
} else {
res.json('File Not Found');

});
});
router.get('/todo/member',function(req,res){
Task.find({'Memberassigned':req.session.name},"-_id Priority",function(err,task){
arr = task;
for (var i in arr) {
//console.log(arr[i]);
var myo = new Object();
myo = arr[i];
arr3[i] = myo.Priority;
//console.log(myo.Todo);
}
});
});*/
// router.all('/upload',function(req,res){
// var dirname=require('path').dirname(__dirname);
// var filename=req.files.file.name;
// var type=req.files.file.mimetype;
// var read_stream=fs.creeateReadStream(dirname+'/'+path);
// var conn=req.conn;
// var Grid=require('gridfs-stream');
// Grid.mongo=mongoose.mongo;
// gfs=Grid(conn.db);
// var writestream=gfs.createWriteStream({
// filename:filename
// });
// read_stream.pipe(writestream);
// });
/* The to do list and the form are displayed */
router.get('/todo', function(req, res) {
addme(0,10,res);
Task.find({'Memberassigned':req.session.name},"-_id Todo",function(err,task){
arr = task;
for (var i in arr) {
//console.log(arr[i]);
var myo = new Object();
myo = arr[i];
arr4[i] = myo.Todo;
//console.log(myo.Todo);
}
});
res.render("member.ejs",{prior:arr3,todo:arr4});
});
router.get('/todo/2', function(req, res) {
addme(10,10,res);
Expand Down Expand Up @@ -184,10 +230,14 @@ router.post('/todo/add/', urlencodedParser, function(req, res) {
console.log(step);
});
upload(req,res,function(err){
if(err){return res.end("error uploading file")}
res.end("file is uploaded");
if(err) {
return res.end(err);
//res.end("error uploading file")}
// res.end("file is uploaded");

})
}
}
);
task.save(function (err) {

if (err) {
Expand Down Expand Up @@ -249,16 +299,18 @@ router.get('/todo/delete/:id', function(req, res) {
});
/* Redirects to the to do list if the page requested is not found */
app.use('/api',router);
app.use(function(req, res, next){
app.use(function(req, res, next) {

if(id1==0)
{
res.redirect('/api/todo');
res.redirect('/api/todo/login');

}
else
{
res.redirect('/api/todo1');
}
});

app.set('superSecret',config.secret);
app.use(morgan('dev'));
app.listen(8010);
4 changes: 4 additions & 0 deletions my-todolist/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports={
'secret':'minal',
'database':'mongodb://localhost:27017/test'
}
33 changes: 33 additions & 0 deletions my-todolist/input.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,36 @@
fffffffffffffffff,1,wwwwwwwwwwwwwww
ffffffffft,tttttttttttttttttt,yyyyyyyyyyyyyyyyy
gggggggggggg,,fffffffffffffffffffff
/*router.get('/file/:id',function(req,res){
var pic_id = req.param('id');
var gfs = req.gfs;

gfs.files.find({filename: pic_id}).toArray(function (err, files) {

if (err) {
res.json(err);
}
if (files.length > 0) {
var mime = 'image/jpeg';
res.set('Content-Type', mime);
var read_stream = gfs.createReadStream({filename: pic_id});
read_stream.pipe(res);
} else {
res.json('File Not Found');
}
});
});*/
// router.all('/upload',function(req,res){
// var dirname=require('path').dirname(__dirname);
// var filename=req.files.file.name;
// var type=req.files.file.mimetype;
// var read_stream=fs.creeateReadStream(dirname+'/'+path);
// var conn=req.conn;
// var Grid=require('gridfs-stream');
// Grid.mongo=mongoose.mongo;
// gfs=Grid(conn.db);
// var writestream=gfs.createWriteStream({
// filename:filename
// });
// read_stream.pipe(writestream);
// });
14 changes: 14 additions & 0 deletions my-todolist/member.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

<html>
<head>

</head>
<body>
<ul>
<% prior.forEach(function(t, index1) { %>
<% todo.forEach(function(p,index2){%>
<%=p%> <%=t%>
<%})});%>
</ul>
</body>
</html>
7 changes: 7 additions & 0 deletions my-todolist/model/user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
module.exports=mongoose.model('user',new Schema({
name:String,
password:String,
admin:Boolean
}));
4 changes: 3 additions & 1 deletion my-todolist/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
"multer": "^1.2.1",
"validator": "6.2.1",
"path":"0.12.7",
"fs":"0.0.1"
"fs":"0.0.1",
"jsonwebtoken":"7.2.1",
"morgan":"1.7.0"
},
"author": "Mateo21 <mateo21@email.com>",
"description": "A very basic to do list manager"
Expand Down
22 changes: 22 additions & 0 deletions my-todolist/run.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* tried event handling*/

var events = require('events');

function Door(colour) {
this.colour = colour;
events.EventEmitter.call(this);

this.open = function()
{
this.emit('open');
}
}

Door.prototype.__proto__ = events.EventEmitter.prototype;

var frontDoor = new Door('brown');

frontDoor.on('open', function() {
console.log('ring ring ring');
});
frontDoor.open();
Binary file not shown.
10 changes: 10 additions & 0 deletions my-todolist/views/login.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<form action="/api/todo/login/" method="post">
<p>
<label for="Member">Login name</label>
<input type="text" name="member" id="member" autofocus /><br>
<label for="password">Password</label>
<input type="text" name="password" id="password" /><br>
<input type="submit" />
</p>

</form>
Loading