Get columns for FilterEditor::setSearchColumns() from DataView::getSearchColumns()

refs #8241
This commit is contained in:
Alexander A. Klimov 2015-05-19 18:00:47 +02:00
parent 93db1d15cb
commit 0b937c86dc

View File

@ -97,7 +97,7 @@ class Monitoring_ListController extends Controller
'host_current_check_attempt', 'host_current_check_attempt',
'host_max_check_attempts' 'host_max_check_attempts'
), $this->addColumns())); ), $this->addColumns()));
$this->filterQuery($query, array('host', 'host_display_name')); $this->filterQuery($query);
$this->applyRestriction('monitoring/hosts/filter', $query); $this->applyRestriction('monitoring/hosts/filter', $query);
$this->view->hosts = $query; $this->view->hosts = $query;
@ -181,7 +181,7 @@ class Monitoring_ListController extends Controller
'max_check_attempts' => 'service_max_check_attempts' 'max_check_attempts' => 'service_max_check_attempts'
), $this->addColumns()); ), $this->addColumns());
$query = $this->backend->select()->from('serviceStatus', $columns); $query = $this->backend->select()->from('serviceStatus', $columns);
$this->filterQuery($query, array('service', 'service_display_name')); $this->filterQuery($query);
$this->applyRestriction('monitoring/services/filter', $query); $this->applyRestriction('monitoring/services/filter', $query);
$this->view->services = $query; $this->view->services = $query;
@ -499,7 +499,7 @@ class Monitoring_ListController extends Controller
))->order('services_severity')->order('servicegroup_alias'); ))->order('services_severity')->order('servicegroup_alias');
// TODO(el): Can't default to the sort rules of the data view because it's meant for both host groups and // TODO(el): Can't default to the sort rules of the data view because it's meant for both host groups and
// service groups. We should separate them. // service groups. We should separate them.
$this->filterQuery($query, array('servicegroup', 'servicegroup_alias')); $this->filterQuery($query);
$this->view->servicegroups = $query; $this->view->servicegroups = $query;
$this->setupLimitControl(); $this->setupLimitControl();
@ -556,7 +556,7 @@ class Monitoring_ListController extends Controller
))->order('services_severity')->order('hostgroup_alias'); ))->order('services_severity')->order('hostgroup_alias');
// TODO(el): Can't default to the sort rules of the data view because it's meant for both host groups and // TODO(el): Can't default to the sort rules of the data view because it's meant for both host groups and
// service groups. We should separate them. // service groups. We should separate them.
$this->filterQuery($query, array('hostgroup', 'hostgroup_alias')); $this->filterQuery($query);
$this->view->hostgroups = $query; $this->view->hostgroups = $query;
$this->setupLimitControl(); $this->setupLimitControl();
@ -631,11 +631,10 @@ class Monitoring_ListController extends Controller
* Apply filters on a DataView * Apply filters on a DataView
* *
* @param DataView $dataView The DataView to apply filters on * @param DataView $dataView The DataView to apply filters on
* @param array $searchColumns Columns to search in
* *
* @return DataView $dataView * @return DataView $dataView
*/ */
protected function filterQuery(DataView $dataView, array $searchColumns = null) protected function filterQuery(DataView $dataView)
{ {
$editor = Widget::create('filterEditor') $editor = Widget::create('filterEditor')
->setQuery($dataView) ->setQuery($dataView)
@ -643,11 +642,9 @@ class Monitoring_ListController extends Controller
'limit', 'sort', 'dir', 'format', 'view', 'backend', 'limit', 'sort', 'dir', 'format', 'view', 'backend',
'stateType', 'addColumns', '_dev' 'stateType', 'addColumns', '_dev'
) )
->ignoreParams('page'); ->ignoreParams('page')
if ($searchColumns !== null) { ->setSearchColumns($dataView->getSearchColumns())
$editor->setSearchColumns($searchColumns); ->handleRequest($this->getRequest());
}
$editor->handleRequest($this->getRequest());
$dataView->applyFilter($editor->getFilter()); $dataView->applyFilter($editor->getFilter());
$this->setupFilterControl($editor); $this->setupFilterControl($editor);