summaryrefslogtreecommitdiffstats
path: root/module/web
diff options
context:
space:
mode:
authorGravatar Gregy <gregy@gregy.cz> 2010-08-07 11:21:27 +0200
committerGravatar Gregy <gregy@gregy.cz> 2010-08-07 11:21:27 +0200
commit08d1a9da5366882e7323a3f26b3014c4aa63621c (patch)
tree1e76e89ee05e7a15e5d6257594a5526d3ab83c62 /module/web
parentCSS file for log page (diff)
downloadpyload-08d1a9da5366882e7323a3f26b3014c4aa63621c.tar.xz
Log page refactoring and improvements
Diffstat (limited to 'module/web')
-rw-r--r--module/web/media/default/css/log.css5
-rw-r--r--module/web/pyload/views.py44
-rw-r--r--module/web/templates/default/logs.html9
3 files changed, 42 insertions, 16 deletions
diff --git a/module/web/media/default/css/log.css b/module/web/media/default/css/log.css
index bf410d45a..73786bfb4 100644
--- a/module/web/media/default/css/log.css
+++ b/module/web/media/default/css/log.css
@@ -64,4 +64,9 @@ td.loglevel
.logpaginator a
{
padding: 0px 8px 0px 8px;
+}
+.logwarn
+{
+ text-align: center;
+ color: red;
} \ No newline at end of file
diff --git a/module/web/pyload/views.py b/module/web/pyload/views.py
index 4d247246a..2c58f021a 100644
--- a/module/web/pyload/views.py
+++ b/module/web/pyload/views.py
@@ -174,8 +174,15 @@ def download(request, path):
@check_server
def logs(request, item=-1):
- perpage = request.session.get('perpage', 40);
- perpage_p = {20:20, 40: 40, 100: 100, 0:'all'}
+ perpage = request.session.get('perpage', 34);
+ reversed = request.session.get('reversed', False);
+
+ warning = ""
+ conf = settings.PYLOAD.get_config()
+ if not conf['log']['file_log']['value']:
+ warning = "Warning: File log is disabled, see settings page."
+
+ perpage_p = ((20,20), (34, 34), (40, 40), (100, 100), (0,'all'))
fro = None;
if request.method == 'POST':
@@ -186,8 +193,12 @@ def logs(request, item=-1):
try:
perpage = int(request.POST['perpage'])
request.session['perpage'] = perpage
+
+ reversed = bool(request.POST.get('reversed', False))
+ request.session['reversed'] = reversed
except:
pass
+
try:
item = int(item)
except:
@@ -197,28 +208,35 @@ def logs(request, item=-1):
if perpage == 0:
item = 0
- if item < 0 or type(item) is not int:
- item = len(log) - perpage
+ if item < 1 or type(item) is not int:
+ item = len(log) - perpage + 1
+
+ if type(fro) is datetime: # we will search for datetime
+ item = -1
+
data = []
counter = 0
perpagecheck = 0
for l in log:
counter = counter+1;
- try:
- date,time,level,message = l.split(" ", 3)
- except:
- continue
+
if counter >= item:
+ date,time,level,message = l.split(" ", 3)
dtime = datetime.strptime(date+' '+time, '%d.%m.%Y %H:%M:%S')
- if fro == None:
- fro = dtime
- if fro <= dtime:
+
+ if item == -1 and fro <= dtime:
+ item = counter #found our datetime
+ if item >= 0:
data.append({'line': counter, 'date': date+" "+time, 'level':level, 'message': message})
perpagecheck = perpagecheck +1;
+ if fro == None: #if fro not set set it to first showed line
+ fro = dtime;
if perpagecheck >= perpage and perpage > 0:
break
-
- return render_to_response(join(settings.TEMPLATE, 'logs.html'), RequestContext(request, {'log': data, 'from': fro.strftime('%d.%m.%Y %H:%M:%S'), 'perpage':perpage, 'perpage_p':perpage_p, 'iprev': 0 if item - perpage < 0 else item - perpage, 'inext': (item + perpage) if item+perpage < len(log) else len(log)-perpage}, [status_proc]))
+
+ if reversed:
+ data.reverse()
+ return render_to_response(join(settings.TEMPLATE, 'logs.html'), RequestContext(request, {'warning': warning, 'log': data, 'from': fro.strftime('%d.%m.%Y %H:%M:%S'), 'reversed': reversed, 'perpage':perpage, 'perpage_p':sorted(perpage_p), 'iprev': 1 if item - perpage < 1 else item - perpage, 'inext': (item + perpage) if item+perpage < len(log) else item}, [status_proc]))
@login_required
@permission('pyload.can_add_dl')
diff --git a/module/web/templates/default/logs.html b/module/web/templates/default/logs.html
index 2bf626769..5da99912f 100644
--- a/module/web/templates/default/logs.html
+++ b/module/web/templates/default/logs.html
@@ -30,17 +30,20 @@
{% block content %}
<div style="clear: both;"></div>
-<div class="logpaginator"><a href="{% url logs 0%}">&lt;&lt; {% trans "Start" %}</a> <a href="{% url logs iprev %}">&lt; {% trans "prev" %}</a> <a href="{% url logs inext %}">{% trans "next" %} &gt;</a> <a href="{% url logs %}">{% trans "End" %} &gt;&gt;</a></div>
+<div class="logpaginator"><a href="{% url logs 1%}">&lt;&lt; {% trans "Start" %}</a> <a href="{% url logs iprev %}">&lt; {% trans "prev" %}</a> <a href="{% url logs inext %}">{% trans "next" %} &gt;</a> <a href="{% url logs %}">{% trans "End" %} &gt;&gt;</a></div>
<div class="logperpage">
<form id="logform1" action="" method="POST">
+ <label for="reversed">Reversed:</label>
+ <input type="checkbox" name="reversed" onchange="this.form.submit();" {% if reversed %} checked="checked" {% endif %} />&nbsp;
<label for="perpage">Lines per page:</label>
<select name="perpage" onchange="this.form.submit();">
- {% for value,text in perpage_p.iteritems %}
- <option value="{{value}}"{% ifequal value perpage %} selected="selected" {% endifequal %}>{{text}}</option>
+ {% for value in perpage_p %}
+ <option value="{{value.0}}"{% ifequal value.0 perpage %} selected="selected" {% endifequal %}>{{value.1}}</option>
{% endfor %}
</select>
</form>
</div>
+<div class="logwarn">{{warning}}</div>
<div style="clear: both;"></div>
<div class="logdiv">
<table class="logtable" cellpadding="0" cellspacing="0">