Clean up report & script templates

This commit is contained in:
jeremystretch 2021-12-21 08:43:01 -05:00
parent 17ba0a97d5
commit 8af12b22bb
5 changed files with 96 additions and 105 deletions

View File

@ -1,81 +1,73 @@
{% load helpers %} {% load helpers %}
<p> <p>
Run: <strong>{{ result.created|annotated_date }}</strong> Initiated: <strong>{{ result.created|annotated_date }}</strong>
{% if result.completed %} {% if result.completed %}
Duration: <strong>{{ result.duration }}</strong> Duration: <strong>{{ result.duration }}</strong>
{% else %} {% endif %}
<div class="spinner-border" role="status"> <span id="pending-result-label">{% include 'extras/inc/job_label.html' %}</span>
<span class="visually-hidden">Loading...</span>
</div>
{% endif %}
<span id="pending-result-label">{% include 'extras/inc/job_label.html' with result=result %}</span>
</p> </p>
{% if result.completed %} {% if result.completed %}
<div class="card"> <div class="card">
<h5 class="card-header"> <h5 class="card-header">Report Methods</h5>
Report Methods <div class="card-body">
</h5> <table class="table table-hover">
<div class="card-body"> {% for method, data in result.data.items %}
<table class="table table-hover"> <tr>
{% for method, data in result.data.items %} <td class="font-monospace"><a href="#{{ method }}">{{ method }}</a></td>
<tr> <td class="text-end report-stats">
<td class="font-monospace"><a href="#{{ method }}">{{ method }}</a></td> <span class="badge bg-success">{{ data.success }}</span>
<td class="text-end report-stats"> <span class="badge bg-info">{{ data.info }}</span>
<span class="badge bg-success">{{ data.success }}</span> <span class="badge bg-warning">{{ data.warning }}</span>
<span class="badge bg-info">{{ data.info }}</span> <span class="badge bg-danger">{{ data.failure }}</span>
<span class="badge bg-warning">{{ data.warning }}</span> </td>
<span class="badge bg-danger">{{ data.failure }}</span> </tr>
</td> {% endfor %}
</tr> </table>
{% endfor %}
</table>
</div>
</div> </div>
<div class="card"> </div>
<h5 class="card-header"> <div class="card">
Report Results <h5 class="card-header">Report Results</h5>
</h5> <div class="card-body">
<div class="card-body"> <table class="table table-hover report">
<table class="table table-hover report"> <thead>
<thead> <tr class="table-headings">
<tr class="table-headings"> <th>Time</th>
<th>Time</th> <th>Level</th>
<th>Level</th> <th>Object</th>
<th>Object</th> <th>Message</th>
<th>Message</th> </tr>
</tr> </thead>
</thead> <tbody>
<tbody> {% for method, data in result.data.items %}
{% for method, data in result.data.items %} <tr>
<tr> <th colspan="4" style="font-family: monospace">
<th colspan="4" style="font-family: monospace"> <a name="{{ method }}"></a>{{ method }}
<a name="{{ method }}"></a>{{ method }} </th>
</th> </tr>
</tr> {% for time, level, obj, url, message in data.log %}
{% for time, level, obj, url, message in data.log %} <tr class="{% if level == 'failure' %}danger{% elif level %}{{ level }}{% endif %}">
<tr class="{% if level == 'failure' %}danger{% elif level %}{{ level }}{% endif %}"> <td>{{ time }}</td>
<td>{{ time }}</td> <td>
<td> <label class="badge bg-{% if level == 'failure' %}danger{% else %}{{ level }}{% endif %}">{{ level|title }}</label>
<label class="badge bg-{% if level == 'failure' %}danger{% else %}{{ level }}{% endif %}">{{ level|title }}</label> </td>
</td> <td>
<td> {% if obj and url %}
{% if obj and url %} <a href="{{ url }}">{{ obj }}</a>
<a href="{{ url }}">{{ obj }}</a> {% elif obj %}
{% elif obj %} {{ obj }}
{{ obj }} {% else %}
{% else %} <span class="muted">&mdash;</span>
<span class="muted">&mdash;</span> {% endif %}
{% endif %} </td>
</td> <td class="rendered-markdown">{{ message|render_markdown }}</td>
<td class="rendered-markdown">{{ message|render_markdown }}</td> </tr>
</tr> {% endfor %}
{% endfor %} {% endfor %}
{% endfor %} </tbody>
</tbody> </table>
</table>
</div>
</div> </div>
</div>
{% else %} {% else %}
<div class="well">Pending results</div> {% include 'extras/inc/result_pending.html' %}
{% endif %} {% endif %}

View File

@ -1,13 +1,14 @@
{% load helpers %} {% load helpers %}
{% load log_levels %} {% load log_levels %}
<p>
Initiated: <strong>{{ result.created|annotated_date }}</strong>
{% if result.completed %}
Duration: <strong>{{ result.duration }}</strong>
{% endif %}
<span id="pending-result-label">{% include 'extras/inc/job_label.html' %}</span>
</p>
{% if result.completed %} {% if result.completed %}
<p>
Run: <strong>{{ result.created|annotated_date }}</strong>
{% if result.completed %}
Duration: <strong>{{ result.duration }}</strong>
{% endif %}
</p>
<div class="card mb-3"> <div class="card mb-3">
<h5 class="card-header">Script Log</h5> <h5 class="card-header">Script Log</h5>
<div class="card-body"> <div class="card-body">
@ -45,8 +46,5 @@
<p class="text-muted">None</p> <p class="text-muted">None</p>
{% endif %} {% endif %}
{% else %} {% else %}
<div class="spinner-border" id="spinner" role="status"> {% include 'extras/inc/result_pending.html' %}
<span class="visually-hidden">Loading...</span>
</div>
<h3>Results pending...</h3>
{% endif %} {% endif %}

View File

@ -0,0 +1,6 @@
{# Indicates that a job result is still pending; used for HTMX requests #}
<div class="spinner-border float-start me-1" id="spinner" role="status">
<span class="visually-hidden">Loading...</span>
</div>
<h3>Results pending...</h3>
<small class="text-muted">Last updated {% now "H:i:s" %}</small>

View File

@ -1,10 +1,8 @@
{% extends 'extras/report.html' %} {% extends 'extras/report.html' %}
{% load helpers %}
{% load static %}
{% block content-wrapper %} {% block content-wrapper %}
<div class="row px-3"> <div class="row px-3">
<div class="col col-md-12" hx-get="{% url 'extras:report_result' job_result_pk=result.pk %}" hx-trigger="every 3s"> <div class="col col-md-12"{% if not result.completed %} hx-get="{% url 'extras:report_result' job_result_pk=result.pk %}" hx-trigger="every 3s"{% endif %}>
{% include 'extras/htmx/report_result.html' %} {% include 'extras/htmx/report_result.html' %}
</div> </div>
</div> </div>

View File

@ -1,8 +1,5 @@
{% extends 'base/layout.html' %} {% extends 'base/layout.html' %}
{% load helpers %} {% load helpers %}
{% load form_helpers %}
{% load log_levels %}
{% load static %}
{% block title %}{{ script }}{% endblock %} {% block title %}{{ script }}{% endblock %}
@ -12,33 +9,33 @@
{% block header %} {% block header %}
<div class="row noprint"> <div class="row noprint">
<div class="col col-md-12"> <div class="col col-md-12">
<nav class="breadcrumb-container px-3" aria-label="breadcrumb"> <nav class="breadcrumb-container px-3" aria-label="breadcrumb">
<ol class="breadcrumb"> <ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'extras:script_list' %}">Scripts</a></li> <li class="breadcrumb-item"><a href="{% url 'extras:script_list' %}">Scripts</a></li>
<li class="breadcrumb-item"><a href="{% url 'extras:script_list' %}#module.{{ script.module }}">{{ script.module|bettertitle }}</a></li> <li class="breadcrumb-item"><a href="{% url 'extras:script_list' %}#module.{{ script.module }}">{{ script.module|bettertitle }}</a></li>
<li class="breadcrumb-item"><a href="{% url 'extras:script' module=script.module name=class_name %}">{{ script }}</a></li> <li class="breadcrumb-item"><a href="{% url 'extras:script' module=script.module name=class_name %}">{{ script }}</a></li>
<li class="breadcrumb-item">{{ result.created|annotated_date }}</li> <li class="breadcrumb-item">{{ result.created|annotated_date }}</li>
</ol> </ol>
</nav> </nav>
</div> </div>
</div> </div>
{{ block.super }} {{ block.super }}
{% endblock header %} {% endblock header %}
{% block content-wrapper %} {% block content-wrapper %}
<ul class="nav nav-tabs px-3" role="tablist"> <ul class="nav nav-tabs px-3" role="tablist">
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a href="#log" role="tab" data-bs-toggle="tab" class="nav-link active">Log</a> <a href="#log" role="tab" data-bs-toggle="tab" class="nav-link active">Log</a>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<a href="#source" role="tab" data-bs-toggle="tab" class="nav-link">Source</a> <a href="#source" role="tab" data-bs-toggle="tab" class="nav-link">Source</a>
</li> </li>
</ul> </ul>
<div class="tab-content mb-3"> <div class="tab-content mb-3">
<div role="tabpanel" class="tab-pane active" id="log"> <div role="tabpanel" class="tab-pane active" id="log">
<div class="row"> <div class="row">
<div class="col col-md-12" hx-get="{% url 'extras:script_result' job_result_pk=result.pk %}" hx-trigger="every 3s"> <div class="col col-md-12"{% if not result.completed %} hx-get="{% url 'extras:script_result' job_result_pk=result.pk %}" hx-trigger="every 3s"{% endif %}>
{% include 'extras/htmx/script_result.html' %} {% include 'extras/htmx/script_result.html' %}
</div> </div>
</div> </div>