%PDF- %PDF-
| Direktori : /home/opti/workflow/src/routes/ |
| Current File : /home/opti/workflow/src/routes/index.js |
var express = require('express');
var router = express.Router();
var secured = require('../middleware/login');
var con = require('../../config');
var path = require('path');
var fs = require('fs');
var bcrypt = require('bcrypt');
var formidable = require('formidable');
var guard = require('connect-ensure-login');
/* GET home page. */
// router.get('/', (req, res) => {
// res.redirect('/login');
// });
// import models
var db = require('../models');
function saveFile(file){
const name = `${Math.floor(Date.now() / 1000)}_${Math.round(Math.random() * 10000)}.${file.name.split('.').pop()}`;
const dest = path.join(__dirname, '..', 'public', 'assets', 'images', 'employees', name);
const data = fs.readFileSync(file.path);
fs.writeFileSync(dest, data);
fs.unlinkSync(file.path);
console.log("Path: ", dest)
console.log("Data: ", data)
// uploadInfo.fileSize = fileUpload.size;
// uploadInfo.fileType = fileUpload.type;
return name;
}
router.get('/',function(req, res, next){
var user = req.user;
if (user == null || user == undefined){
res.redirect('/login');
}else{
res.redirect('/dashboard');
}
});
router.get('/dashboard', guard.ensureLoggedIn(), async (req, res, next) => {
db.User.findOne({ where: {id: req.user.id}})
.then(user => {
if(user.roleId === 'isAdmin'){
res.redirect('/admin/dashboard');
} else if(user.roleId === 'isSuperAdmin'){
res.redirect('/sadmin/dashboard');
}
else {
res.redirect('/employee/dashboard');
}
});
// console.log(user);
// console.log('welcome to index dashboard');
// return false;
});
router.get('/login', function(req, res, next) {
res.render('login', {message: req.flash('loginMessage')});
});
router.get('/register', function(req, res, next) {
res.render('register', {message: req.flash('signupMessage')});
});
router.get('/process/add', secured, function(req, res, next) {
var user = req.user;
user.password = null;
console.log(user)
res.render('addprocess', {title: 'Create New Process', user: user, script: "processAdd"});
});
router.get('/process/initiated', function(req, res, next) {
var user = req.user;
user.password = "null";
console.log(user)
let sql = `select * from saved_processes`;
function getReq(dataIn, cb) {
var data = [];
var pending = dataIn.length;
for(var i in dataIn) {
let sql = `select * from ${dataIn[i].table_name}`;
con.query(sql, function (err, result) {
for(var i in result) {
data.push(result[i]);
}
if(0 === --pending) {
cb(data);
}
})
}
}
con.query(sql, function(err, result) {
if(err){
console.log(err);
return false;
}
getReq(result, function(data) {
res.render('initiatedProcesses', {title: 'Initiated Processes', user: user, script: "processInitiated", result: data});
})
// console.log(data)
// res.json(data);
//res.render('initiatedProcesses', {title: 'Initiated Processes', script: "processInitiated", result: result});
});
});
// router.get('/division', secured, function(req, res, next) {
// var user = req.user;
// user.password = null;
// console.log(user)
// res.render('division/divisions', {title: 'All Divisions', user: user, script: "divisionList", message: req.flash('info')});
// });
// router.get('/branch', secured, function(req, res, next) {
// var user = req.user;
// user.password = null;
// console.log(user)
// res.render('branch', {title: 'Branches', user: user, script: "branches"});
// });
router.get('/process/view', secured, function(req, res) {
var user = req.user;
user.password = null;
console.log(user)
res.render('viewprocess', {title: "view process", user: user, script: "processView"});
});
router.get('/logout', (req, res, next) => {
req.logout();
req.session.save((err) => {
if (err) {
return next(err);
}
res.redirect('/login');
});
});
router.post('/initializeDashboard', async(req, res, next) =>{
const user = req.user;
const arr = [];
const [ structures, notifications ] = await Promise.all([
db.CompanyStructure.findAll({ where: {orgId: user.orgId}, include:[{model:db.Workflow, as:'workflows'},{model:db.Flow, as:'flows'}]} ),
// db.CompanyStructure.findAll({ where: {orgId: user.orgId}, include:} ),
db.Notification.findAll({ where: {receiverId: user.id, seen:0}, order: [['createdAt','DESC']]} ),
]);
arr.push(structures);
// arr.push(flowStructures);
arr.push(notifications);
res.json(arr);
// res.render('login', {message: req.flash('loginMessage')});
});
module.exports = router;