fix: corrections UI — indicateur voute, couleurs, statut IA, spinner éditeur
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in 11s

1. Suppression du badge vault-context-pill doublon en mobile
2. Couleurs dynamiques indicateur header:
   - Bleu pour 'All' (.vault-ctx-all)
   - Mauve/violet pour les vaults (.vault-ctx-vault)
   - Jaune/ambre pour les répertoires (.vault-ctx-dir)
3. Statut IA: vérifie la présence du toolbar AI dans le DOM
   au lieu d'appeler /api/ai/status (qui ne fonctionnait pas)
4. Indicateur de traitement AI dans l'éditeur (spinner + badge
   'AI...' dans le header de l'editor modal) au lieu du flash
   blanc sur le badge sync
This commit is contained in:
2026-06-04 08:31:32 -04:00
parent 90dffdf26c
commit b077c24bf1
4 changed files with 117 additions and 30 deletions
+15 -11
View File
@@ -339,15 +339,15 @@ function _renderSyncPanel(panel) {
let _aiProcessing = false;
let _aiConfigured = null; // null = unknown, true/false
/** Check if AI is configured by calling the status endpoint. */
async function _checkAIStatus() {
try {
const resp = await api('/api/ai/status');
console.log('[AI Status] API response:', resp);
_aiConfigured = !!(resp && resp.configured);
} catch (e) {
console.error('[AI Status] API call failed:', e);
_aiConfigured = false;
/** Check if AI is configured by looking for the AI toolbar in the DOM.
* The toolbar is only rendered when the AI API responds successfully. */
function _checkAIStatus() {
const container = document.getElementById('ai-toolbar-container');
if (container && container.children.length > 0) {
_aiConfigured = true;
} else if (_aiConfigured === null) {
// Keep unknown state until we have evidence
_aiConfigured = null;
}
}
@@ -404,7 +404,10 @@ function _updateAIStatusInPanel() {
}
}
/** Flash the sync badge white during AI processing. */
/** Flash the sync badge white during AI processing.
* NOTE: now handled via CSS class on #sync-badge.
* The visual flash in the editor itself is handled by ai.js
* which adds a processing indicator inline. */
function _setBadgeAIProcessing(active) {
const badge = document.getElementById('sync-badge');
if (!badge) return;
@@ -435,7 +438,8 @@ function _initAIStatus() {
if (badge) {
const origClick = badge.onclick;
badge.addEventListener('click', () => {
_checkAIStatus().then(() => _updateAIStatusInPanel());
_checkAIStatus();
_updateAIStatusInPanel();
}, { once: false });
}
}