Skip to content

Commit 7ba0c3f

Browse files
Merge pull request #85 from GSA/bugfix/catalog-query-parse
paster front-end-build
2 parents c4c7a23 + 074875d commit 7ba0c3f

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

ckan/public/base/javascript/view-filters.min.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
String.prototype.queryStringToJSON=String.prototype.queryStringToJSON||function()
2-
{var params=String(this);params=params.substring(params.indexOf('?')+1);params=params.replace(/\+/g,'%20');if(params.substring(0,1)==='{'&&params.substring(params.length-1)==='}')
3-
{return eval(decodeURIComponent(params));}
4-
params=params.split(/\&(amp\;)?/);var json={};for(var i=0,n=params.length;i<n;++i)
2+
{var params=String(this);params=params.substring(params.indexOf('?')+1);params=params.replace(/\+/g,'%20');try{return JSON.parse(decodeURIComponent(params));}catch{params=params.split(/\&(amp\;)?/);}
3+
var json={};for(var i=0,n=params.length;i<n;++i)
54
{var param=params[i]||null;if(param===null){continue;}
65
param=param.split('=');if(param===null){continue;}
76
var key=param[0]||null;if(key===null){continue;}
87
if(typeof param[1]==='undefined'){continue;}
98
var value=param[1];key=decodeURIComponent(key);value=decodeURIComponent(value);var keys=key.split('.');if(keys.length===1)
109
{json[key]=value;}
1110
else
12-
{var path='',cmd='';$.each(keys,function(ii,key){path+='["'+key.replace(/"/g,'\\"')+'"]';jsonCLOSUREGLOBAL=json;cmd='if ( typeof jsonCLOSUREGLOBAL'+path+' === "undefined" ) jsonCLOSUREGLOBAL'+path+' = {}';eval(cmd);json=jsonCLOSUREGLOBAL;delete jsonCLOSUREGLOBAL;});jsonCLOSUREGLOBAL=json;valueCLOSUREGLOBAL=value;cmd='jsonCLOSUREGLOBAL'+path+' = valueCLOSUREGLOBAL';eval(cmd);json=jsonCLOSUREGLOBAL;delete jsonCLOSUREGLOBAL;delete valueCLOSUREGLOBAL;}}
11+
{var setNestedKey=function(obj,path,value){if(path.length===1){obj[path]=value
12+
return}
13+
if(typeof obj[path[0]]==='undefined'){obj[path[0]]={}}
14+
return setNestedKey(obj[path[0]],path.slice(1),value)}
15+
setNestedKey(json,keys,value);}}
1316
return json;};this.ckan=this.ckan||{};this.ckan.views=this.ckan.views||{};this.ckan.views.filters=(function(queryString){'use strict';var api={get:get,set:set,setAndRedirectTo:setAndRedirectTo,unset:unset,_searchParams:{},_initialize:_initialize,_setLocationHref:_setLocationHref,};function get(filterName){var filters=api._searchParams.filters||{};if(filterName){return filters[filterName];}else{return filters;}}
1417
function set(name,value){var url=window.location.href;setAndRedirectTo(name,value,url);}
1518
function setAndRedirectTo(name,value,url){api._searchParams.filters=api._searchParams.filters||{};api._searchParams.filters[name]=value;_redirectTo(url);return api;}

0 commit comments

Comments
 (0)