mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Logbuffer (#298)
* - implement a global logbuffer - providerrs232 reduce log spam * logger add signal and start json push * implement logger notifier ... need some cleanup * imlement logview in webui - the layout stuff is basic atm and needs some tuning
This commit is contained in:
@@ -1,79 +1,80 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="page-header"><i class="fa fa-dashboard fa-fw"></i><span lang="en" data-lang-token="main_menu_dashboard_token">Dashboard</span></h2>
|
||||
<div class="introd">
|
||||
<h4 lang="en" data-lang-token="dashboard_label_intro">The dashboard give you a quick overview about the status of Hyperion and show you the latest news of the Hyperion Blog.</h4>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-info-circle fa-fw"></i>
|
||||
<span lang="en" data-lang-token="dashboard_infobox_label_title">Information</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class="table borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_currenthyp">Your Hyperion version:</td>
|
||||
<td id="currentversion">unknown</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_latesthyp">Latest version:</td>
|
||||
<td id="latestversion">unknown</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_leddevice">LED type:</td>
|
||||
<td id="dash_leddevice">unknown</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_device">Device:</td>
|
||||
<td id="dash_systeminfo"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr>
|
||||
<span id="versioninforesult"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-eye fa-fw"></i>
|
||||
<span lang="en" data-lang-token="dashboard_componentbox_label_title">Components status</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th lang="en" data-lang-token="dashboard_componentbox_label_comp">Component</th>
|
||||
<th lang="en" data-lang-token="dashboard_componentbox_label_status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tab_components">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-5">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-newspaper-o fa-fw"></i>
|
||||
<span lang="en" data-lang-token="dashboard_newsbox_label_title">Latest blog posts</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
<div class="container-fluid" id="content_dashboard">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="page-header"><i class="fa fa-dashboard fa-fw"></i><span lang="en" data-lang-token="main_menu_dashboard_token">Dashboard</span></h2>
|
||||
<div class="introd">
|
||||
<h4 lang="en" data-lang-token="dashboard_label_intro">The dashboard give you a quick overview about the status of Hyperion and show you the latest news of the Hyperion Blog.</h4>
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
<hr>
|
||||
<div class="col-lg-4">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-info-circle fa-fw"></i>
|
||||
<span lang="en" data-lang-token="dashboard_infobox_label_title">Information</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class="table borderless">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_currenthyp">Your Hyperion version:</td>
|
||||
<td id="currentversion">unknown</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_latesthyp">Latest version:</td>
|
||||
<td id="latestversion">unknown</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_leddevice">LED type:</td>
|
||||
<td id="dash_leddevice">unknown</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td lang="en" data-lang-token="dashboard_infobox_label_device">Device:</td>
|
||||
<td id="dash_systeminfo"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr>
|
||||
<span id="versioninforesult"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-eye fa-fw"></i>
|
||||
<span lang="en" data-lang-token="dashboard_componentbox_label_title">Components status</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th lang="en" data-lang-token="dashboard_componentbox_label_comp">Component</th>
|
||||
<th lang="en" data-lang-token="dashboard_componentbox_label_status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="tab_components">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-5">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<i class="fa fa-newspaper-o fa-fw"></i>
|
||||
<span lang="en" data-lang-token="dashboard_newsbox_label_title">Latest blog posts</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- /.col-lg-12 -->
|
||||
</div>
|
||||
<!-- /.row -->
|
||||
</div>
|
||||
<!-- /.container-fluid -->
|
||||
|
||||
|
19
assets/webconfig/content/logging.html
Normal file
19
assets/webconfig/content/logging.html
Normal file
@@ -0,0 +1,19 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="page-header"><i class="fa fa-play-circle-o fa-fw"></i><span lang="en" data-lang-token="conf_kodi_label_title">Log Messages</span></h2>
|
||||
<div class="introd">
|
||||
<h4 lang="en" data-lang-token="conf_logging_label_intro">log messages.</h4>
|
||||
</div>
|
||||
<hr />
|
||||
|
||||
<div class="col-lg-12">
|
||||
<div id="logmessages" style="white-space:pre">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/js/content_logging.js"></script>
|
@@ -220,6 +220,7 @@
|
||||
<li>
|
||||
<a class="inactive"><i class="fa fa-industry fa-fw"></i><span lang="en" data-lang-token="main_menu_system_token">System</span><span class="fa arrow"></span></a>
|
||||
<ul class="nav nav-second-level">
|
||||
<li> <a class="inactive" id="load_logging"><i class="fa fa-download fa-fw"></i><span lang="en" data-lang-token="main_menu_logging_token">Events</span></a> </li>
|
||||
<li> <a class="inactive" id="load_update"><i class="fa fa-download fa-fw"></i><span lang="en" data-lang-token="main_menu_update_token">Update</span></a> </li>
|
||||
</ul>
|
||||
</li>
|
||||
|
@@ -15,6 +15,7 @@ $(document).ready( function() {
|
||||
bindNavToContent("#load_confColors","colors",false);
|
||||
bindNavToContent("#load_confNetwork","network",false);
|
||||
bindNavToContent("#load_effectsconfig","effects_configurator",false);
|
||||
bindNavToContent("#load_logging","logging",false);
|
||||
|
||||
|
||||
//Change all Checkboxes to Switches
|
||||
@@ -32,37 +33,54 @@ $(document).ready( function() {
|
||||
|
||||
// get active led device
|
||||
var leddevice = parsedServerInfoJSON.info.ledDevices.active;
|
||||
$('#dash_leddevice').html(leddevice);
|
||||
if ($("#content_dashboard").length > 0)
|
||||
{
|
||||
$('#dash_leddevice').html(leddevice);
|
||||
}
|
||||
|
||||
// get host
|
||||
var hostname = parsedServerInfoJSON.info.hostname;
|
||||
$('#dash_systeminfo').html(hostname+':'+hyperionport);
|
||||
|
||||
var components = parsedServerInfoJSON.info.components;
|
||||
components_html = "";
|
||||
for ( idx=0; idx<components.length;idx++)
|
||||
if ($("#content_dashboard").length > 0)
|
||||
{
|
||||
console.log()
|
||||
components_html += '<tr><td lang="en" data-lang-token="general_comp_'+components[idx].name+'">'+(components[idx].title)+'</td><td><i class="fa fa-circle component-'+(components[idx].enabled?"on":"off")+'"></i></td></tr>';
|
||||
$('#dash_systeminfo').html(hostname+':'+hyperionport);
|
||||
}
|
||||
$("#tab_components").html(components_html);
|
||||
|
||||
$.get( "https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/version.json", function( data ) {
|
||||
parsedUpdateJSON = JSON.parse(data);
|
||||
latestVersion = parsedUpdateJSON[0].versionnr;
|
||||
cleanLatestVersion = latestVersion.replace(/\./g, '');
|
||||
|
||||
$('#currentversion').html(' V'+currentVersion);
|
||||
$('#latestversion').html(' V'+latestVersion);
|
||||
|
||||
if ( cleanCurrentVersion < cleanLatestVersion )
|
||||
if ($("#content_dashboard").length > 0)
|
||||
{
|
||||
var components = parsedServerInfoJSON.info.components;
|
||||
components_html = "";
|
||||
for ( idx=0; idx<components.length;idx++)
|
||||
{
|
||||
$('#versioninforesult').html('<div lang="en" data-lang-token="dashboard_infobox_message_updatewarning" style="margin:0px;" class="alert alert-warning">A newer version of Hyperion is available!</div>');
|
||||
components_html += '<tr><td lang="en" data-lang-token="general_comp_'+components[idx].name+'">'+(components[idx].title)+'</td><td><i class="fa fa-circle component-'+(components[idx].enabled?"on":"off")+'"></i></td></tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#versioninforesult').html('<div lang="en" data-lang-token="dashboard_infobox_message_updatesuccess" style="margin:0px;" class="alert alert-success">You run the latest version of Hyperion.</div>');
|
||||
}
|
||||
});
|
||||
$("#tab_components").html(components_html);
|
||||
|
||||
$.get( "https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/version.json", function( data ) {
|
||||
parsedUpdateJSON = JSON.parse(data);
|
||||
latestVersion = parsedUpdateJSON[0].versionnr;
|
||||
cleanLatestVersion = latestVersion.replace(/\./g, '');
|
||||
|
||||
$('#currentversion').html(' V'+currentVersion);
|
||||
$('#latestversion').html(' V'+latestVersion);
|
||||
|
||||
if ( cleanCurrentVersion < cleanLatestVersion )
|
||||
{
|
||||
$('#versioninforesult').html('<div lang="en" data-lang-token="dashboard_infobox_message_updatewarning" style="margin:0px;" class="alert alert-warning">A newer version of Hyperion is available!</div>');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('#versioninforesult').html('<div lang="en" data-lang-token="dashboard_infobox_message_updatesuccess" style="margin:0px;" class="alert alert-success">You run the latest version of Hyperion.</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($("#logmessages").length == 0)
|
||||
{
|
||||
requestLoggingStop();
|
||||
}
|
||||
|
||||
|
||||
$("#loading_overlay").removeClass("overlay");
|
||||
$("#main-nav").show('slide', {direction: 'left'}, 1000);
|
||||
|
||||
|
24
assets/webconfig/js/content_logging.js
Normal file
24
assets/webconfig/js/content_logging.js
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
$(document).ready(function() {
|
||||
requestLoggingStart();
|
||||
if (!loggingHandlerInstalled)
|
||||
{
|
||||
loggingHandlerInstalled = true;
|
||||
$(hyperion).on("cmd-logging-update",function(event){
|
||||
if ($("#logmessages").length == 0)
|
||||
{
|
||||
requestLoggingStop();
|
||||
}
|
||||
else
|
||||
{
|
||||
messages = (event.response.result.messages);
|
||||
for(var idx=0; idx<messages.length; idx++)
|
||||
{
|
||||
msg = messages[idx];
|
||||
$("#logmessages").html($("#logmessages").html()+"\n"+msg);
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
@@ -36,6 +36,8 @@ var hyperion = {};
|
||||
var wsTan = 1;
|
||||
var cronId = 0;
|
||||
var ledStreamActive=false;
|
||||
var loggingStreamActive=false;
|
||||
var loggingHandlerInstalled = false;
|
||||
var watchdog = 0;
|
||||
|
||||
//
|
||||
@@ -215,5 +217,16 @@ function requestTestEffect(effectName,effectPy,effectArgs) {
|
||||
}
|
||||
|
||||
function requestDeleteEffect(effectName) {
|
||||
websocket.send('{"command":"delete-effect","name":"'+effectName+'"}');
|
||||
websocket.send('{"command":"delete-effect", "tan":'+wsTan+',"name":"'+effectName+'"}');
|
||||
}
|
||||
|
||||
function requestLoggingStart() {
|
||||
loggingStreamActive=true;
|
||||
websocket.send('{"command":"logging", "tan":'+wsTan+',"subcommand":"start"}');
|
||||
}
|
||||
|
||||
function requestLoggingStop() {
|
||||
loggingStreamActive=false;
|
||||
websocket.send('{"command":"logging", "tan":'+wsTan+',"subcommand":"stop"}');
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user