diff --git a/source/webui/pages/admin.php b/source/webui/pages/admin.php index 1019438..ab85b8a 100644 --- a/source/webui/pages/admin.php +++ b/source/webui/pages/admin.php @@ -13,6 +13,8 @@ if ( ! $auth->isAuthenticated() || ! $auth->hasPermission(StatusBoard_Permission $activity = null; $success = true; +$destination = $request->get('tab', 'summary'); + if ($request->exists('do')) { $activity = $request->get('do'); switch ($activity) { @@ -89,14 +91,28 @@ if ($request->exists('do')) { } } - $destination = $request->get('tab', 'admin'); $destination = "admin/tab/{$destination}/"; $session->set('messages', $messages); StatusBoard_Page::redirect($destination); } -$this->smarty->assign('tab', $request->get('tab', 'admin')); +$this->smarty->assign('tab', $destination); +if ($destination == 'summary') { + $this->smarty->assign('service_count', StatusBoard_Service::count()); + $this->smarty->assign('site_count', StatusBoard_Site::count()); + $this->smarty->assign('incident_counts', StatusBoard_Incident::counts()); + + $incidents_near_deadline = StatusBoard_Incident::allNearDeadline(); + usort($incidents_near_deadline, array('StatusBoard_Incident', 'compareEstimatedEndTimes')); + + $incidents_past_deadline = StatusBoard_Incident::allPastDeadline(); + usort($incidents_past_deadline, array('StatusBoard_Incident', 'compareEstimatedEndTimes')); + + $this->smarty->assign('incidents_near_deadline', $incidents_near_deadline); + $this->smarty->assign('incidents_past_deadline', $incidents_past_deadline); +} + $services = StatusBoard_Service::all(); $this->smarty->assign('services', $services); diff --git a/source/webui/templates/admin.tpl b/source/webui/templates/admin.tpl index e4a205c..349051f 100644 --- a/source/webui/templates/admin.tpl +++ b/source/webui/templates/admin.tpl @@ -1,17 +1,94 @@
TODO
-+ There {StatusBoard_Formatting::pluralise(count($incidents_near_deadline), 'is', 'are')} {$incidents_near_deadline|count} {StatusBoard_Formatting::pluralise(count($incidents_near_deadline), 'incident', 'incidents')} + within 1 hour of the current estimated end time. +
+ {if $incidents_near_deadline} ++ There {StatusBoard_Formatting::pluralise(count($incidents_near_deadline), 'is', 'are')} {$incidents_past_deadline|count} {StatusBoard_Formatting::pluralise(count($incidents_past_deadline), 'incident', 'incidents')} + already past the set estimated end time. +
+ {if $incidents_past_deadline} +| Statistic | +Count | +
|---|---|
| Services | +{$service_count} | +
| Sites | +{$site_count} | +
| Incidents | +{array_sum(array_values($incident_counts))} | +
| Major | +{$incident_counts[StatusBoard_Status::STATUS_Major]} | +
| Significant | +{$incident_counts[StatusBoard_Status::STATUS_Significant]} | +
| Minor | +{$incident_counts[StatusBoard_Status::STATUS_Minor]} | +
| Planned Maintenance | +{$incident_counts[StatusBoard_Status::STATUS_Maintenance]} | +
| Resolved | +{$incident_counts[StatusBoard_Status::STATUS_Resolved]} | +