Skip to content

Commit e88a8fe

Browse files
committed
Take existing URL parameters into account when generating links in compare page
1 parent 9599606 commit e88a8fe

File tree

1 file changed

+16
-22
lines changed

1 file changed

+16
-22
lines changed

site/static/compare/script.js

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
function getQueryParams() {
2+
return new URLSearchParams(window.location.search);
3+
}
4+
15
function findQueryParam(name) {
2-
const params = new URLSearchParams(window.location.search.slice(1));
6+
const params = getQueryParams();
37
return params.get(name);
48
}
59

@@ -32,7 +36,7 @@ function createDefaultFilter() {
3236
*/
3337
function initializeFilterFromUrl() {
3438
const defaultFilter = createDefaultFilter();
35-
const params = new URLSearchParams(window.location.search.slice(1));
39+
const params = getQueryParams();
3640

3741
function getBoolOrDefault(name, defaultValue) {
3842
const urlValue = params.get(name);
@@ -70,7 +74,7 @@ function initializeFilterFromUrl() {
7074
*/
7175
function storeFilterToUrl(filter) {
7276
const defaultFilter = createDefaultFilter();
73-
const params = new URLSearchParams(window.location.search);
77+
const params = getQueryParams();
7478

7579
function storeOrReset(name, value, defaultValue) {
7680
if (value === defaultValue) {
@@ -361,10 +365,9 @@ const app = Vue.createApp({
361365
return result;
362366
},
363367
createUrlForMetric(metric) {
364-
let start = findQueryParam("start");
365-
let end = findQueryParam("end");
366-
367-
return createUrlFromParams(createSearchParamsForMetric(metric, start, end));
368+
const params = getQueryParams();
369+
params.set("stat", metric);
370+
return createUrlFromParams(params);
368371
},
369372
resetFilter() {
370373
this.filter = createDefaultFilter();
@@ -767,20 +770,6 @@ function makeData(state, app) {
767770
});
768771
}
769772

770-
function createSearchParamsForMetric(stat, start, end) {
771-
let params = new URLSearchParams();
772-
if (start !== undefined) {
773-
params.append("start", start);
774-
}
775-
if (end !== undefined) {
776-
params.append("end", end);
777-
}
778-
if (stat !== undefined) {
779-
params.append("stat", stat);
780-
}
781-
return params.toString();
782-
}
783-
784773
function createUrlFromParams(params) {
785774
const url = new URL(window.location);
786775
url.search = params;
@@ -791,7 +780,12 @@ function submitSettings() {
791780
let stat = getSelected("stats");
792781
let start = document.getElementById("start-bound").value;
793782
let end = document.getElementById("end-bound").value;
794-
let params = createSearchParamsForMetric(stat, start, end);
783+
784+
const params = getQueryParams();
785+
params.set("stat", stat);
786+
params.set("start", start);
787+
params.set("end", end);
788+
795789
window.location.search = params.toString();
796790
}
797791

0 commit comments

Comments
 (0)