klnodekb/routes/gantt.js

108 lines
2.9 KiB
JavaScript

const express = require('express');
const router = express.Router();
let Work=require('../models/works');
var utils = require('../js/utils');
// Add Devices ToRoute
router.get('/', utils.ensureAuthenticated,function (req,res) {
console.log('GANTT');
var gantt={};
var data=[];
Work.find({'state':'Opened'},function(err, works){
if (err)
{
console.log(err);
}
else
{
works.forEach(element => {
data.push(element.ganttData);
});
gantt={data:data};
res.render('gantt', {
title: 'GANTT CHART',
data: gantt
});
}
})
/* res.render('gantt', {
title: 'GANTT CHART',
data:gantt_tasks.data, collections: { links : gantt_tasks.links }
});*/
});
var gantt_tasks={
data:[
{"id":"1", "text":"Project #2", "start_date":"01-04-2017", "duration":18,
"progress":0.4, "open": true, "holder":"Mike", "priority":"High", "fasz":"fasz"},
{"id":"2", "text":"Task #1", "start_date":"02-04-2018", "duration":8,
"progress":0.6, "parent":1, "holder":"John", "priority":"Medium"},
{"id":"3", "text":"Task #2", "start_date":"11-04-2019", "duration":8,
"progress":0.6, "parent":1, "holder":"Alex", "priority":"Low"}
]/*,
links:[
{"id":"1", "source":"1", "target":"2", "type":"1"},
{"id":"2", "source":"2", "target":"3", "type":"0"},
{"id":"3", "source":"3", "target":"4", "type":"0"},
{"id":"4", "source":"2", "target":"5", "type":"2"}
]*/
}
function getTask(data) {
return {
text: data.text,
start_date: data.start_date.date("YYYY-MM-DD"),
duration: data.duration,
progress: data.progress || 0,
parent: data.parent
};
}
router.put("/api/task/:id",function(req,res){
var sid=req.params.id;
Work.findByIdAndUpdate(sid,{$set:{'ganttData':req.body}},function(err){
if (err)
{
console.log("DB ERROR");
}
else
{
res.status(200).end();
}
})
})
router.all(/api/,function(req,res,next){
console.log(`\n$(req.method} ${req.url} --> ${JSON.stringify(req.body,'\t',2)}`);
console.log (req.method);
res.status(200).end();
})
router.get("/data", function(req, res){
console.log('GANTT');
var gantt={};
var data=[];
Work.find({'state':'Opened'},function(err, works){
if (err)
{
console.log(err);
}
else
{
works.forEach(element => {
element.ganttData.id=element._id;
data.push(element.ganttData);
});
gantt={data:data};
res.send(gantt);
}
})
// res.send(gantt_tasks);
});
module.exports = router;