@@ -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