From 4b27d1b8931d6b1ad78d605a40da35090d1b6725 Mon Sep 17 00:00:00 2001 From: Gregy Date: Fri, 6 Aug 2010 23:16:54 +0200 Subject: Log page improvement --- module/web/media/default/css/default.css | 3 +- module/web/pyload/urls.py | 2 +- module/web/pyload/views.py | 49 +++++++++++++++++++++++++++----- module/web/templates/default/logs.html | 38 ++++++++++++++++++++----- 4 files changed, 76 insertions(+), 16 deletions(-) (limited to 'module/web') diff --git a/module/web/media/default/css/default.css b/module/web/media/default/css/default.css index 7bd46d8cc..9d2ca1a14 100644 --- a/module/web/media/default/css/default.css +++ b/module/web/media/default/css/default.css @@ -1679,4 +1679,5 @@ div.tabContent border: none; margin: 0px; padding: 5px; -} \ No newline at end of file +} + diff --git a/module/web/pyload/urls.py b/module/web/pyload/urls.py index 420bc8ce1..66ea68e39 100644 --- a/module/web/pyload/urls.py +++ b/module/web/pyload/urls.py @@ -14,7 +14,7 @@ urlpatterns = patterns('pyload', (r'^collector/$', 'views.collector',{}, 'collector'), (r'^settings/$', 'views.config',{}, 'config'), (r'^logs/$', 'views.logs',{}, 'logs'), - (r'^logs/(?P\d+)$', 'views.logs',{}, 'logs'), + (r'^logs/(?P\d+)$', 'views.logs',{}, 'logs'), (r'^$', 'views.home',{}, 'home'), ) diff --git a/module/web/pyload/views.py b/module/web/pyload/views.py index 21e583348..4d247246a 100644 --- a/module/web/pyload/views.py +++ b/module/web/pyload/views.py @@ -9,6 +9,7 @@ from os.path import isfile from os.path import join from urllib import unquote from itertools import chain +from datetime import datetime from django.conf import settings from django.contrib.auth.decorators import login_required @@ -171,19 +172,53 @@ def download(request, path): @login_required @permission('pyload.can_see_logs') @check_server -def logs(request, page=0): +def logs(request, item=-1): - page = int(page) - log = settings.PYLOAD.get_log(page) - data = [] + perpage = request.session.get('perpage', 40); + perpage_p = {20:20, 40: 40, 100: 100, 0:'all'} + fro = None; + if request.method == 'POST': + try: + fro = datetime.strptime(request.POST['from'], '%d.%m.%Y %H:%M:%S') + except: + pass + try: + perpage = int(request.POST['perpage']) + request.session['perpage'] = perpage + except: + pass try: - for i in range(0, 20): - data.append({'line': i + 1+page, 'content':log[i]}) + item = int(item) except: pass + + log = settings.PYLOAD.get_log() + if perpage == 0: + item = 0 + + if item < 0 or type(item) is not int: + item = len(log) - perpage + 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: + dtime = datetime.strptime(date+' '+time, '%d.%m.%Y %H:%M:%S') + if fro == None: + fro = dtime + if fro <= dtime: + data.append({'line': counter, 'date': date+" "+time, 'level':level, 'message': message}) + perpagecheck = perpagecheck +1; + if perpagecheck >= perpage and perpage > 0: + break - return render_to_response(join(settings.TEMPLATE, 'logs.html'), RequestContext(request, {'log': data, 'next': str(page + 20), 'prev': 0 if page-20 < 0 else page-20}, [status_proc])) + 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])) @login_required @permission('pyload.can_add_dl') diff --git a/module/web/templates/default/logs.html b/module/web/templates/default/logs.html index 52120ffc4..2bf626769 100644 --- a/module/web/templates/default/logs.html +++ b/module/web/templates/default/logs.html @@ -3,7 +3,9 @@ {% block title %}{% trans "Logs" %} - {{block.super}} {% endblock %} {% block subtitle %}{% trans "Logs" %}{% endblock %} - +{% block head %} + +{% endblock %} {% block menu %}
  • {% trans "Home" %} @@ -26,10 +28,32 @@ {% endblock %} {% block content %} -
      -{% for line in log %} -
    • {{line.line}}: {{line.content}}
    • -{% endfor %} -
    -<< {% trans "Start" %} < {% trans "prev" %} {% trans "next" %} > +
    + + +
    +
    + + +
    +
    +
    +
    + + {% for line in log %} + + {% endfor %} +
    {{line.line}}{{line.date}}{{line.level}}{{line.message}}
    +
    +
    +
    + + +
    +
    +
     
    {% endblock %} \ No newline at end of file -- cgit v1.2.3