Config snapshots Save on edit - snapshots viewing

This commit is contained in:
Akkadius 2017-09-02 07:07:30 -05:00
parent 3d1e66426c
commit ccf8f9d1ba
10 changed files with 97 additions and 4 deletions

2
app.js
View File

@ -27,6 +27,8 @@ app.use('/get_stats', require('./routes/get_stats'));
app.use('/dhcp_leases', require('./routes/dhcp_leases'));
app.use('/dhcp_log', require('./routes/dhcp_log'));
app.use('/dhcp_config', require('./routes/dhcp_config'));
app.use('/dhcp_config_snapshots', require('./routes/dhcp_config_snapshots'));
app.use('/dhcp_config_snapshot_view', require('./routes/dhcp_config_snapshot_view'));
app.use('/dhcp_config_save', require('./routes/dhcp_config_save'));
app.use('/api_examples', require('./routes/api_examples'));
app.use('/glass_settings', require('./routes/glass_settings'));

View File

@ -0,0 +1,13 @@
function view_snapshot(snapshot) {
$.post( "/dhcp_config_snapshot_view", "snapshot=" + encodeURIComponent(snapshot), function( data ) {
$('#modal-title').html("Snapshot '" + snapshot + "'");
$('#modal-body').html('<div id="snapshot" style="width:100%; height:800px; color: #95cd24">' + data + '</div>');
config_snapshot = ace.edit("snapshot");
config_snapshot.setTheme("ace/theme/terminal");
config_snapshot.$blockScrolling = Infinity;
$('#mdModal').modal('show');
});
}

View File

@ -10,6 +10,11 @@ function log_action (action){
editor.setValue("");
break;
case "download_logs":
if(editor.getValue() == ''){
notification('There is nothing to save!');
return;
}
var d = new Date();
var am_pm = format_am_pm(d);
var df = d.getMonth() + '-' + d.getDate() + '-' + d.getFullYear() + '_' + (d.getHours()) + '-' + d.getMinutes() + ' ' + am_pm;

View File

@ -32,5 +32,5 @@
<script src="assets/js/ace_editor/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/ace_editor/theme-terminal.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/glass-pages/page-dhcp-config.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/glass-pages/dhcp-config.js" type="text/javascript" charset="utf-8"></script>

View File

@ -0,0 +1,20 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="card">
<div class="header">
<h2>
[title]
</h2>
</div>
<div class="body">
[c_content]
<div id="dhcp_config_snapshot_result"></div>
</div>
</div>
</div>
</div>
<script src="assets/js/ace_editor/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/ace_editor/theme-terminal.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/glass-pages/dhcp-config-snapshots.js" type="text/javascript" charset="utf-8"></script>

View File

@ -34,4 +34,4 @@
<script src="assets/js/ace_editor/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/ace_editor/theme-terminal.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/glass-pages/page-dhcp-logs.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/glass-pages/dhcp-logs.js" type="text/javascript" charset="utf-8"></script>

View File

@ -98,6 +98,18 @@
<span>DHCP Config</span>
</a>
</li>
<li>
<a href="/dhcp_config_snapshots" pjax="1">
<i class="material-icons">cloud_download</i>
<span>DHCP Config Snapshots</span>
</a>
</li>
<li>
<a href="/start_stop_restart" pjax="1">
<i class="material-icons">refresh</i>
<span>Start / Stop / Restart</span>
</a>
</li>
<li class="header">Settings</li>
<li>
@ -107,8 +119,6 @@
</a>
</li>
<li class="header">Glass API</li>
<li>
<a href="/api_examples" pjax="1">

View File

@ -0,0 +1,11 @@
var express = require('express');
var router = express.Router();
var fs = require('fs');
var template_render = require('../lib/render_template.js');
router.post('/', function(req, res, next) {
var request = req.body;
res.send(fs.readFileSync("./config_backups/" + request.snapshot, 'utf8'));
});
module.exports = router;

View File

@ -0,0 +1,32 @@
var express = require('express');
var router = express.Router();
var fs = require('fs');
var template_render = require('../lib/render_template.js');
router.get('/', function(req, res, next) {
var content = "";
content = template_render.get_template("dhcp_config_snapshots");
/* Read Config */
var json_file = require('jsonfile');
var glass_config = json_file.readFileSync('config/glass_config.json');
content = template_render.set_template_variable(content, "title", "DHCP Config Snaphots");
var backups = '';
fs.readdirSync("./config_backups").forEach(function(file) {
backups = backups + "<li><a onclick='view_snapshot(" + JSON.stringify(file) + ")'>" + file + '</a></li>';
});
if(backups == ''){
backups = 'There are no snapshots present at this time...';
}
content = template_render.set_template_variable(content, "c_content", backups);
res.send(template_render.get_index_template(content, req.url));
});
module.exports = router;