Changed the event count lookups to use find() instead of custom functions

This commit is contained in:
Kyle Johnson 2013-05-08 09:37:56 -04:00
parent 08f57b6b47
commit 1307ba41c8
2 changed files with 35 additions and 40 deletions

View File

@ -2,13 +2,43 @@
class MonitorsController extends AppController { class MonitorsController extends AppController {
public function index() { public function index() {
$this->loadModel('Event');
$monitoroptions['fields'] = array('Name', 'Id', 'Function', 'Host'); $monitoroptions['fields'] = array('Name', 'Id', 'Function', 'Host');
$this->set('monitors', $this->Monitor->find('all', $monitoroptions)); $this->set('monitors', $this->Monitor->find('all', $monitoroptions));
$this->set('eventsLastHour', $this->Monitor->getEventsLastHour()); $monitors = $this->Monitor->find('list', array('fields' => array('Id')));
$this->set('eventsLastDay', $this->Monitor->getEventsLastDay()); $intervals = array('HOUR', 'DAY', 'WEEK', 'MONTH');
$this->set('eventsLastWeek', $this->Monitor->getEventsLastWeek()); foreach ($monitors as $monitor) {
$this->set('eventsLastMonth', $this->Monitor->getEventsLastMonth()); foreach ($intervals as $interval) {
$this->set('eventsArchived', $this->Monitor->getEventsArchived());
}
}
$this->set('eventsLastHour', $this->Event->find('all', array(
'fields' => 'COUNT(Event.Id) AS count',
'group' => 'Event.MonitorId',
'conditions' => 'Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 HOUR)'
)));
$this->set('eventsLastDay', $this->Event->find('all', array(
'fields' => 'COUNT(Event.Id) AS count',
'group' => 'Event.MonitorId',
'conditions' => 'Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 DAY)'
)));
$this->set('eventsLastWeek', $this->Event->find('all', array(
'fields' => 'COUNT(Event.Id) AS count',
'group' => 'Event.MonitorId',
'conditions' => 'Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 WEEK)'
)));
$this->set('eventsLastMonth', $this->Event->find('all', array(
'fields' => 'COUNT(Event.Id) AS count',
'group' => 'Event.MonitorId',
'conditions' => 'Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 MONTH)'
)));
$this->set('eventsArchived', $this->Event->find('all', array(
'fields' => 'COUNT(Event.Id) AS count',
'group' => 'Event.MonitorId',
'conditions' => array('Event.Archived' => 1)
)));
} }
public function view($id = null) { public function view($id = null) {

View File

@ -14,40 +14,5 @@
'fields' => 'Zone.Id' 'fields' => 'Zone.Id'
) )
); );
public function getEventsLastHour() {
$conditions = array('Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 HOUR)');
$group = array('Event.MonitorId');
$fields = array('count(Event.Id) AS count');
return $this->Event->find('all', compact('conditions', 'group', 'fields'));
}
public function getEventsLastDay() {
$conditions = array('Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 DAY)');
$group = array('Event.MonitorId');
$fields = array('count(Event.Id) AS count');
return $this->Event->find('all', compact('conditions', 'group', 'fields'));
}
public function getEventsLastWeek() {
$conditions = array('Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 WEEK)');
$group = array('Event.MonitorId');
$fields = array('count(Event.Id) AS count');
return $this->Event->find('all', compact('conditions', 'group', 'fields'));
}
public function getEventsLastMonth() {
$conditions = array('Event.StartTime > DATE_SUB(NOW(), INTERVAL 1 MONTH)');
$group = array('Event.MonitorId');
$fields = array('count(Event.Id) AS count');
return $this->Event->find('all', compact('conditions', 'group', 'fields'));
}
public function getEventsArchived() {
$conditions = array('Event.Archived = 1');
$group = array('Event.MonitorId');
$fields = array('count(Event.Id) AS count');
return $this->Event->find('all', compact('conditions', 'group', 'fields'));
}
} }
?> ?>