diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-05-16 08:18:53 +0000 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-05-16 08:18:53 +0000 |
commit | 17806d7619e3bcf9c006788d65ea85d56c34bc14 (patch) | |
tree | 1eab7b80a20075aba9d2e1e76ec5a597f447ea6a | |
parent | fefd331c2a7f2da2ed23d9be6667fdd9cd782092 (diff) | |
parent | 45790564769efa860b48166e86e770fc4b44dcf5 (diff) | |
download | gitlab-ce-17806d7619e3bcf9c006788d65ea85d56c34bc14.tar.gz |
Merge branch 'issue-boards-label-filtering' into 'master'
Fixed issue boards not filtering when URL params are encoded
Closes #32084
See merge request !11320
-rw-r--r-- | app/assets/javascripts/lib/utils/common_utils.js | 5 | ||||
-rw-r--r-- | spec/javascripts/lib/utils/common_utils_spec.js | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/app/assets/javascripts/lib/utils/common_utils.js b/app/assets/javascripts/lib/utils/common_utils.js index 2f682fbd2fb..7e62773ae6c 100644 --- a/app/assets/javascripts/lib/utils/common_utils.js +++ b/app/assets/javascripts/lib/utils/common_utils.js @@ -135,7 +135,10 @@ gl.utils.getUrlParamsArray = function () { // We can trust that each param has one & since values containing & will be encoded // Remove the first character of search as it is always ? - return window.location.search.slice(1).split('&'); + return window.location.search.slice(1).split('&').map((param) => { + const split = param.split('='); + return [decodeURI(split[0]), split[1]].join('='); + }); }; gl.utils.isMetaKey = function(e) { diff --git a/spec/javascripts/lib/utils/common_utils_spec.js b/spec/javascripts/lib/utils/common_utils_spec.js index 5eb147ed888..42a9067ade5 100644 --- a/spec/javascripts/lib/utils/common_utils_spec.js +++ b/spec/javascripts/lib/utils/common_utils_spec.js @@ -41,6 +41,16 @@ require('~/lib/utils/common_utils'); const paramsArray = gl.utils.getUrlParamsArray(); expect(paramsArray[0][0] !== '?').toBe(true); }); + + it('should decode params', () => { + history.pushState('', '', '?label_name%5B%5D=test'); + + expect( + gl.utils.getUrlParamsArray()[0], + ).toBe('label_name[]=test'); + + history.pushState('', '', '?'); + }); }); describe('gl.utils.handleLocationHash', () => { |