From 790ed4ec66b5f7c81cee2dc19af8e105c3b42e07 Mon Sep 17 00:00:00 2001
From: "benjamin.baker"
Date: Sun, 20 Sep 2026 13:23:23 -0400
Subject: [PATCH] Separate shipped policies from site policies in the list
The list mixed both kinds of configuration policy into one table, so the only
way to tell a shipped default from something the site had written was to read
the source column. Split them into two tables under their own headings.
The split is presentational only. Both tables render the same Edit and Delete
buttons gated on the same iseditable(p) rule, so a shipped policy is not
stranded behind a dead button the way it was when the buttons gated on
source === 'local'.
The spec counted exactly two disabled bindings, which the second table would
have broken while the behaviour it was guarding stayed correct. It now counts
Edit and Delete in pairs and asserts the two always agree, so adding a group
does not fail a test about button gating.
---
.../views/ConfigurationPoliciesList.vue | 81 ++++++++++++++++++-
plugins/computers/frontend/views/PCDetail.vue | 55 ++++++++++---
.../views/configurationPolicyEditable.spec.js | 20 ++++-
3 files changed, 143 insertions(+), 13 deletions(-)
diff --git a/plugins/computers/frontend/views/ConfigurationPoliciesList.vue b/plugins/computers/frontend/views/ConfigurationPoliciesList.vue
index b5badc89..1e20f339 100644
--- a/plugins/computers/frontend/views/ConfigurationPoliciesList.vue
+++ b/plugins/computers/frontend/views/ConfigurationPoliciesList.vue
@@ -12,7 +12,21 @@
has been configured.
+
+
Shipped policies
+
+ These ship with the product as starting points - one per monitor. You
+ can edit or delete them and your changes are kept, but an upgrade may
+ add new rows here. Deleting one does not stop the monitor it refers to;
+ it only removes this policy's opinion about it.
+