fix: rebuild settings area — Webhooks+Shares after Hidden, all sections visible
- Python section extraction/reorder by HTML comment markers - Order: Search, Recent, Backend, Tags, Sync, Hidden, Webhooks, Shares, Diags, AI, Themes, Profile, About - All 13 IDs present, TOC rebuilt
This commit is contained in:
+189
-189
@@ -1825,7 +1825,7 @@
|
|||||||
|
|
||||||
<!-- Hidden Files/Folders Configuration -->
|
<!-- Hidden Files/Folders Configuration -->
|
||||||
<section class="config-section help-section">
|
<section class="config-section help-section">
|
||||||
<h2 id="cfg-hidden-files" data-i18n="auto.f8ba6127">🗂️ Fichiers cachés</h2>
|
<h2 data-i18n="auto.f8ba6127">🗂️ Fichiers cachés</h2>
|
||||||
<p class="config-description">
|
<p class="config-description">
|
||||||
Contrôlez l'affichage des fichiers/dossiers
|
Contrôlez l'affichage des fichiers/dossiers
|
||||||
cachés (commençant par <code>.</code>) par
|
cachés (commençant par <code>.</code>) par
|
||||||
@@ -1863,8 +1863,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Diagnostics -->
|
<!-- Webhooks -->
|
||||||
<section
|
<section id="cfg-webhooks" class="config-section help-section">
|
||||||
|
<h2>🔔 Webhooks</h2>
|
||||||
<p class="config-description">
|
<p class="config-description">
|
||||||
Notifications HTTP vers des services
|
Notifications HTTP vers des services
|
||||||
externes lors des changements de fichiers.
|
externes lors des changements de fichiers.
|
||||||
@@ -1910,191 +1911,6 @@
|
|||||||
<!-- Graph View Modal -->
|
<!-- Graph View Modal -->
|
||||||
<div class="editor-modal" id="graph-modal">
|
<div class="editor-modal" id="graph-modal">
|
||||||
<div
|
<div
|
||||||
class="config-section help-section"
|
|
||||||
id="cfg-diags"
|
|
||||||
>
|
|
||||||
<h2 data-i18n="config.diagnostics">Diagnostics</h2>
|
|
||||||
<p class="config-description">
|
|
||||||
Statistiques de l'index et du moteur de
|
|
||||||
recherche.
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
id="config-diagnostics"
|
|
||||||
class="config-diagnostics"
|
|
||||||
>
|
|
||||||
<div class="config-diag-loading" data-i18n="common.loading">
|
|
||||||
Chargement...
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<button class="config-btn-secondary"
|
|
||||||
id="cfg-refresh-diag"
|
|
||||||
style="margin-top: 8px" data-i18n="header.refresh">
|
|
||||||
Rafraîchir
|
|
||||||
</button>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Cles API AI -->
|
|
||||||
<section
|
|
||||||
class="config-section help-section"
|
|
||||||
id="cfg-ai"
|
|
||||||
>
|
|
||||||
<h2>🤖 Cles API Intelligence Artificielle</h2>
|
|
||||||
<p class="config-description">
|
|
||||||
Configurez vos cles API. Cliquez sur
|
|
||||||
<strong data-i18n="config.test">Tester</strong> pour charger les
|
|
||||||
modeles.
|
|
||||||
</p>
|
|
||||||
<div class="config-row">
|
|
||||||
<label
|
|
||||||
class="config-label"
|
|
||||||
for="cfg-deepseek-key"
|
|
||||||
>DeepSeek API Key</label
|
|
||||||
>
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
id="cfg-deepseek-key"
|
|
||||||
class="config-input"
|
|
||||||
placeholder="sk-..."
|
|
||||||
autocomplete="off"
|
|
||||||
/>
|
|
||||||
<select
|
|
||||||
id="cfg-deepseek-model"
|
|
||||||
class="config-select"
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
<option value="">-- Modele --</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="config-row">
|
|
||||||
<label
|
|
||||||
class="config-label"
|
|
||||||
for="cfg-openrouter-key"
|
|
||||||
>OpenRouter API Key</label
|
|
||||||
>
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
id="cfg-openrouter-key"
|
|
||||||
class="config-input"
|
|
||||||
placeholder="sk-or-..."
|
|
||||||
autocomplete="off"
|
|
||||||
/>
|
|
||||||
<select
|
|
||||||
id="cfg-openrouter-model"
|
|
||||||
class="config-select"
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
<option value="">-- Modele --</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="config-row">
|
|
||||||
<label
|
|
||||||
class="config-label"
|
|
||||||
for="cfg-gemini-key"
|
|
||||||
>Gemini API Key</label
|
|
||||||
>
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
id="cfg-gemini-key"
|
|
||||||
class="config-input"
|
|
||||||
placeholder="AIza..."
|
|
||||||
autocomplete="off"
|
|
||||||
/>
|
|
||||||
<select
|
|
||||||
id="cfg-gemini-model"
|
|
||||||
class="config-select"
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
<option value="">-- Modele --</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="config-actions-row"
|
|
||||||
style="margin-top: 16px"
|
|
||||||
>
|
|
||||||
<button class="config-btn-save"
|
|
||||||
id="cfg-save-ai-keys" data-i18n="help.shortcut_save">
|
|
||||||
Sauvegarder
|
|
||||||
</button>
|
|
||||||
<button class="config-btn-secondary"
|
|
||||||
id="cfg-test-ai-keys" data-i18n="config.test">
|
|
||||||
Tester
|
|
||||||
</button>
|
|
||||||
<span
|
|
||||||
id="cfg-ai-status"
|
|
||||||
style="
|
|
||||||
font-size: 12px;
|
|
||||||
color: var(--text-muted);
|
|
||||||
margin-left: 12px;
|
|
||||||
"
|
|
||||||
></span>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Themes -->
|
|
||||||
<section
|
|
||||||
class="config-section help-section"
|
|
||||||
id="cfg-themes"
|
|
||||||
>
|
|
||||||
<h2 data-i18n="auto.c14b5603">🎨 Thèmes</h2>
|
|
||||||
<p class="config-description" data-i18n="auto.caac40b9">
|
|
||||||
Choisissez un thème visuel. Chaque thème
|
|
||||||
offre un mode sombre et clair.
|
|
||||||
</p>
|
|
||||||
<div class="theme-grid" id="theme-grid">
|
|
||||||
<div class="config-diag-loading" data-i18n="common.loading">Chargement...</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Profil -->
|
|
||||||
<section
|
|
||||||
class="config-section help-section"
|
|
||||||
id="cfg-profile"
|
|
||||||
>
|
|
||||||
<h2 data-i18n="config.profile">👤 Profil utilisateur</h2>
|
|
||||||
<p class="config-description" data-i18n="config.profile_desc">
|
|
||||||
Préférences personnelles pour personnaliser
|
|
||||||
l'expérience ObsiGate.
|
|
||||||
</p>
|
|
||||||
<div class="profile-form" id="profile-form">
|
|
||||||
<div class="profile-field">
|
|
||||||
<label for="profile-lang" data-i18n="config.lang_label">Langue préférée</label>
|
|
||||||
<select id="profile-lang" class="config-select">
|
|
||||||
<option value="fr">Francais</option>
|
|
||||||
<option value="en">English</option>
|
|
||||||
<option value="es">Espanol</option>
|
|
||||||
<option value="de">Deutsch</option>
|
|
||||||
</select>
|
|
||||||
<span class="profile-hint" data-i18n="config.lang_hint">Utilisée par l'autocomplétion et le ghost text.</span>
|
|
||||||
</div>
|
|
||||||
<div class="profile-field">
|
|
||||||
<label for="profile-name" data-i18n="config.display_name">Nom d'affichage</label>
|
|
||||||
<input type="text" id="profile-name" class="config-input" placeholder="Votre nom" maxlength="60">
|
|
||||||
</div>
|
|
||||||
<button class="config-save-btn" id="profile-save" data-i18n="config.save">Enregistrer</button>
|
|
||||||
<button class="config-save-btn" id="profile-logout" style="background:var(--danger-bg);color:var(--danger);border-color:var(--danger);margin-left:8px" data-i18n="config.logout">Déconnexion</button>
|
|
||||||
<span class="profile-saved" id="profile-saved" style="display:none" data-i18n="config.saved">✓ Sauvegardé</span>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- À propos -->
|
|
||||||
<section
|
|
||||||
class="config-section help-section"
|
|
||||||
id="cfg-about"
|
|
||||||
>
|
|
||||||
<h2 data-i18n="auto.a3319169">📦 À propos</h2>
|
|
||||||
<div
|
|
||||||
id="config-about"
|
|
||||||
class="config-diagnostics"
|
|
||||||
>
|
|
||||||
<div class="config-diag-loading" data-i18n="common.loading">
|
|
||||||
Chargement...
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Webhooks -->
|
|
||||||
<section id="cfg-webhooks" class="config-section help-section">
|
|
||||||
<h2>🔔 Webhooks</h2>
|
|
||||||
class="editor-container"
|
class="editor-container"
|
||||||
style="
|
style="
|
||||||
max-width: 95vw;
|
max-width: 95vw;
|
||||||
@@ -4569,7 +4385,191 @@ curl -X POST https://votre-serveur.com/webhook \
|
|||||||
<strong data-i18n="auto.79f6e1dd">Multi-fenêtres</strong><span data-i18n="help.desc_9cb5974c"> : Ouvrez
|
<strong data-i18n="auto.79f6e1dd">Multi-fenêtres</strong><span data-i18n="help.desc_9cb5974c"> : Ouvrez
|
||||||
plusieurs notes dans des onglets séparés</span></li>
|
plusieurs notes dans des onglets séparés</span></li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section><!-- Diagnostics -->
|
||||||
|
<section
|
||||||
|
class="config-section help-section"
|
||||||
|
id="cfg-diags"
|
||||||
|
>
|
||||||
|
<h2 data-i18n="config.diagnostics">Diagnostics</h2>
|
||||||
|
<p class="config-description">
|
||||||
|
Statistiques de l'index et du moteur de
|
||||||
|
recherche.
|
||||||
|
</p>
|
||||||
|
<div
|
||||||
|
id="config-diagnostics"
|
||||||
|
class="config-diagnostics"
|
||||||
|
>
|
||||||
|
<div class="config-diag-loading" data-i18n="common.loading">
|
||||||
|
Chargement...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<button class="config-btn-secondary"
|
||||||
|
id="cfg-refresh-diag"
|
||||||
|
style="margin-top: 8px" data-i18n="header.refresh">
|
||||||
|
Rafraîchir
|
||||||
|
</button>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Cles API AI -->
|
||||||
|
<section
|
||||||
|
class="config-section help-section"
|
||||||
|
id="cfg-ai"
|
||||||
|
>
|
||||||
|
<h2>🤖 Cles API Intelligence Artificielle</h2>
|
||||||
|
<p class="config-description">
|
||||||
|
Configurez vos cles API. Cliquez sur
|
||||||
|
<strong data-i18n="config.test">Tester</strong> pour charger les
|
||||||
|
modeles.
|
||||||
|
</p>
|
||||||
|
<div class="config-row">
|
||||||
|
<label
|
||||||
|
class="config-label"
|
||||||
|
for="cfg-deepseek-key"
|
||||||
|
>DeepSeek API Key</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
id="cfg-deepseek-key"
|
||||||
|
class="config-input"
|
||||||
|
placeholder="sk-..."
|
||||||
|
autocomplete="off"
|
||||||
|
/>
|
||||||
|
<select
|
||||||
|
id="cfg-deepseek-model"
|
||||||
|
class="config-select"
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<option value="">-- Modele --</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="config-row">
|
||||||
|
<label
|
||||||
|
class="config-label"
|
||||||
|
for="cfg-openrouter-key"
|
||||||
|
>OpenRouter API Key</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
id="cfg-openrouter-key"
|
||||||
|
class="config-input"
|
||||||
|
placeholder="sk-or-..."
|
||||||
|
autocomplete="off"
|
||||||
|
/>
|
||||||
|
<select
|
||||||
|
id="cfg-openrouter-model"
|
||||||
|
class="config-select"
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<option value="">-- Modele --</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="config-row">
|
||||||
|
<label
|
||||||
|
class="config-label"
|
||||||
|
for="cfg-gemini-key"
|
||||||
|
>Gemini API Key</label
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="password"
|
||||||
|
id="cfg-gemini-key"
|
||||||
|
class="config-input"
|
||||||
|
placeholder="AIza..."
|
||||||
|
autocomplete="off"
|
||||||
|
/>
|
||||||
|
<select
|
||||||
|
id="cfg-gemini-model"
|
||||||
|
class="config-select"
|
||||||
|
style="width: 200px"
|
||||||
|
>
|
||||||
|
<option value="">-- Modele --</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="config-actions-row"
|
||||||
|
style="margin-top: 16px"
|
||||||
|
>
|
||||||
|
<button class="config-btn-save"
|
||||||
|
id="cfg-save-ai-keys" data-i18n="help.shortcut_save">
|
||||||
|
Sauvegarder
|
||||||
|
</button>
|
||||||
|
<button class="config-btn-secondary"
|
||||||
|
id="cfg-test-ai-keys" data-i18n="config.test">
|
||||||
|
Tester
|
||||||
|
</button>
|
||||||
|
<span
|
||||||
|
id="cfg-ai-status"
|
||||||
|
style="
|
||||||
|
font-size: 12px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
margin-left: 12px;
|
||||||
|
"
|
||||||
|
></span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Themes -->
|
||||||
|
<section
|
||||||
|
class="config-section help-section"
|
||||||
|
id="cfg-themes"
|
||||||
|
>
|
||||||
|
<h2 data-i18n="auto.c14b5603">🎨 Thèmes</h2>
|
||||||
|
<p class="config-description" data-i18n="auto.caac40b9">
|
||||||
|
Choisissez un thème visuel. Chaque thème
|
||||||
|
offre un mode sombre et clair.
|
||||||
|
</p>
|
||||||
|
<div class="theme-grid" id="theme-grid">
|
||||||
|
<div class="config-diag-loading" data-i18n="common.loading">Chargement...</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Profil -->
|
||||||
|
<section
|
||||||
|
class="config-section help-section"
|
||||||
|
id="cfg-profile"
|
||||||
|
>
|
||||||
|
<h2 data-i18n="config.profile">👤 Profil utilisateur</h2>
|
||||||
|
<p class="config-description" data-i18n="config.profile_desc">
|
||||||
|
Préférences personnelles pour personnaliser
|
||||||
|
l'expérience ObsiGate.
|
||||||
|
</p>
|
||||||
|
<div class="profile-form" id="profile-form">
|
||||||
|
<div class="profile-field">
|
||||||
|
<label for="profile-lang" data-i18n="config.lang_label">Langue préférée</label>
|
||||||
|
<select id="profile-lang" class="config-select">
|
||||||
|
<option value="fr">Francais</option>
|
||||||
|
<option value="en">English</option>
|
||||||
|
<option value="es">Espanol</option>
|
||||||
|
<option value="de">Deutsch</option>
|
||||||
|
</select>
|
||||||
|
<span class="profile-hint" data-i18n="config.lang_hint">Utilisée par l'autocomplétion et le ghost text.</span>
|
||||||
|
</div>
|
||||||
|
<div class="profile-field">
|
||||||
|
<label for="profile-name" data-i18n="config.display_name">Nom d'affichage</label>
|
||||||
|
<input type="text" id="profile-name" class="config-input" placeholder="Votre nom" maxlength="60">
|
||||||
|
</div>
|
||||||
|
<button class="config-save-btn" id="profile-save" data-i18n="config.save">Enregistrer</button>
|
||||||
|
<button class="config-save-btn" id="profile-logout" style="background:var(--danger-bg);color:var(--danger);border-color:var(--danger);margin-left:8px" data-i18n="config.logout">Déconnexion</button>
|
||||||
|
<span class="profile-saved" id="profile-saved" style="display:none" data-i18n="config.saved">✓ Sauvegardé</span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- À propos -->
|
||||||
|
<section
|
||||||
|
class="config-section help-section"
|
||||||
|
id="cfg-about"
|
||||||
|
>
|
||||||
|
<h2 data-i18n="auto.a3319169">📦 À propos</h2>
|
||||||
|
<div
|
||||||
|
id="config-about"
|
||||||
|
class="config-diagnostics"
|
||||||
|
>
|
||||||
|
<div class="config-diag-loading" data-i18n="common.loading">
|
||||||
|
Chargement...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="help-footer">
|
<div class="help-footer">
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
Reference in New Issue
Block a user