Improvements for logfile viewer
Fix for tornado-server with deactivated accesslog doesn't log to normal log anymore Merge from master for unique user ids, get_metadata, fix Goodreads integration Update Translation (merge NL, update DE)pull/958/head
parent
cc8a431532
commit
32af660f86
@ -1,141 +1,15 @@
|
|||||||
{% extends "layout.html" %}
|
{% extends "layout.html" %}
|
||||||
{% block body %}
|
{% block body %}
|
||||||
{% block header %}
|
<div id="log_group" class="inputs">
|
||||||
<style>
|
<div><input type="radio" name="log_radio" id="log1" value="0" checked>
|
||||||
|
<label for="log0">{{_('Show Calibre-Web log')}}</label> {{logfiles[0]}}</div>
|
||||||
html, body {
|
{% if accesslog_enable %}
|
||||||
margin: 0;
|
<div><input type="radio" name="log_radio" id="log0" value="1">
|
||||||
height: 100%;
|
<label for="log1">{{_('Show access log')}}</label> {{logfiles[1]}}</div>
|
||||||
overflow-y: hidden
|
{% endif %}
|
||||||
}
|
</div>
|
||||||
|
<div id="renderer" class="log"></div>
|
||||||
div.log {
|
|
||||||
font-family: Courier New;
|
|
||||||
font-size: 12px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
height: 500px;
|
|
||||||
overflow-y: scroll;
|
|
||||||
border-style: solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.log {
|
|
||||||
white-space: nowrap;
|
|
||||||
padding: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.lhl {
|
|
||||||
background-color: #ffd;
|
|
||||||
}
|
|
||||||
div.thread {
|
|
||||||
background: #fdd;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.persistent,
|
|
||||||
div.persistents,
|
|
||||||
div.hint {
|
|
||||||
display: inline;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.hint,
|
|
||||||
div.persistent {
|
|
||||||
font-family: Arial;
|
|
||||||
font-size: 12px;
|
|
||||||
padding: 2px;
|
|
||||||
margin: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.hint {
|
|
||||||
color: gray;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button,
|
|
||||||
div.button2,
|
|
||||||
div.button_right {
|
|
||||||
display: inline;
|
|
||||||
font-weight: bold;
|
|
||||||
font-family: Arial;
|
|
||||||
font-size: 12px;
|
|
||||||
padding: 2px;
|
|
||||||
cursor: pointer;
|
|
||||||
color: #3ad;
|
|
||||||
_text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button2 {
|
|
||||||
border: solid 1px gray;
|
|
||||||
border-radius: 4px;
|
|
||||||
color: black;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.button_right {
|
|
||||||
margin-right: 1em;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
div.nounder {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
input.filebtn {
|
|
||||||
float: right;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
{% endblock %}
|
|
||||||
<!--body onload="load()"-->
|
|
||||||
<div id="toobar" class="toobar">
|
|
||||||
<input class="search" id="search" type="text" onmousedown="selectfilter(0)"></input>
|
|
||||||
<div class="button2" onclick="highlight()" title="apply changes in the search box">apply</div>
|
|
||||||
<div class="button_right" onclick="flipfilter(event)" title="disable/enable selected filters">filters on</div>
|
|
||||||
<br/>
|
|
||||||
<div class="button" onclick="filter()" title="show only lines containing the phrase">filter</div>
|
|
||||||
<div class="hint" onclick="repaint()" id="hint"></div>
|
|
||||||
<div class="hint" onclick="repaint()" id="position"></div>
|
|
||||||
</div>
|
|
||||||
<div class="clear"></div>
|
|
||||||
|
|
||||||
<div class="logpaginator"><a href="{{'/logs/1'}}"><span class="glyphicon glyphicon-fast-backward"></span></a> <a href="{{ "/logs/"}}"><span class="glyphicon glyphicon-step-backward"></span></a> <a href="{{ '/logs/' }}"><span class="glyphicon glyphicon-step-forward"></span></a> <a href="{{'/logs/'}}"><span class="glyphicon glyphicon-fast-forward"></span></a></div>
|
|
||||||
<div class="logperpage">
|
|
||||||
<form id="logform1" action="" method="POST">
|
|
||||||
<label for="reversed">{{_('Reversed')}}:</label>
|
|
||||||
<input type="checkbox" name="reversed" id="reversed" onchange="this.form.submit();" {% if reversed %} checked="checked" {% endif %} />
|
|
||||||
<label for="perpage">{{_('Lines per page')}}:</label>
|
|
||||||
<select name="perpage" id ="perpage" onchange="this.form.submit();">
|
|
||||||
{% for key, value in perpage_p.items() %}
|
|
||||||
<option value="{{key}}"{% if value== perpage %} selected="selected" {% endif %}>{{value}}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div class="logwarn">{{warning}}</div>
|
|
||||||
<div class="clear"></div>
|
|
||||||
<div class="logdiv">
|
|
||||||
<table class="logtable" cellpadding="0" cellspacing="0">
|
|
||||||
<div id="renderer" class="log" onmouseup="mouseup(event)"><div>nothing loaded</div></div>
|
|
||||||
{% for line in log %}
|
|
||||||
<tr><td class="logline">{{line.line}}</td><td>{{line.date}}</td><td class="loglevel">{{line.level}}</td><td>{{line.message}}</td></tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
<div class="logform">
|
|
||||||
<form id="logform2" action="" method="POST" style="width: auto">
|
|
||||||
<label for="from" style="display: inline-block; float: left; margin-right: 5px; height: 34px; line-height: 34px;">{{_('Jump to time:')}}</label>
|
|
||||||
<input style="display: inline-block; text-align: center; float: left; width: 155px;" class="form-control" type="text" name="from" id="from" size="15" value="{{from}}"/>
|
|
||||||
<input style="display: inline-block; float: left; margin-left: 5px;" class="btn btn-default" type="submit" value="{{_('Go')}}" />
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block js %}
|
{% block js %}
|
||||||
<script src="{{ url_for('static', filename='js/logviewer.js') }}"></script>
|
<script src="{{ url_for('static', filename='js/logviewer.js') }}"></script>
|
||||||
<script>
|
|
||||||
$(function(){
|
|
||||||
init('access.log');
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue