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. +

Loading...
+
+ +
+

Site policies

+
Loading...
+