%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/opti/workflow/src/routes/
Upload File :
Create Path :
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;

Zerion Mini Shell 1.0