Implement basic error display

This commit is contained in:
George Lacey 2022-04-13 01:33:09 +01:00
parent 29d5b51752
commit 938be8c808
4 changed files with 43 additions and 23 deletions

View File

@ -0,0 +1,35 @@
{% extends "borg/base.html" %}
{% load cache %}
{% load static %}
{% block title %}{{ repo.label }} errors{% endblock %}
{% block script %}
{% endblock %}
{% block style %}
{{ block.super }}
.error-container {
padding: 8px;
margin: 8px;
}
{% endblock %}
{% block body %}
{% if errors %}
<div class="error-container" class="grid justify-content-left">
<ul class="att-label row ps-3 col-11">
{% for error in errors %}
<li class="shadow rounded overflow-hidden bg-primary m-1">
<span>{{ error.error }}</span>
</li>
{% endfor %}
</ul>
{% else %}
<div style="width: 600px;" class="error-container shadow rounded bg-primary overflow-hidden">
<div style="width: 600px;" class="error-container bg-primary overflow-hidden">
<h2 class="h2">No errors found</h2>
</div>
</div>
{% endif %}
</div>
{% endblock %}

View File

@ -1,23 +0,0 @@
<script id="repo-template" type="text/x-custom-template">
<div style="width: 600px;" class="repo-container shadow rounded overflow-hidden">
<div class="row me-1 overflow-hidden text-truncate">
<h2 class="h2"> <span class="repo-label"></span>
<small class="repo-location text-muted"></small>
</h2>
</div>
<dl class="att-label row ps-3">
<dt class="col-4">Latest backup:</dt>
<dd class="repo-latest-backup col-8"></dd>
</dl>
<dl class="att-label row ps-3">
<dt class="col-4">Size:</dt>
<dd class="repo-size col-8"></dd>
</dl>
<dl class="att-label row ps-3">
<dt class="col-4">Recent errors:</dt>
<dd class="repo-recent-errors col-8"></dd>
</dl>
<canvas class="repo-size-graph" width="400" height="200"></canvas>
</dl>
</div>
</script>

View File

@ -20,6 +20,7 @@ urlpatterns = [
# Repo page # Repo page
path('repo/<str:repo_label>', cache_page(60)(views.repo), name='repo'), path('repo/<str:repo_label>', cache_page(60)(views.repo), name='repo'),
path('repo/<str:repo_label>/errors', cache_page(60)(views.repo_errors), name='repo'),
# POST # POST
path('post/repo', views.post_repo, name='post repo'), path('post/repo', views.post_repo, name='post repo'),

View File

@ -1,3 +1,4 @@
from django.contrib.auth.decorators import permission_required
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from ..models import Repo from ..models import Repo
@ -16,5 +17,11 @@ def repo(request, repo_label: str):
return render(request, 'borg/repo.html', {'repo': s_repo}) return render(request, 'borg/repo.html', {'repo': s_repo})
@permission_required("borg.view_error")
def repo_errors(request, repo_label: str):
s_repo = get_object_or_404(Repo, label__label=repo_label)
return render(request, 'borg/errors.html', {'errors': s_repo.label.errors.all().order_by('-time')})
def axes(request, credentials, *args, **kwargs): def axes(request, credentials, *args, **kwargs):
return render(request, 'error/axes.html', {}) return render(request, 'error/axes.html', {})