Move GE-Enforce to its own top-level section; fix overflow + input theming

GE-Enforce is a large operational surface (manifest authoring + fleet
compliance), not a setting, and it was squished in the settings two-pane shell.
Promote it to a dedicated full-width top-level section:

- New sidebar entry "GE-Enforce" (plugin get_navigation_items, shield icon,
  auto-gated to the enabled plugin) instead of two Settings > Integrations cards.
- Tabbed shell GeEnforceLayout.vue (Manifests | Enforcement Reports) with
  full-width children under AppLayout, not the narrow settings rail.
- Views moved settings/ -> geenforce/ (ManifestEditor.vue, EnforcementReports.vue).

Theming + overflow fixes (the "chaotic / cut off / different inputs" report):
- Inputs/selects/textareas now match the stock settings look (border, radius,
  --bg, focus color) instead of browser defaults.
- No horizontal overflow: editor grid uses minmax(0,1fr) + min-width:0 on
  children, collapses to one column under 1000px; entry table and reports table
  scroll inside their own overflow-x containers; detail actions wrap.

Verified at 1280px: no page overflow, detail pane + tables fit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2026-07-12 21:12:57 -04:00
parent 0dcd186820
commit 7089a61b50
7 changed files with 1475 additions and 383 deletions

View File

@@ -79,27 +79,15 @@ class GeEnforcePlugin(BasePlugin):
'geenforce'),
]
def get_settings_cards(self) -> List[Dict]:
"""ADR-010: the imaging-PC-type manifest editor settings card."""
def get_navigation_items(self) -> List[Dict]:
"""Top-level sidebar section (GE-Enforce is a large operational surface,
not a mere setting). The tabbed shell hosts Manifests + Reports."""
return [
{
'group': 'Integrations',
'to': '/settings/imagingpctypes',
'icon': 'settings',
'title': 'Imaging PC Types',
'description': 'Edit imaging PC types and their GE-Enforce install '
'manifests (apps, scripts, files, registry, gates); '
'publish, roll back, and simulate.',
'position': 30,
},
{
'group': 'Integrations',
'to': '/settings/enforcementreports',
'icon': 'settings',
'title': 'Enforcement Reports',
'description': 'Fleet compliance: which PCs received the latest '
'manifest and their self-heal / failure results.',
'position': 31,
'name': 'GE-Enforce',
'icon': 'shield',
'route': '/geenforce/manifests',
'position': 46,
},
]