Odysseus v1.0
This commit is contained in:
52
static/js/search.js
Normal file
52
static/js/search.js
Normal file
@@ -0,0 +1,52 @@
|
||||
// static/js/search.js
|
||||
|
||||
/**
|
||||
* Search settings management — reads active provider from admin settings.
|
||||
*/
|
||||
|
||||
let API_BASE = '';
|
||||
let _provider = 'searxng';
|
||||
let _loaded = false;
|
||||
|
||||
export function init(apiBase) {
|
||||
API_BASE = apiBase;
|
||||
// Fetch provider on init so it's ready when chat needs it
|
||||
_fetchProvider();
|
||||
}
|
||||
|
||||
async function _fetchProvider() {
|
||||
try {
|
||||
const res = await fetch((API_BASE || '') + '/api/auth/settings', { credentials: 'same-origin' });
|
||||
const s = await res.json();
|
||||
_provider = s.search_provider || 'searxng';
|
||||
_loaded = true;
|
||||
} catch (e) { /* keep default */ }
|
||||
}
|
||||
|
||||
export function getCurrentProvider() {
|
||||
return _provider;
|
||||
}
|
||||
|
||||
const _labels = {
|
||||
searxng: 'SearXNG', brave: 'Brave', duckduckgo: 'DuckDuckGo',
|
||||
google_pse: 'Google', tavily: 'Tavily', serper: 'Serper',
|
||||
disabled: 'search (disabled)',
|
||||
};
|
||||
|
||||
export function getProviderLabel() {
|
||||
return _labels[_provider] || _provider;
|
||||
}
|
||||
|
||||
/** Re-fetch after admin saves new settings */
|
||||
export function refresh() {
|
||||
_fetchProvider();
|
||||
}
|
||||
|
||||
const searchModule = {
|
||||
init,
|
||||
getCurrentProvider,
|
||||
getProviderLabel,
|
||||
refresh
|
||||
};
|
||||
|
||||
export default searchModule;
|
||||
Reference in New Issue
Block a user