diff --git a/modules/monitoring/application/controllers/ListController.php b/modules/monitoring/application/controllers/ListController.php index a06a09d8c..e200266ad 100644 --- a/modules/monitoring/application/controllers/ListController.php +++ b/modules/monitoring/application/controllers/ListController.php @@ -121,19 +121,8 @@ class Monitoring_ListController extends Controller 'host_last_check' => $this->translate('Last Check') ), $query); - $summary = $this->backend->select()->from('Hostservicestatussummary', array( - 'host_name', - 'unhandled_service_count' - )); - $summary->addFilter($query->getFilter()); - $this->setupSortControl(array( - 'host_severity' => $this->translate('Severity'), - 'host_state' => $this->translate('Current State'), - 'host_display_name' => $this->translate('Hostname'), - 'host_address' => $this->translate('Address'), - 'host_last_check' => $this->translate('Last Check') - ), $summary); - $summary->limit($query->getLimit(), $query->getOffset()); + $summary = $query->getQuery()->queryServiceProblemSummary(); + $this->applyRestriction('monitoring/filter/objects', $summary); $this->view->summary = $summary->fetchPairs(); } diff --git a/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php b/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php index 37d20e165..c164a8bcf 100644 --- a/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php +++ b/modules/monitoring/library/Monitoring/Backend/Ido/Query/HoststatusQuery.php @@ -449,4 +449,20 @@ SQL; return $group; } -} \ No newline at end of file + + /** + * Query the service problem summary for all hosts of this query's result set + * + * @return HostserviceproblemsummaryQuery + */ + public function queryServiceProblemSummary() + { + return $this->createSubQuery('Hostserviceproblemsummary') + ->setHostStatusQuery($this) + ->columns(array( + 'host_name', + 'unhandled_service_count' + ) + ); + } +}