Skip to content

Commit 6be9ab1

Browse files
committed
Built function to handle URLs and parameters.
1 parent 6fdeb34 commit 6be9ab1

File tree

1 file changed

+14
-9
lines changed
  • django_responsive_tables2/static/django_responsive_tables2

1 file changed

+14
-9
lines changed

django_responsive_tables2/static/django_responsive_tables2/tables.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,7 @@ function updateHeaders(tableId, url, tableElement) {
66
for (let y = 0; y < headerLinks.length; y++) {
77
headerLinks[y].onclick = function(e) {
88
e.preventDefault();
9-
sortParameters = decodeParameters(headerLinks[y].getAttribute('href'));
10-
urlParameters = decodeParameters(url);
11-
for (const [key, value] of Object.entries(sortParameters)) {
12-
urlParameters[key] = value;
13-
}
14-
url = clearParameters(url) + encodeParameters(urlParameters);
9+
url = buildUrl(url, decodeParameters(headerLinks[y].getAttribute('href')));
1510
updateTable(tableId, url);
1611
};
1712
}
@@ -31,9 +26,8 @@ function updateTable(tableId, url, search=null) {
3126
}
3227
};
3328
if (search) {
34-
urlParameters = decodeParameters(url);
35-
urlParameters["search"] = search;
36-
url = clearParameters(url) + encodeParameters(urlParameters);
29+
let searchParam = {"search": search};
30+
url = buildUrl(url, searchParam);
3731
}
3832
xhr.open('GET', url, true);
3933
xhr.send();
@@ -73,4 +67,15 @@ function clearParameters(url) {
7367
split = url.split("?");
7468
if (split.length > 1) return split[0];
7569
else return url;
70+
}
71+
72+
function buildUrl(url, params, keep_params=true) {
73+
let new_params = { };
74+
if (keep_params==true) new_params = decodeParameters(url);
75+
76+
for (const [key, value] of Object.entries(params)) {
77+
new_params[key] = value;
78+
}
79+
80+
return clearParameters(url) + encodeParameters(new_params);
7681
}

0 commit comments

Comments
 (0)