From 6c438b6ca6351cb6de0d803c5ed4514521c6823f Mon Sep 17 00:00:00 2001 From: TheWitness Date: Wed, 7 Oct 2026 16:07:22 -0400 Subject: [PATCH 1/3] Pin status legend to the bottom of the page (match MacTrack) Wrap the servcheck legend render in the same fixed-position footer container MacTrack uses, so the legend stays pinned to the bottom of the viewport. --- servcheck_test.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/servcheck_test.php b/servcheck_test.php index 5dd0352..44f9ba2 100644 --- a/servcheck_test.php +++ b/servcheck_test.php @@ -1365,7 +1365,9 @@ function data_list(): void { print $nav; } + print '
'; servcheck_legend(); + print '
'; draw_actions_dropdown($servcheck_actions_menu, 1); From f51f695ae238e0b6a2d72d5cc6ad15fb67889dff Mon Sep 17 00:00:00 2001 From: TheWitness <1439914+TheWitness@users.noreply.github.com> Date: Wed, 7 Oct 2026 16:39:34 -0400 Subject: [PATCH 2/3] Use a CSS class for the legend footer instead of inline styles Replace the inline fixed-position wrapper around the status legend with a plugin-specific *LegendFooter class defined in the plugin's stylesheet. The class lays the legend out as a centered footer in normal document flow, so it no longer sits outside flow and overlay the final rows, pagination, or action controls at the bottom of the page. --- css/common.css | 8 ++++++++ servcheck_test.php | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/css/common.css b/css/common.css index 44d0951..258fdf4 100644 --- a/css/common.css +++ b/css/common.css @@ -79,6 +79,14 @@ width: 100%; } +/* Keeps the legend centered beneath the results in normal document flow, so it + never overlays the bottom pagination or bulk-action controls. */ +.servcheck_legend_footer { + display: table; + width: 100%; + margin: 8px auto 0; +} + .servcheck_legend .servcheck_legend_item { text-align: center; white-space: nowrap; diff --git a/servcheck_test.php b/servcheck_test.php index 44f9ba2..acb67bd 100644 --- a/servcheck_test.php +++ b/servcheck_test.php @@ -1365,7 +1365,7 @@ function data_list(): void { print $nav; } - print '
'; + print ''; From 97c8f1958b6dce1124761d3dd313408b14437f74 Mon Sep 17 00:00:00 2001 From: TheWitness <1439914+TheWitness@users.noreply.github.com> Date: Wed, 7 Oct 2026 18:18:40 -0400 Subject: [PATCH 3/3] ci: allowlist servcheck_test.php in the patch-coverage gate servcheck_test.php is a web page controller that chdir()s and includes auth.php at the top level, so it cannot be loaded into the isolated unit process and is absent from Clover. The legend-footer edit tripped the patch-coverage gate; add it to the unmeasured allowlist. --- tests/bin/patch-coverage.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/bin/patch-coverage.php b/tests/bin/patch-coverage.php index e65b53d..9843b2f 100644 --- a/tests/bin/patch-coverage.php +++ b/tests/bin/patch-coverage.php @@ -160,6 +160,9 @@ function changed_lines($base_ref) { * Empty by default; add entries per repository as the need arises. */ $unmeasured_allowlist = [ + // Web page controller: chdir()s and includes auth.php at the top level, so it + // cannot be loaded into the isolated unit process and is absent from Clover. + 'servcheck_test.php', ]; $unmeasured = array_values(array_diff(array_keys($changed), array_keys($measured))); $unexpected_unmeasured = array_values(array_diff($unmeasured, $unmeasured_allowlist));