diff --git a/packages/grafana-data/src/utils/url.test.ts b/packages/grafana-data/src/utils/url.test.ts index cbcfcb24359..28e70d6fb73 100644 --- a/packages/grafana-data/src/utils/url.test.ts +++ b/packages/grafana-data/src/utils/url.test.ts @@ -22,6 +22,14 @@ describe('toUrlParams', () => { }); expect(url).toBe('server=:@'); }); + + it('should keep booleans', () => { + const url = urlUtil.toUrlParams({ + bool1: true, + bool2: false, + }); + expect(url).toBe('bool1&bool2=false'); + }); }); describe('parseKeyValue', () => { diff --git a/packages/grafana-data/src/utils/url.ts b/packages/grafana-data/src/utils/url.ts index 545c440a762..3e53a71578d 100644 --- a/packages/grafana-data/src/utils/url.ts +++ b/packages/grafana-data/src/utils/url.ts @@ -48,7 +48,8 @@ function toUrlParams(a: any) { if (typeof v !== 'boolean') { s[s.length] = encodeURIComponentAsAngularJS(k, true) + '=' + encodeURIComponentAsAngularJS(v, true); } else { - s[s.length] = encodeURIComponentAsAngularJS(k, true); + const valueQueryPart = v ? '' : '=' + encodeURIComponentAsAngularJS('false', true); + s[s.length] = encodeURIComponentAsAngularJS(k, true) + valueQueryPart; } };