Today I faced a similar challenge, but I did not want to specifically set all possible tokens.
So I wrote it in a generic way so that all params are set as tokens in my django dashboard.
The function getQueryParams was inspired by the following Stackoverflow answer: stackoverflow.com/a/1099670
EDIT: Just Updated it, so it can handle arrays for my CheckboxGroupView to work correctly.
Example URL: localhost:8000/dj/en-us/myDjangoApp/page1/?example_checkbox_token=[2,4,5]
{% block js %}
<script>
var deps = [
"splunkjs/ready!"
];
require(deps, function(mvc) {
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {};
var tokens;
var i=0;
var re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[i] = {};
params[i].name = decodeURIComponent(tokens[1]);
var param_value = decodeURIComponent(tokens[2]);
if(param_value.search(/\[.*\]/) >= 0) { // then it's an array
params[i].value = JSON.parse(param_value);
} else {
params[i].value = param_value;
}
params[params[i].name] = params[i].value;
i++;
}
params.length = i;
return params;
};
var params = getQueryParams(document.location.search);
for (var i=0;i<params.length;i++) {
splunkjs.mvc.Components.getInstance("default").set(params[i].name, params[i].value);
};
});
</script>
{% endblock js %}
... View more