public function beforeGenericFiltersAreAppliedToLoadedDataTable()
{
$this->config->datatable_css_class = 'dataTableVizAllColumns';
$this->dataTable->filter('AddColumnsProcessedMetrics');
$properties = $this->config;
$this->dataTable->filter(function (DataTable $dataTable) use($properties) {
$columnsToDisplay = array('label', 'nb_visits');
$columns = $dataTable->getColumns();
if (in_array('nb_uniq_visitors', $columns)) {
$columnsToDisplay[] = 'nb_uniq_visitors';
}
if (in_array('nb_users', $columns)) {
$columnsToDisplay[] = 'nb_users';
}
$columnsToDisplay = array_merge($columnsToDisplay, array('nb_actions', 'nb_actions_per_visit', 'avg_time_on_site', 'bounce_rate'));
// only display conversion rate for the plugins that do not provide "per goal" metrics
// otherwise, conversion rate is meaningless as a whole (since we don't process 'cross goals' conversions)
if (!$properties->show_goals) {
$columnsToDisplay[] = 'conversion_rate';
}
$properties->columns_to_display = $columnsToDisplay;
});
}