diff --git a/openslides/static/javascript/beamer.js b/openslides/static/javascript/beamer.js index 1d4953c25..ea84d3d3b 100644 --- a/openslides/static/javascript/beamer.js +++ b/openslides/static/javascript/beamer.js @@ -9,11 +9,10 @@ function presentation_reload() { $('#content').html(data.content); document.title = data.title; $('#currentTime').html(data.time); - setTimeout("presentation_reload()",500); - + setTimeout("presentation_reload()", 500); }, error: function () { - alert("Ajax Error"); + $('#currentTime').addClass('ajax_error'); } }); } diff --git a/openslides/static/styles/beamer.css b/openslides/static/styles/beamer.css index 7182ae341..8f4c0018b 100644 --- a/openslides/static/styles/beamer.css +++ b/openslides/static/styles/beamer.css @@ -57,6 +57,10 @@ body{ background: url(../images/icons/clock.png) no-repeat scroll 0px 4px; } +#currentTime.ajax_error { + border-bottom: 4px solid red; +} + /*** CONTENT ***/ #content { position:absolute; diff --git a/openslides/templates/403.html b/openslides/templates/403.html index 99ea3fbdc..f7d59da78 100644 --- a/openslides/templates/403.html +++ b/openslides/templates/403.html @@ -1,31 +1,6 @@ {% extends "base.html" %} {% load tags %} -{% block mainmenu %} - - {% endblock %} - {% block submenu %} {% endblock %} diff --git a/openslides/templates/404.html b/openslides/templates/404.html index 207553df0..0f0a6d328 100644 --- a/openslides/templates/404.html +++ b/openslides/templates/404.html @@ -1,31 +1,8 @@ {% extends "base.html" %} {% load tags %} -{% block mainmenu %} - - {% endblock %} - + + {% block submenu %} {% endblock %} diff --git a/openslides/templates/500.html b/openslides/templates/500.html index fdb3fafc4..8c51a4f9f 100644 --- a/openslides/templates/500.html +++ b/openslides/templates/500.html @@ -1,31 +1,7 @@ {% extends "base.html" %} {% load tags %} -{% block mainmenu %} - - {% endblock %} - + {% block submenu %} {% endblock %} diff --git a/openslides/urls.py b/openslides/urls.py index ee6cb8130..55bb349f8 100644 --- a/openslides/urls.py +++ b/openslides/urls.py @@ -15,6 +15,7 @@ from django.conf import settings from django.contrib import admin admin.autodiscover() +handler500 = 'openslides.utils.views.server_error' urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), @@ -26,3 +27,8 @@ urlpatterns = patterns('', (r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT}), (r'^i18n/', include('django.conf.urls.i18n')), ) + + +urlpatterns += patterns('', + (r'^500/$', 'openslides.utils.views.server_error'), +) diff --git a/openslides/utils/views.py b/openslides/utils/views.py new file mode 100644 index 000000000..0d17cfa94 --- /dev/null +++ b/openslides/utils/views.py @@ -0,0 +1,16 @@ +from django.conf import settings +from django.http import HttpResponseServerError +from django.template import Context, loader, RequestContext +from django.template.loader import render_to_string + +def server_error(request, template_name='500.html'): + """ + 500 error handler. + + Templates: `500.html` + Context: + MEDIA_URL + Path of static media (e.g. "media.example.org") + """ + t = loader.get_template("500.html") # You need to create a 500.html template. + return HttpResponseServerError(render_to_string('500.html', context_instance=RequestContext(request)))