feat: finalisation éditeur Forge + mode hors-ligne PWA + consolidation roadmap
- Forge: Tab indent, Ctrl+K, auto-focus, AI status, messages erreur FR - Forge: slash commands clean, cache-bust iframe, preview serveur - Forge: iframe 82vh, hauteur auto, table inline, sélecteur langage - PWA hors-ligne: IndexedDB (offline-db.js + offline.js) - Mermaid: thème dark complet, highlight.js preview - Backend: màj CSP, rename chain, bookmarks/history/shares - Roadmap: consolidation dans docs/ROADMAP.md (75 items) - Infra: docker-compose.podman.yml, suppression test-vault - .gitignore: exclusion odysseus/
This commit is contained in:
@@ -3,6 +3,7 @@ import { api } from './auth.js';
|
||||
import { state } from './state.js';
|
||||
import { safeCreateIcons } from './utils.js';
|
||||
import { showLoading, el, hideProgressBar, showWelcome, highlightSearchText, loadSavedSearches } from './viewer.js';
|
||||
import { searchOffline } from './offline.js';
|
||||
import { _getEffective } from './config.js';
|
||||
import { TabManager, showToast } from './ui.js';
|
||||
import { addTagFilter, buildSearchResultsHeader, shouldDisplayPath, removeTagFilter, TagFilterService } from './sidebar.js';
|
||||
@@ -804,6 +805,27 @@ export async function performAdvancedSearch(query, vaultFilter, tagFilter, offse
|
||||
clearTimeout(timeoutId);
|
||||
if (err.name === "AbortError") return;
|
||||
if (searchId !== state.currentSearchId) return;
|
||||
|
||||
// Try offline search fallback
|
||||
console.log('[Search] Network failed, trying offline search');
|
||||
const offlineResults = await searchOffline(query, vaultFilter);
|
||||
if (offlineResults && offlineResults.length > 0) {
|
||||
const data = {
|
||||
query: query,
|
||||
vault_filter: vaultFilter,
|
||||
count: offlineResults.length,
|
||||
total: offlineResults.length,
|
||||
offset: 0,
|
||||
limit: effectiveLimit,
|
||||
results: offlineResults,
|
||||
offline: true
|
||||
};
|
||||
state.advancedSearchTotal = offlineResults.length;
|
||||
state.advancedSearchOffset = 0;
|
||||
renderAdvancedSearchResults(data, query, tagFilter);
|
||||
return;
|
||||
}
|
||||
|
||||
showWelcome();
|
||||
} finally {
|
||||
hideProgressBar();
|
||||
|
||||
Reference in New Issue
Block a user