private function fetchConfiguredSparklines()
{
$data = $this->loadDataTableFromAPI();
$this->applyFilters($data);
if (!$this->config->hasSparklineMetrics()) {
foreach ($data->getColumns() as $column) {
$this->config->addSparklineMetric($column);
}
}
$translations = $this->config->translations;
$firstRow = $data->getFirstRow();
foreach ($this->config->getSparklineMetrics() as $sparklineMetric) {
$column = $sparklineMetric['columns'];
$order = $sparklineMetric['order'];
if ($column === 'label') {
continue;
}
if (empty($column)) {
$this->config->addPlaceholder($order);
continue;
}
if (!is_array($column)) {
$column = array($column);
}
$values = array();
$descriptions = array();
foreach ($column as $col) {
$value = $firstRow->getColumn($col);
if ($value === false) {
$value = 0;
}
$values[] = $value;
$descriptions[] = isset($translations[$col]) ? $translations[$col] : $col;
}
$sparklineUrlParams = array('columns' => $column, 'module' => $this->requestConfig->getApiModuleToRequest(), 'action' => $this->requestConfig->getApiMethodToRequest());
$this->config->addSparkline($sparklineUrlParams, $values, $descriptions, null, $order);
}
}