diff --git a/netbox/extras/views.py b/netbox/extras/views.py
index f2cf1b38a..d5d36d364 100644
--- a/netbox/extras/views.py
+++ b/netbox/extras/views.py
@@ -694,16 +694,26 @@ class ReportResultView(ContentTypePermissionRequiredMixin, View):
def get(self, request, job_result_pk):
report_content_type = ContentType.objects.get(app_label='extras', model='report')
- jobresult = get_object_or_404(JobResult.objects.all(), pk=job_result_pk, obj_type=report_content_type)
+ result = get_object_or_404(JobResult.objects.all(), pk=job_result_pk, obj_type=report_content_type)
# Retrieve the Report and attach the JobResult to it
- module, report_name = jobresult.name.split('.')
+ module, report_name = result.name.split('.')
report = get_report(module, report_name)
- report.result = jobresult
+ report.result = result
+
+ # If this is an HTMX request, return only the result HTML
+ if is_htmx(request):
+ response = render(request, 'extras/htmx/report_result.html', {
+ 'report': report,
+ 'result': result,
+ })
+ if result.completed:
+ response.status_code = 286
+ return response
return render(request, 'extras/report_result.html', {
'report': report,
- 'result': jobresult,
+ 'result': result,
})
@@ -821,7 +831,7 @@ class ScriptResultView(ContentTypePermissionRequiredMixin, GetScriptMixin, View)
script = self._get_script(result.name)
- # If this is an HTMX request, return only the rendered table HTML
+ # If this is an HTMX request, return only the result HTML
if is_htmx(request):
response = render(request, 'extras/htmx/script_result.html', {
'script': script,
diff --git a/netbox/templates/extras/htmx/report_result.html b/netbox/templates/extras/htmx/report_result.html
new file mode 100644
index 000000000..3bc5ad27d
--- /dev/null
+++ b/netbox/templates/extras/htmx/report_result.html
@@ -0,0 +1,81 @@
+{% load helpers %}
+
+
+ Run: {{ result.created|annotated_date }}
+ {% if result.completed %}
+ Duration: {{ result.duration }}
+ {% else %}
+
+ Loading...
+
+ {% endif %}
+ {% include 'extras/inc/job_label.html' with result=result %}
+
+{% if result.completed %}
+
+
+
+
+ {% for method, data in result.data.items %}
+
+ {{ method }} |
+
+ {{ data.success }}
+ {{ data.info }}
+ {{ data.warning }}
+ {{ data.failure }}
+ |
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+ Time |
+ Level |
+ Object |
+ Message |
+
+
+
+ {% for method, data in result.data.items %}
+
+
+ {{ method }}
+ |
+
+ {% for time, level, obj, url, message in data.log %}
+
+ {{ time }} |
+
+
+ |
+
+ {% if obj and url %}
+ {{ obj }}
+ {% elif obj %}
+ {{ obj }}
+ {% else %}
+ —
+ {% endif %}
+ |
+ {{ message|render_markdown }} |
+
+ {% endfor %}
+ {% endfor %}
+
+
+
+
+{% else %}
+ Pending results
+{% endif %}
diff --git a/netbox/templates/extras/report_result.html b/netbox/templates/extras/report_result.html
index 90726d287..9dd733bef 100644
--- a/netbox/templates/extras/report_result.html
+++ b/netbox/templates/extras/report_result.html
@@ -2,98 +2,10 @@
{% load helpers %}
{% load static %}
-{% block head %}
-
-{% endblock %}
-
{% block content-wrapper %}
-
-
-
- Run: {{ result.created|annotated_date }}
- {% if result.completed %}
- Duration: {{ result.duration }}
- {% else %}
-
- Loading...
-
- {% endif %}
-
{% include 'extras/inc/job_label.html' with result=result %}
-
- {% if result.completed %}
-
-
-
-
- {% for method, data in result.data.items %}
-
- {{ method }} |
-
- {{ data.success }}
- {{ data.info }}
- {{ data.warning }}
- {{ data.failure }}
- |
-
- {% endfor %}
-
-
-
-
-
-
-
-
-
- Time |
- Level |
- Object |
- Message |
-
-
-
- {% for method, data in result.data.items %}
-
-
- {{ method }}
- |
-
- {% for time, level, obj, url, message in data.log %}
-
- {{ time }} |
-
-
- |
-
- {% if obj and url %}
- {{ obj }}
- {% elif obj %}
- {{ obj }}
- {% else %}
- —
- {% endif %}
- |
- {{ message|render_markdown }} |
-
- {% endfor %}
- {% endfor %}
-
-
-
-
- {% else %}
-
Pending results
- {% endif %}
+
+
+ {% include 'extras/htmx/report_result.html' %}
-
-{% endblock %}
-
-{% block data %}
-
-
+
{% endblock %}