Controller::createColumnControl(): Use parameter for default columns

Add a parameter for default columns to be used if no columns
are set in the URL
This commit is contained in:
Bastian Lederer 2026-03-09 09:55:45 +01:00
parent 4d2cd6c3d4
commit cb6c90a1a8
3 changed files with 11 additions and 25 deletions

View file

@ -69,7 +69,7 @@ class HostsController extends Controller
$limitControl,
viewModeSwitcherClass: TabularViewModeSwitcher::class
);
$columns = $this->createColumnControl($hosts, $viewModeSwitcher);
$columns = $this->createColumnControl($hosts, $viewModeSwitcher, ['host.name', 'host.state.output']);
$searchBar = $this->createSearchBar($hosts, [
$limitControl->getLimitParam(),
@ -295,9 +295,4 @@ class HostsController extends Controller
return new FeatureStatus('host', $summary->first());
}
protected function getDefaultColumns(): string
{
return 'host.name, host.state.output';
}
}

View file

@ -80,7 +80,7 @@ class ServicesController extends Controller
$limitControl,
viewModeSwitcherClass: TabularViewModeSwitcher::class
);
$columns = $this->createColumnControl($services, $viewModeSwitcher);
$columns = $this->createColumnControl($services, $viewModeSwitcher, ['service.name', 'service.state.output']);
$searchBar = $this->createSearchBar($services, [
$limitControl->getLimitParam(),
@ -493,9 +493,4 @@ class ServicesController extends Controller
return $problemToggle;
}
protected function getDefaultColumns(): string
{
return 'service.name, service.state.output';
}
}

View file

@ -77,26 +77,27 @@ class Controller extends CompatController
*
* @param Query $query
* @param ViewModeSwitcher $viewModeSwitcher
* @param array $defaultColumns
*
* @return array provided columns
*/
public function createColumnControl(Query $query, ViewModeSwitcher $viewModeSwitcher): array
public function createColumnControl(Query $query, ViewModeSwitcher $viewModeSwitcher, array $defaultColumns): array
{
// All of that is essentially what `ColumnControl::apply()` should do
$viewMode = $viewModeSwitcher->getViewMode();
$columnsDef = $this->params->shift('columns');
if (! $columnsDef) {
if ($viewMode === 'tabular') {
$columnsDef = $this->getDefaultColumns();
$columns = $defaultColumns;
} else {
return [];
}
}
$columns = [];
foreach (explode(',', $columnsDef) as $column) {
if ($column = trim($column)) {
$columns[] = $column;
} else {
$columns = [];
foreach (explode(',', $columnsDef) as $column) {
if ($column = trim($column)) {
$columns[] = $column;
}
}
}
@ -493,9 +494,4 @@ class Controller extends CompatController
->getPlugin('Zend_Controller_Plugin_ErrorHandler')
->setErrorHandlerModule('icingadb');
}
protected function getDefaultColumns(): string
{
return 'name, state.output';
}
}