diff --git a/packages/grafana-runtime/src/config.ts b/packages/grafana-runtime/src/config.ts index 23c5d048e56..d3a0d515679 100644 --- a/packages/grafana-runtime/src/config.ts +++ b/packages/grafana-runtime/src/config.ts @@ -153,7 +153,27 @@ export class GrafanaBootConfig implements GrafanaConfig { if (this.dateFormats) { systemDateFormats.update(this.dateFormats); } + + overrideFeatureTogglesFromUrl(this); + } +} + +function overrideFeatureTogglesFromUrl(config: GrafanaBootConfig) { + if (window.location.href.indexOf('__feature') === -1) { + return; } + + const params = new URLSearchParams(window.location.search); + params.forEach((value, key) => { + if (key.startsWith('__feature.')) { + const featureName = key.substring(10); + const toggleState = value === 'true'; + if (toggleState !== config.featureToggles[key]) { + config.featureToggles[featureName] = toggleState; + console.log(`Setting feature toggle ${featureName} = ${toggleState}`); + } + } + }); } const bootData = (window as any).grafanaBootData || { diff --git a/public/app/features/search/service/searcher.ts b/public/app/features/search/service/searcher.ts index c61ed5bc552..ddc0ebfd51f 100644 --- a/public/app/features/search/service/searcher.ts +++ b/public/app/features/search/service/searcher.ts @@ -8,9 +8,7 @@ let searcher: GrafanaSearcher | undefined = undefined; export function getGrafanaSearcher(): GrafanaSearcher { if (!searcher) { - const useBluge = - config.featureToggles.panelTitleSearch && // set in system configs - window.location.search.indexOf('index=sql') < 0; // or URL override + const useBluge = config.featureToggles.panelTitleSearch; searcher = useBluge ? new BlugeSearcher() : new SQLSearcher(); } return searcher!;