fix: corrections UI — indicateur voute, couleurs, statut IA, spinner éditeur
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:
+15
-11
@@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user