diff --git a/src/pobsync_backend/templates/pobsync_backend/host_detail.html b/src/pobsync_backend/templates/pobsync_backend/host_detail.html
index 316fde3..76b67bb 100644
--- a/src/pobsync_backend/templates/pobsync_backend/host_detail.html
+++ b/src/pobsync_backend/templates/pobsync_backend/host_detail.html
@@ -433,7 +433,7 @@
{% endfor %}
-
+
diff --git a/src/pobsync_backend/templates/pobsync_backend/run_detail.html b/src/pobsync_backend/templates/pobsync_backend/run_detail.html
index 8f042f9..6e06b06 100644
--- a/src/pobsync_backend/templates/pobsync_backend/run_detail.html
+++ b/src/pobsync_backend/templates/pobsync_backend/run_detail.html
@@ -11,20 +11,6 @@
Back to host
- {% if can_cancel %}
-
- {% endif %}
- {% if run.status == "failed" or run.status == "warning" %}
- {% if not run.reviewed_at %}
-
- {% endif %}
- {% endif %}
@@ -35,6 +21,22 @@
Rsync
{{ run.rsync_exit_code|default:"" }}
+ {% if can_cancel %}
+
+ Run Control
+
+ Cancelling a queued run stops it immediately. Cancelling a running run asks the worker to stop
+ and records the cancellation request on this run.
+
+
+
+ {% endif %}
+
{% if failure %}
Failure
@@ -46,6 +48,21 @@
{% endif %}
+ {% if run.status == "failed" or run.status == "warning" %}
+ {% if not run.reviewed_at %}
+
+ Review Required
+ Mark this run as reviewed after you have checked the failure or warning and no longer need it in the action queue.
+
+
+ {% endif %}
+ {% endif %}
+
{% if run.reviewed_at %}
Review
diff --git a/src/pobsync_backend/tests/test_views.py b/src/pobsync_backend/tests/test_views.py
index 4ac4bb4..e221eeb 100644
--- a/src/pobsync_backend/tests/test_views.py
+++ b/src/pobsync_backend/tests/test_views.py
@@ -1667,8 +1667,11 @@ class ViewTests(TestCase):
response = self.client.get(reverse("run_detail", args=[run.id]))
self.assertEqual(response.status_code, 200)
+ self.assertContains(response, "Run Control")
+ self.assertContains(response, "Cancelling a queued run stops it immediately")
self.assertContains(response, "Cancel run")
self.assertContains(response, reverse("cancel_run", args=[run.id]))
+ self.assertContains(response, 'class="danger"', html=False)
def test_run_detail_renders_worker_execution_metadata(self) -> None:
self.client.force_login(self.staff_user)