VulpesOS/gaia/apps/settings/js/panels/search/search.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

54 lines
1.3 KiB
JavaScript
Executable file

'use strict';
define(function(require) {
require('shared/format');
var SearchProvider = require('shared/search_provider');
function Search() {
this._searchEngineSelect = null;
}
Search.prototype.init = function(searchEngineSelect) {
this._searchEngineSelect = searchEngineSelect;
SearchProvider.ready().then(() => {
this.drawProviders();
// Listen for updates as the providers may be updated
// within the search app
SearchProvider.providerUpdated(this.drawProviders.bind(this));
});
};
/**
* Generate <options> for the search engine <select> element.
*/
Search.prototype.drawProviders = function() {
if (!this._searchEngineSelect) {
return;
}
this._searchEngineSelect.innerHTML = '';
var selectFragment = document.createDocumentFragment();
var optionNode = document.createElement('option');
var providers = SearchProvider.providers();
Object.keys(providers).forEach(function(provider) {
var option = optionNode.cloneNode();
option.value = provider;
option.text = providers[provider].title;
if (provider === SearchProvider.selected()) {
option.selected = true;
}
selectFragment.appendChild(option);
});
this._searchEngineSelect.appendChild(selectFragment);
};
return function() {
return new Search();
};
});