summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-05-16 08:18:53 +0000
committerFilipa Lacerda <filipa@gitlab.com>2017-05-16 08:18:53 +0000
commit17806d7619e3bcf9c006788d65ea85d56c34bc14 (patch)
tree1eab7b80a20075aba9d2e1e76ec5a597f447ea6a
parentfefd331c2a7f2da2ed23d9be6667fdd9cd782092 (diff)
parent45790564769efa860b48166e86e770fc4b44dcf5 (diff)
downloadgitlab-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.js5
-rw-r--r--spec/javascripts/lib/utils/common_utils_spec.js10
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', () => {