@@ -111,57 +111,56 @@ async function runQueryByID(query) {
111111 * set queryParams as a json object containing the query parameters
112112 */
113113function parseQueryParams ( ) {
114- const url = location . search ;
115- const query = url . substr ( 1 ) ;
116- const result = { global : { } , templateFields : { } } ;
117- query . split ( '&' ) . forEach ( ( param ) => {
118- const item = param . split ( '=' ) ;
119- const parameter = getParameter ( item ) ;
120- if ( parameter ) {
121- if ( parameter . type === 'global' ) {
122- result . global [ decodeURIComponent ( parameter . key ) ] = parameter . value ;
123- } else if ( parameter . type === 'templateField' ) {
124- result . templateFields [ decodeURIComponent ( parameter . key ) ] = parameter . value ;
125- }
126- }
127- } ) ;
128- queryParams = result ;
114+ const result = { global : { } , templateFields : { } } ;
115+ const parameters = new URLSearchParams ( location . search ) ;
116+ parameters . forEach ( ( value , key ) => {
117+ const parameter = getParameter ( value , key ) ;
118+ if ( parameter ) {
119+ if ( parameter . type === 'global' ) {
120+ result . global [ decodeURIComponent ( parameter . key ) ] = parameter . value ;
121+ } else if ( parameter . type === 'templateField' ) {
122+ result . templateFields [ decodeURIComponent ( parameter . key ) ] = parameter . value ;
123+ }
124+ }
125+ } ) ;
126+ queryParams = result ;
129127}
130128
131129/**
132130 * check if the query-param is allowed
133- * @param item
134- */
135- function getParameter ( item ) {
136- const allowedParams = {
137- oneOf : [
138- 'sourceKey' ,
139- 'limit ',
140- 'queryId ',
141- 'queryName'
142- ] ,
143- startWith : [
144- 'param_number_' ,
145- 'param_ids_ ',
146- 'param_string_'
147- ]
148- } ;
149- const decodedValue = decodeURIComponent ( item [ 1 ] ) ;
150- if ( allowedParams . oneOf . includes ( item [ 0 ] ) ) {
151- return { key : item [ 0 ] , value : decodedValue , type : 'global' } ;
152- } else {
153- const prefix = allowedParams . startWith . find ( ( prefix ) => item [ 0 ] . startsWith ( prefix ) ) ;
154- switch ( prefix ) {
155- case 'param_number_' :
156- return { key : item [ 0 ] . replace ( 'param_number_' , '' ) , value : + decodedValue , type : 'templateField' } ;
157- case 'param_ids_' :
158- return { key : item [ 0 ] . replace ( 'param_ids_' , '' ) , value : decodedValue , type : 'templateField' } ;
159- case 'param_string_' :
160- return { key : item [ 0 ] . replace ( 'param_string_' , '' ) , value : decodedValue , type : 'templateField' } ;
161- default :
162- return false ;
163- }
131+ * @param value
132+ * @param key
133+ */
134+ function getParameter ( value , key ) {
135+ const allowedParams = {
136+ oneOf : [
137+ 'sourceKey ',
138+ 'limit ',
139+ 'queryId' ,
140+ 'queryName'
141+ ] ,
142+ startWith : [
143+ 'param_number_ ',
144+ 'param_ids_' ,
145+ 'param_string_'
146+ ]
147+ } ;
148+ const decodedValue = decodeURIComponent ( value ) ;
149+ if ( allowedParams . oneOf . includes ( key ) ) {
150+ return { key : key , value : decodedValue , type : 'global' } ;
151+ } else {
152+ const prefix = allowedParams . startWith . find ( ( prefix ) => key . startsWith ( prefix ) ) ;
153+ switch ( prefix ) {
154+ case 'param_number_' :
155+ return { key : key . replace ( 'param_number_' , '' ) , value : + decodedValue , type : 'templateField' } ;
156+ case 'param_ids_' :
157+ return { key : key . replace ( 'param_ids_' , '' ) , value : decodedValue , type : 'templateField' } ;
158+ case 'param_string_' :
159+ return { key : key . replace ( 'param_string_' , '' ) , value : decodedValue , type : 'templateField' } ;
160+ default :
161+ return false ;
164162 }
163+ }
165164}
166165
167166/**
0 commit comments