First off, great module. Drupal charting/visualization support seems to be a complete mess: tons of modules, and most of them outdated, or not supported. After sifting through many candidates over the last couple of days, I think I'm going to go with this one for our data visualization needs.

Anyway, I'm just wondering whether it would be possible to support Google's Controls and Dashboards via this module? Right now I've got a clunky Drupal form set up for adjusting ranges and things (see screenshot), but it's a fairly slow solution that requires the form to be re-submitted and the data to be re-fetched from the database... would be great to have ajax controls...

Any thoughts? Is this something you've considered?

Comments

cvangysel’s picture

The idea behind the Visualization API is that it exports a convenient and simple API for visualization and that the library powering the charts does not have any impact on API usage.

Ideally that means that if a user adds these controls to a chart when the API is not using Google Visualization API as its backend (if the backend does not support custom filtering), the API falls back on the method shown off in your screenshot. If you'd implement this, I'd first of all like to see separate theming functions that accomplish this (so that the functionality can be addressed using code) and also Views handlers (filters and such) that expose this functionality through the Views API.

It's possible to do this, but it will require some work and refactoring.

Niremizov’s picture

Issue summary: View changes

Hm, controls seems more like an extra option. Each charts library could have some extra options.

So, our interface should have some extraOptions() method. This method should return a list of additional options that can be configured.
And extraOptionsProcess() method that would make appropriate chages during chart rendering.

Than inside views visualization_plugin_style::options_form() and option_definition() we can direct the control flow to currently enabled Visualization Library, possible to this extraOptions() method and output form for extraOptions.