From 803cbb6a3f589fe88b9953eeb2a3801c2b769314 Mon Sep 17 00:00:00 2001 From: Ben Roberts Date: Fri, 23 Dec 2011 01:35:38 +0000 Subject: [PATCH] Add Admin Summary page with statistics and alerts --- source/webui/pages/admin.php | 20 +++++- source/webui/templates/admin.tpl | 89 +++++++++++++++++++++++++-- source/webui/templates/navigation.tpl | 2 +- 3 files changed, 102 insertions(+), 9 deletions(-) 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

-
+
+
+
+
+

Alerts

+
+
+

+ 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} +
    + {foreach from=$incidents_near_deadline item=incident} +
  1. {$incident->reference|escape:html}
  2. + {/foreach} +
+ {/if} +

+ 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} +
    + {foreach from=$incidents_past_deadline item=incident} +
  1. {$incident->reference|escape:html}
  2. + {/foreach} +
+ {/if} +
+
+
+
+

Statistics

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
StatisticCount
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]}
+
+
+
@@ -129,7 +206,7 @@
- +
diff --git a/source/webui/templates/navigation.tpl b/source/webui/templates/navigation.tpl index 79e751c..2933de0 100644 --- a/source/webui/templates/navigation.tpl +++ b/source/webui/templates/navigation.tpl @@ -10,7 +10,7 @@