From cb6c90a1a89b175ae495cf70b4fb8cf2811fdc77 Mon Sep 17 00:00:00 2001 From: Bastian Lederer Date: Mon, 9 Mar 2026 09:55:45 +0100 Subject: [PATCH] `Controller::createColumnControl()`: Use parameter for default columns Add a parameter for default columns to be used if no columns are set in the URL --- application/controllers/HostsController.php | 7 +----- .../controllers/ServicesController.php | 7 +----- library/Icingadb/Web/Controller.php | 22 ++++++++----------- 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/application/controllers/HostsController.php b/application/controllers/HostsController.php index 83bb1804..84dcfc8b 100644 --- a/application/controllers/HostsController.php +++ b/application/controllers/HostsController.php @@ -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'; - } } diff --git a/application/controllers/ServicesController.php b/application/controllers/ServicesController.php index a0a254e2..c0275a86 100644 --- a/application/controllers/ServicesController.php +++ b/application/controllers/ServicesController.php @@ -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'; - } } diff --git a/library/Icingadb/Web/Controller.php b/library/Icingadb/Web/Controller.php index 2cad5464..2df3fe6d 100644 --- a/library/Icingadb/Web/Controller.php +++ b/library/Icingadb/Web/Controller.php @@ -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'; - } }