public function configureViewDataTable(ViewDataTable $view)
{
if ($view->requestConfig->getApiModuleToRequest() != 'Events') {
return;
}
// eg. 'Events.getCategory'
$apiMethod = $view->requestConfig->getApiMethodToRequest();
$secondaryDimension = $this->getSecondaryDimensionFromRequest();
$view->config->subtable_controller_action = API::getInstance()->getActionToLoadSubtables($apiMethod, $secondaryDimension);
$pivotBy = Common::getRequestVar('pivotBy', false);
if (empty($pivotBy)) {
$view->config->columns_to_display = array('label', 'nb_events', 'sum_event_value');
}
$view->config->show_flatten_table = true;
$view->requestConfig->filter_sort_column = 'nb_events';
if ($view->isViewDataTableId(AllColumns::ID)) {
$view->config->filters[] = function (DataTable $table) use($view) {
$columsToDisplay = array('label');
$columns = $table->getColumns();
if (in_array('nb_visits', $columns)) {
$columsToDisplay[] = 'nb_visits';
}
if (in_array('nb_uniq_visitors', $columns)) {
$columsToDisplay[] = 'nb_uniq_visitors';
}
$view->config->columns_to_display = array_merge($columsToDisplay, array('nb_events', 'sum_event_value', 'avg_event_value', 'min_event_value', 'max_event_value'));
if (!in_array($view->requestConfig->filter_sort_column, $view->config->columns_to_display)) {
$view->requestConfig->filter_sort_column = 'nb_events';
}
};
$view->config->show_pivot_by_subtable = false;
}
$labelTranslation = $this->getColumnTranslation($apiMethod);
$view->config->addTranslation('label', $labelTranslation);
$view->config->addTranslations($this->getMetricTranslations());
$this->addRelatedReports($view, $secondaryDimension);
$this->addTooltipEventValue($view);
$subtableReport = ReportsProvider::factory('Events', $view->config->subtable_controller_action);
$view->config->pivot_by_dimension = $subtableReport->getDimension()->getId();
$view->config->pivot_by_column = 'nb_events';
}