CI / test (push) Successful in 1m53s
- Comptes en base (PBKDF2), rôles, désactivation qui tue la session, audit ; secours environnement pour l'opérateur ; liaison draco par utilisateur ; page /profile. - Espaces de travail : connexions, membres, sélection de projets ; board/notes/épingles/journal scopés par espace ; sélecteur d'espace, badge connexion. - Panneaux /admin (utilisateurs, connexions, espaces, paramètres — l'environnement amorce, le panneau gouverne). - /archives : archive locale réversible, archivage forge confirmé, purge de l'état local, export Markdown, file « à archiver ? » avec archivage en lot. - Correctif session : les comptes membres résolus par la base (la session n'est plus limitée à l'opérateur d'environnement). - 231 tests verts (12 nouveaux au palier 19).
44 lines
2.5 KiB
HTML
44 lines
2.5 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr" data-theme="dark">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="csrf-token" content="{{ csrf_token }}">
|
|
<title>Paramètres — Administration — Kanbante</title>
|
|
<link rel="stylesheet" href="/static/css/style.css?v={{ version }}">
|
|
</head>
|
|
<body>
|
|
{% include "_header.html" %}
|
|
|
|
<main class="focus-main">
|
|
<div class="page-head">
|
|
<h1>🎛️ Paramètres</h1>
|
|
<p class="page-sub"><strong>L'environnement amorce, le panneau gouverne.</strong> Une valeur saisie ici remplace celle de l'environnement (sans redémarrage pour la plupart) ; un champ vidé revient à la valeur d'environnement. Les secrets et les réglages d'amorçage (base de données, clé maître, session, draco) restent en environnement, volontairement.</p>
|
|
</div>
|
|
{% if msg %}<p class="chip-ok">✅ {{ msg }}</p>{% endif %}
|
|
{% if err %}<p class="chip-warn">⚠️ {{ err }}</p>{% endif %}
|
|
|
|
<section class="briefing-card">
|
|
<form method="post" action="/admin/settings">
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
<table class="proj-table">
|
|
<thead><tr><th>Réglage</th><th>Environnement</th><th>Valeur du panneau (vide = env)</th><th>Effectif</th></tr></thead>
|
|
<tbody>
|
|
{% for r in rows %}
|
|
<tr>
|
|
<td><code>{{ r.key }}</code></td>
|
|
<td class="muted">{{ r.env_value }}</td>
|
|
<td><input type="text" name="setting_{{ r.key }}" value="{{ r.override if r.override is not none else '' }}" placeholder="{{ r.env_value }}"></td>
|
|
<td><strong>{{ r.effective }}</strong></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<p><button type="submit" class="btn-save btn-inline">Enregistrer</button></p>
|
|
</form>
|
|
<p class="notes-hint">Booléens : <code>true</code>/<code>false</code>. <code>cache_ttl</code> s'applique aux connexions construites après l'enregistrement ; l'intervalle des instantanés est relu à chaque cycle. Les horaires (<code>briefing_time</code>, <code>digest_time</code>) sont au format <code>HH:MM</code>, <code>digest_weekday</code> : 0 = lundi.</p>
|
|
</section>
|
|
</main>
|
|
</body>
|
|
</html>
|