reading crontab from db done

pull/1/head
Suresh Alse 10 years ago
parent 9dd4c607d0
commit 4700ddb4a5

1
.gitignore vendored

@ -1,2 +1,3 @@
*.swp *.swp
node_modules node_modules
crontabs/*.db

@ -1,5 +1,9 @@
var express = require('express'); var express = require('express');
var app = express(); var app = express();
var crontab = require("./crontab");
// include the routes
var routes = require("./routes").routes;
// set the view engine to ejs // set the view engine to ejs
app.set('view engine', 'ejs'); app.set('view engine', 'ejs');
@ -8,11 +12,23 @@ app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public')); app.use(express.static(__dirname + '/public'));
app.use(express.static(__dirname + '/public/css')); app.use(express.static(__dirname + '/public/css'));
app.use(express.static(__dirname + '/public/js')); app.use(express.static(__dirname + '/public/js'));
//set port
app.set('port', (process.env.PORT || 8000)); app.set('port', (process.env.PORT || 8000));
app.get('/', function(req, res) { app.get(routes.root, function(req, res) {
res.render('index'); // get all the crontabs
//res.sendFile('index.htm'); crontab.crontabs( function(docs){
console.log(docs);
res.render('index', {
routes : routes,
crontabs : docs
});
});
})
app.get(routes.save, function(req, res) {
res.render('index');
}) })
app.listen(app.get('port'), function() { app.listen(app.get('port'), function() {

@ -0,0 +1,29 @@
//load database
var Datastore = require('nedb');
var db = new Datastore({ filename: __dirname + '/crontabs/crontab.db' });
db.loadDatabase(function (err) {
});
crontab = function(command, schedule, stopped){
var data = {};
data.command = command;
data.schedule = schedule;
data.stopped = stopped;
data.timestamp = (new Date()).toString();
return data;
}
exports.create_new = function(command, schedule){
var tab = crontab(command, schedule, false);
db.insert(tab);
}
exports.crontabs = function(callback){
var finished = false;
db.find({}, function(err, docs){
finished = true;
callback(docs);
});
}

@ -0,0 +1 @@
This folder will have all the crontab database files

@ -8,7 +8,8 @@
}, },
"dependencies": { "dependencies": {
"express": "latest", "express": "latest",
"ejs": "latest" "ejs": "latest",
"nedb": "latest"
}, },
"engines": { "engines": {
"node": "latest" "node": "latest"

@ -0,0 +1,5 @@
exports.routes = {
"root" : "/",
"downloads" : "/downloads",
"save" : "/save"
}

@ -6,38 +6,7 @@
<link rel="stylesheet" href="bootstrap.min.css" /> <link rel="stylesheet" href="bootstrap.min.css" />
</head> </head>
<body> <body>
<nav class="navbar navbar-default"> <% include navbar %>
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Crontab UI</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">Import</a></li>
<li class="active"><a href="#">Downloads<span class="sr-only">(current)</span></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Backups <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<!-- TODO -->
<li><a href="#">None</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="https://github.com/alseambusher/crontab-ui">Fork me on Github</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
<div class="container"> <div class="container">
<h2>Jobs</h2> <h2>Jobs</h2>
<table class="table"> <table class="table">
@ -47,26 +16,33 @@
<th>Last Modified</th> <th>Last Modified</th>
<th></th> <th></th>
</tr> </tr>
<tr> <% crontabs.forEach(function(crontab){ %>
<td>Sample</td> <% if (!crontab.stopped) { %>
<td> testing </td> <tr>
<td>ascasdcas</td> <td><%= crontab.command %></td>
<td> <td><%= crontab.schedule %></td>
<a class="btn btn-primary"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span> Edit</a> <td><%= crontab.timestamp %></td>
<a class="btn btn-info"><span class="glyphicon glyphicon-stop" aria-hidden="true"></span> Stop</a> <td>
<a class="btn btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a> <a class="btn btn-primary"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span> Edit</a>
</td> <a class="btn btn-info"><span class="glyphicon glyphicon-stop" aria-hidden="true"></span> Stop</a>
</tr> <a class="btn btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
</td>
</tr>
<% } else { %>
<tr style="background:#3A6DA6;color:#fff">
<td><%= crontab.command %></td>
<td><%= crontab.schedule %></td>
<td><%= crontab.timestamp %></td>
<td>
<a class="btn btn-info"><span class="glyphicon glyphicon-play" aria-hidden="true"></span> Start</a>
<a class="btn btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
</td>
</tr>
<% } %>
<% }); %>
<tr style="background:#3A6DA6;color:#fff">
<td>/var/spool/cron/crontab -s -l -d</td>
<td> testing </td>
<td>ascasdcas</td>
<td>
<a class="btn btn-info"><span class="glyphicon glyphicon-play" aria-hidden="true"></span> Start</a>
<a class="btn btn-danger"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
</td>
</tr>
</table> </table>
<a class="btn btn-primary"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span> New</a> <a class="btn btn-primary"><span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span> New</a>
<a class="btn btn-info"><span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> Backup</a> <a class="btn btn-info"><span class="glyphicon glyphicon-floppy-save" aria-hidden="true"></span> Backup</a>

@ -0,0 +1,32 @@
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<%= routes.root %>">Crontab UI</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">Import</a></li>
<li><a href="<%= routes.downloads %>">Downloads<span class="sr-only">(current)</span></a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Backups <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<!-- TODO -->
<li><a href="#">None</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="https://github.com/alseambusher/crontab-ui">Fork me on Github</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
Loading…
Cancel
Save