I am working on a dataviz with dc.js (http://edouard-legoupil.github.io/3W-Dashboard/)
The main limitation is that when users find a specific fact while they explor
Here are the key methods that you will want to use:
From there it's just a matter of serializing and deserializing the objects.
Here is one way to do that by stringifying a JSON object:
var filters = [];
for (var i = 0; i < dc.chartRegistry.list().length; i++) {
var chart = dc.chartRegistry.list()[i];
for (var j = 0; j < chart.filters().length; j++){
filters.push({ChartID: chart.chartID(), Filter: chart.filters()[j]});
}
}
var urlParam = encodeURIComponent(JSON.stringify(filters));
Here is the reverse process of parsing the JSON string and applying the filters:
var urlParam = ""; //have user input string somehow
var filterObjects = JSON.parse(decodeURIComponent(urlParam));
for (var i = 0; i< filterObjects.length; i++)
{
dc.chartRegistry.list()[filterObjects[i].ChartID-1].filter(filterObjects[i].Filter);
}
dc.redrawAll();
Connecting the two steps will depend on your scenario. You could perhaps save the string to the database or append it as a url param.
This code might be missing some edge cases, but it seems to work for the basic dc.js examples.