Changed Download logs to download the logs currently being shown, not always the current logs - note, doesn't filter first.

Removed "delete" case in logs.php
Moved logging check out of case statements to avoid duplication.
Changed wording of clear logs warning.
Pretty-print the JSON on log export - requires PHP 5.4.
This commit is contained in:
Richard Underwood 2016-08-25 10:23:31 +01:00
parent ff8df5e5b2
commit befb891174
2 changed files with 69 additions and 68 deletions

View file

@ -114,7 +114,7 @@ if ($blocklogin === TRUE) {
<div id="dnssecinfo"> <div id="dnssecinfo">
</div> </div>
<div id="clearlogs" style="display: none;"> <div id="clearlogs" style="display: none;">
Are you sure you want to clear all the logs? Maybe download them Are you sure you want to clear the current logs? Maybe download them
first<?php if($allowrotatelogs) { ?>, or use "Rotate logs" to save first<?php if($allowrotatelogs) { ?>, or use "Rotate logs" to save
them on the server<?php } ?>? them on the server<?php } ?>?
</div> </div>
@ -1121,13 +1121,13 @@ $(document).ready(function () {
icon: 'img/export.png', icon: 'img/export.png',
text: 'Download logs', text: 'Download logs',
click: function () { click: function () {
var $zexport = $.get("logs.php?action=export", function(data) { var $zexport = $.get("logs.php?action=export&logfile=" + $('#logfile').val(), function(data) {
console.log(data); console.log(data);
blob = new Blob([data], { type: 'text/plain' }); blob = new Blob([data], { type: 'text/plain' });
var dl = document.createElement('a'); var dl = document.createElement('a');
dl.addEventListener('click', function(ev) { dl.addEventListener('click', function(ev) {
dl.href = URL.createObjectURL(blob); dl.href = URL.createObjectURL(blob);
dl.download = 'nseditlogs.txt'; dl.download = $('#logfile').val() == "" ? 'nseditlogs.txt':$('#logfile').val() + ".txt";
}, false); }, false);
if (document.createEvent) { if (document.createEvent) {

View file

@ -20,15 +20,12 @@ if (!isset($_GET['action'])) {
jtable_respond(null, 'error', 'No action given'); jtable_respond(null, 'error', 'No action given');
} }
if ($logging !== TRUE) {
jtable_respond(null, 'error', 'Logging is disabled');
} else {
switch ($_GET['action']) { switch ($_GET['action']) {
case "list": case "list":
global $logging;
if ($logging !== TRUE) {
jtable_respond(null, 'error', 'Logging is disabled');
break;
}
if(!empty($_POST['logfile'])) { if(!empty($_POST['logfile'])) {
if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_POST['logfile']) == 1) { if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_POST['logfile']) == 1) {
$entries=json_decode(file_get_contents($logsdirectory . "/" . $_POST['logfile']),true); $entries=json_decode(file_get_contents($logsdirectory . "/" . $_POST['logfile']),true);
@ -59,16 +56,19 @@ case "list":
jtable_respond($entries); jtable_respond($entries);
break; break;
case "delete":
if ($emailaddress != '' and delete_user($emailaddress) !== FALSE) {
jtable_respond(null, 'delete');
} else {
jtable_respond(null, 'error', 'Could not delete user');
}
break;
case "export": case "export":
print json_encode(getlogs()); if(!empty($_GET['logfile'])) {
if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_GET['logfile']) == 1) {
$entries=json_decode(file_get_contents($logsdirectory . "/" . $_GET['logfile']),true);
} else {
jtable_respond(null, 'error', "Can't find log file");
break;
}
} else {
$entries=getlogs();
}
print json_encode($entries,JSON_PRETTY_PRINT);
break; break;
case "clear": case "clear":
@ -89,3 +89,4 @@ default:
jtable_respond(null, 'error', 'Invalid action'); jtable_respond(null, 'error', 'Invalid action');
break; break;
} }
}