%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;