mirror of
https://github.com/Akkadius/glass-isc-dhcp.git
synced 2025-07-31 01:24:56 +02:00
Config snapshots Save on edit - snapshots viewing
This commit is contained in:
parent
3d1e66426c
commit
ccf8f9d1ba
2
app.js
2
app.js
@ -27,6 +27,8 @@ app.use('/get_stats', require('./routes/get_stats'));
|
|||||||
app.use('/dhcp_leases', require('./routes/dhcp_leases'));
|
app.use('/dhcp_leases', require('./routes/dhcp_leases'));
|
||||||
app.use('/dhcp_log', require('./routes/dhcp_log'));
|
app.use('/dhcp_log', require('./routes/dhcp_log'));
|
||||||
app.use('/dhcp_config', require('./routes/dhcp_config'));
|
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('/dhcp_config_save', require('./routes/dhcp_config_save'));
|
||||||
app.use('/api_examples', require('./routes/api_examples'));
|
app.use('/api_examples', require('./routes/api_examples'));
|
||||||
app.use('/glass_settings', require('./routes/glass_settings'));
|
app.use('/glass_settings', require('./routes/glass_settings'));
|
||||||
|
13
public/assets/js/glass-pages/dhcp-config-snapshots.js
Normal file
13
public/assets/js/glass-pages/dhcp-config-snapshots.js
Normal 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');
|
||||||
|
});
|
||||||
|
}
|
@ -10,6 +10,11 @@ function log_action (action){
|
|||||||
editor.setValue("");
|
editor.setValue("");
|
||||||
break;
|
break;
|
||||||
case "download_logs":
|
case "download_logs":
|
||||||
|
if(editor.getValue() == ''){
|
||||||
|
notification('There is nothing to save!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
var am_pm = format_am_pm(d);
|
var am_pm = format_am_pm(d);
|
||||||
var df = d.getMonth() + '-' + d.getDate() + '-' + d.getFullYear() + '_' + (d.getHours()) + '-' + d.getMinutes() + ' ' + am_pm;
|
var df = d.getMonth() + '-' + d.getDate() + '-' + d.getFullYear() + '_' + (d.getHours()) + '-' + d.getMinutes() + ' ' + am_pm;
|
@ -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/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/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>
|
||||||
|
|
||||||
|
20
public/templates/dhcp_config_snapshots.html
Normal file
20
public/templates/dhcp_config_snapshots.html
Normal 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>
|
||||||
|
|
@ -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/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/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>
|
||||||
|
@ -98,6 +98,18 @@
|
|||||||
<span>DHCP Config</span>
|
<span>DHCP Config</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</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 class="header">Settings</li>
|
||||||
<li>
|
<li>
|
||||||
@ -107,8 +119,6 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="header">Glass API</li>
|
<li class="header">Glass API</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/api_examples" pjax="1">
|
<a href="/api_examples" pjax="1">
|
||||||
|
11
routes/dhcp_config_snapshot_view.js
Normal file
11
routes/dhcp_config_snapshot_view.js
Normal 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;
|
32
routes/dhcp_config_snapshots.js
Normal file
32
routes/dhcp_config_snapshots.js
Normal 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;
|
Loading…
x
Reference in New Issue
Block a user