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
245 changes: 156 additions & 89 deletions my-todolist/.idea/workspace.xml

Large diffs are not rendered by default.

184 changes: 145 additions & 39 deletions my-todolist/app.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
var express = require('express');
var multer=require('multer');
var session = require('cookie-session'); // Loads the piece of middleware for sessions
var bodyParser = require('body-parser');// Loads the piece of middleware for managing the settings
var mongoose=require('mongoose');
var validator=require('validator');
var fs= require('fs');
mongoose.connect('mongodb://localhost:27017/test');
var urlencodedParser = bodyParser.urlencoded({ extended: false });
//var fs = require('fs');
var app = express();
var Task=require('./model/task');
var Step=require('./model/step');
//console.log(Step);
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 myo=new Object();
var gfs;
//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 */
app.use('/uploads',express.static(__dirname+"/upload"));
var upload=multer({dest:"./uploads/"}).array('name',1);

app.use(function(req, res, next){
arr=[];
arr1=[];
Expand All @@ -30,22 +40,21 @@ app.use(function(req, res, next){
}

next();
})

/* The to do list and the form are displayed */
router.get('/todo', function(req, 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;
//console.log(myo.Todo);
}
//console.log(arr[1]);
}).limit(10);
});
function 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;
//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)
Expand All @@ -56,9 +65,9 @@ Task.find({},"-_id Todo",function(err,task){
array1[i]=myo.Memberassigned;
//console.log(myo.Todo);
}
// res.json(task);
// res.json(task);
//array1=task
}).limit(10);
}).skip(n).limit(m);
Task.find({},"_id",function(err,task){
arr=task;
for (var i in arr)
Expand All @@ -72,6 +81,7 @@ Task.find({},"-_id Todo",function(err,task){
// res.json(task);
//array1=task
});

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

arr=task;
Expand All @@ -83,62 +93,158 @@ Task.find({},"-_id Todo",function(err,task){
arr2[i]=myo.Priority;
//console.log(myo.Todo);
}
}).sort({KEY:-1}).limit(10);
}).sort({KEY:1}).skip(n).limit(m);

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;

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);
// });
/* The to do list and the form are displayed */
router.get('/todo', function(req, res) {
addme(0,10,res);
});
router.get('/todo1', function(req, res) {
router.get('/todo/2', function(req, res) {
addme(10,10,res);
});
router.get('/todo/3', function(req, res) {
addme(20,10,res);
});
router.get('/todo1', function(req, res) {
res.render('todo1.ejs');
});
/* Adding an item to the to do list */
router.post('/todo/add/', urlencodedParser, function(req, res) {

//console.log(step);
if (req.body.newtodo != '') {
// for(var i in req.body.)
var task = new Task();
var step= new Step();

//console.log(req.body.hid);
for (var i in req.body.hid)
{
var a=req.body.Step;
//console.log(req.body.Step);
step.Steps=a;
//step.Todo=task.Todo;
}
task.Todo = req.body.newtodo;
console.log(req.body.newtodo);
task.File=req.body.name;
task.Memberassigned = req.body.taskassigned;
task.Priority = req.body.s1;
step.Todo=task.Todo;
step.save(function (err) {
if (!err) {
Step.find({})
.populate('Todo')
.exec(function(error, task) {
console.log(JSON.stringify(task, null, "\t"))
})
}
if (err) {
console.log(err);
}
console.log(step);
});
upload(req,res,function(err){
if(err){return res.end("error uploading file")}
res.end("file is uploaded");

})
task.save(function (err) {

if (err) {
console.log(err);
}
console.log(task);
})
}
res.redirect('/api/todo');
})
});

router.post('/todo/update/', urlencodedParser, function(req, res) {
Task.findById(id,function(err,task)
{
if(validator.isNumeric(req.body.updatedpriority)) {
Task.findById(id,function(err,task) {
console.log(id);
if(err)
{
if (err) {
res.send(err);
}
task.Todo=req.body.updatedtodo;
task.Memberassigned=req.body.updatedmember;
task.Priority=req.body.updatedpriority;
task.Todo = req.body.updatedtodo;
task.Memberassigned = req.body.updatedmember;
task.Priority = req.body.updatedpriority;

task.save(function(err)
{
if(err) {
task.save(function (err) {
if (err) {
throw err;
}
console.log(task);
//res.json({message:'Bear updated!'});
});
})
}
);
res.redirect('/api/todo');
});
}
else
{
res.send("sorry no data updated");
//alert("No data updated");
res.redirect('/api/todo1')
}});
/* Deletes an item from the to do list */
router.get('/todo/delete/:id', function(req, res) {
console.log(req.params.id);

Task.remove(req.params.id);
console.log(req.params.id);
id=req.params.id;
Task.findByIdAndRemove(req.params.id,function(err,tasks){console.log(tasks);});

//Task.remove();
//console.log(a);

res.redirect('/api/todo');
});

router.get('/todo/update/:id', function(req, res) {
id=req.params.id;
id1=1;

id = req.params.id;
id1 = 1;

res.redirect('/api/todo1');
});
/* Redirects to the to do list if the page requested is not found */
Expand All @@ -154,5 +260,5 @@ else
res.redirect('/api/todo1');
}
});
app.listen(8008);

app.listen(8010);
Empty file added my-todolist/core/db.js
Empty file.
10 changes: 10 additions & 0 deletions my-todolist/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>
10 changes: 10 additions & 0 deletions my-todolist/model/step.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
var StepSchema= new Schema({
Steps:String,
Todo:{
type:mongoose.Schema.Types.ObjectId,
ref: 'Task'
}
});
module.exports=mongoose.model('Step',StepSchema);
5 changes: 4 additions & 1 deletion my-todolist/model/task.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@ var Schema=mongoose.Schema;
var TaskSchema= new Schema({
Todo:String,
Memberassigned:String,
Priority:Number
Priority:Number,
File:String
});
//var mongoose=require('mongoose');
//var Schema=mongoose.Schema;

module.exports=mongoose.model('Task',TaskSchema);
Loading