var express = require('express'); var app = express(); var crontab = require("./crontab"); var restore = require("./restore"); // include the routes var routes = require("./routes").routes; // set the view engine to ejs app.set('view engine', 'ejs'); var bodyParser = require('body-parser') app.use( bodyParser.json() ); // to support JSON-encoded bodies app.use(bodyParser.urlencoded({ // to support URL-encoded bodies extended: true })); // include all folders app.use(express.static(__dirname + '/public')); app.use(express.static(__dirname + '/public/css')); app.use(express.static(__dirname + '/public/js')); //set port app.set('port', (process.env.PORT || 8000)); app.get(routes.root, function(req, res) { // get all the crontabs crontab.crontabs( function(docs){ res.render('index', { routes : JSON.stringify(routes), crontabs : JSON.stringify(docs), backups : crontab.get_backup_names() }); }); }) app.post(routes.save, function(req, res) { // new job if(req.body._id == -1){ crontab.create_new(req.body.name, req.body.command, req.body.schedule); } // edit job else{ crontab.update(req.body); } res.end(); }) app.post(routes.stop, function(req, res) { crontab.status(req.body._id, true); res.end(); }) app.post(routes.start, function(req, res) { crontab.status(req.body._id, false); res.end(); }) app.post(routes.remove, function(req, res) { crontab.remove(req.body._id); res.end(); }) app.get(routes.crontab, function(req, res) { crontab.set_crontab(); res.end(); }) app.get(routes.backup, function(req, res) { crontab.backup(); res.end(); }) app.get(routes.restore, function(req, res) { // get all the crontabs restore.crontabs(req.query.db, function(docs){ res.render('restore', { routes : JSON.stringify(routes), crontabs : JSON.stringify(docs), backups : crontab.get_backup_names(), db: req.query.db }); }); }) app.get(routes.delete_backup, function(req, res) { restore.delete(req.query.db); res.end(); }) app.get(routes.restore_backup, function(req, res) { crontab.restore(req.query.db); res.end(); }) app.listen(app.get('port'), function() { console.log("Crontab UI is running at localhost:" + app.get('port')) })