v0.1.4-pre.010

This commit is contained in:
2026-08-16 15:04:58 +02:00
parent cb10fd354b
commit f0f2954236
17 changed files with 1007 additions and 22 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: crates/ksp-app-config-desk/frontend/main.html -->
<!-- version: 4 -->
<!-- version: 5 -->
<!DOCTYPE html>
<html lang="fr">
@@ -116,6 +116,94 @@
<div id="documentsStatus" class="alert alert-primary mb-0" role="status" aria-live="polite">Chargement de l'inventaire Config...</div>
</section>
<section id="profilesPanel" hidden aria-label="Profils Config">
<div class="d-flex flex-wrap gap-3 align-items-end justify-content-between mb-3">
<div class="flex-grow-1">
<h2 class="h5 mb-2">Inspection des profils</h2>
<p class="text-body-secondary small mb-3">La sélection, la fusion global/profil et la résolution environnementale restent sous contrôle de ksp-config-lib.</p>
<div class="row g-2">
<div class="col-xl-6">
<label class="form-label" for="profileDocumentSelect">Document Config</label>
<select id="profileDocumentSelect" class="form-select" disabled></select>
</div>
<div class="col-xl-6">
<label class="form-label" for="profileIdSelect">Profil inspecté</label>
<select id="profileIdSelect" class="form-select" disabled></select>
</div>
</div>
</div>
<div class="d-flex flex-wrap gap-2">
<button id="inspectDefaultProfile" class="btn btn-outline-secondary btn-sm" type="button">Profil par défaut</button>
<button id="reloadProfileDetail" class="btn btn-outline-secondary btn-sm" type="button">Recharger</button>
<button id="refreshProfiles" class="btn btn-outline-primary btn-sm" type="button">
<i class="fa-solid fa-rotate me-1" aria-hidden="true"></i>
Rafraîchir
</button>
</div>
</div>
<section id="profileDetailPanel" hidden class="border rounded p-3 mb-4 bg-body-tertiary" aria-label="Détail du profil Config">
<dl class="row small mb-4 app-profile-metadata">
<dt class="col-lg-3">file_id</dt>
<dd id="profileDetailFileId" class="col-lg-9"></dd>
<dt class="col-lg-3">Path résolu</dt>
<dd id="profileDetailPath" class="col-lg-9"></dd>
<dt class="col-lg-3">default_profile</dt>
<dd id="profileDetailDefault" class="col-lg-9"></dd>
<dt class="col-lg-3">Profil sélectionné</dt>
<dd id="profileDetailSelected" class="col-lg-9"></dd>
<dt class="col-lg-3">Source de sélection</dt>
<dd id="profileDetailSelectionSource" class="col-lg-9"></dd>
<dt class="col-lg-3 mb-0">Sensibilité effective</dt>
<dd id="profileDetailSensitivity" class="col-lg-9 mb-0"></dd>
</dl>
<div class="row g-3 mb-4">
<div class="col-xxl-4">
<h3 class="h6">Globals source</h3>
<pre id="profileGlobalsJson" class="app-profile-json mb-0"></pre>
</div>
<div class="col-xxl-4">
<h3 class="h6">Profil source</h3>
<pre id="profileSourceJson" class="app-profile-json mb-0"></pre>
</div>
<div class="col-xxl-4">
<h3 class="h6">Effective sûre</h3>
<pre id="profileEffectiveJson" class="app-profile-json mb-0"></pre>
</div>
</div>
<div class="row g-3">
<div class="col-xl-5">
<h3 class="h6">Provenance top-level</h3>
<div class="table-responsive">
<table id="profileOriginsTable" class="table table-sm table-striped align-middle mb-0">
<thead>
<tr><th scope="col">Clé</th><th scope="col">Origine</th></tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
<div class="col-xl-7">
<h3 class="h6">Provenance environnement</h3>
<div class="table-responsive">
<table id="profileEnvironmentProvenanceTable" class="table table-sm table-striped align-middle mb-0">
<thead>
<tr><th scope="col">JSON Pointer</th><th scope="col">Variable</th><th scope="col">Source</th><th scope="col">Sensibilité</th></tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
<div class="form-text mt-3">L'effective affichée utilise exclusivement la représentation sûre/redacted de Config ; aucune valeur réelle Secret n'est projetée.</div>
</section>
<div id="profilesStatus" class="alert alert-primary mb-0" role="status" aria-live="polite">Chargement des profils Config...</div>
</section>
<section id="placeholderPanel" hidden aria-live="polite">
<div class="alert alert-secondary mb-4" role="status">
Cette route du shell est prête ; son contenu fonctionnel sera ajouté dans la prerelease prévue par le plan 0.1.4.