Add admin backend to edit incident and change status

Also fixes Status Board display on homepage to show correct status on
each day. It was previously reusing the currnent status for all previous
days on which the incidents were open.
This commit is contained in:
2011-12-21 01:13:06 +00:00
parent 59dd99cca2
commit a119ca81d5
5 changed files with 94 additions and 10 deletions

View File

@@ -24,11 +24,55 @@ try {
throw new StatusBoard_Exception_FileNotFound();
}
if ($request->exists('do')) {
$activity = $request->get('do');
switch ($activity) {
case 'edit': {
$reference = StatusBoard_Main::issetelse($_POST['reference'], 'Sihnon_Exception_InvalidParameters');
$description = StatusBoard_Main::issetelse($_POST['description'], 'Sihnon_Exception_InvalidParameters');
if ($reference) {
$incident->reference = $reference;
}
if ($description) {
$incident->description = $description;
}
if ($reference || $description) {
$incident->save();
$messages[] = array(
'severity' => 'success',
'content' => 'The incident was updated succesfully.',
);
} else {
$messages[] = 'No changes were necessary.';
}
} break;
case 'change-status': {
$status = StatusBoard_Main::issetelse($_POST['status'], 'Sihnon_Exception_InvalidParameters');
$description = StatusBoard_Main::issetelse($_POST['description'], 'Sihnon_Exception_InvalidParameters');
$incident->changeStatus($status, $description);
$messages[] = array(
'severity' => 'success',
'content' => 'The incident status was changed successfully.',
);
} break;
default: {
}
}
}
$statuses = $incident->statusChanges();
$this->smarty->assign('service', $service);
$this->smarty->assign('site', $site);
$this->smarty->assign('incident', $incident);
$this->smarty->assign('statuses', $statuses);
$this->smarty->assign('messages', $messages);
?>

View File

@@ -10,7 +10,7 @@
<div class="container">
<div class="row">
<div class="span16">
<form id="admin_incident_edit" method="post" action="{$base_uri}admin/incident/id/{$incident->id}/do/edit/">
<form id="admin_incident_edit" method="post" action="{$base_uri}admin/incident/service/{$service->id}/site/{$site->id}/id/{$incident->id}/do/edit/">
<fieldset>
<legend>Edit Incident</legend>
@@ -40,7 +40,7 @@
<div class="row">
<div class="span16">
<form id="admin_incident_changestatus" method="post" action="{$base_uri}admin/incident/id/{$incident->id}/do/change-status/">
<form id="admin_incident_changestatus" method="post" action="{$base_uri}admin/incident/service/{$service->id}/site/{$site->id}/id/{$incident->id}/do/change-status/">
<fieldset>
<legend>Change Status</legend>
@@ -64,7 +64,7 @@
<div class="input">
<div class="clearfix">
<input type="submit" class="btn primary" value="Edit Incident">&nbsp;<button type="reset" class="btn">Cancel</button>
<input type="submit" class="btn primary" value="Change Status">&nbsp;<button type="reset" class="btn">Cancel</button>
</div>
</div>
</fieldset>

View File

@@ -24,15 +24,15 @@
</td>
<td>
{$status=$site->status()}
{include nocache file="fragments/site-status.tpl" start=null end=null}
{include file="fragments/site-status.tpl" nocache start=null end=null}
</td>
{foreach from=array(1,2,3,4,5,6) item=day}
{$start=mktime(0,0,0,date("n"),date("j")-$day-1)}
{$end=mktime(0,0,0,date("n"),date("j")-$day)}
{$incidents=$site->openIncidentsDuring($start, $end)}
{$status=StatusBoard_Incident::highestSeverityStatus($incidents)}
{$incidentsDuring=$site->openIncidentsDuring($start, $end)}
{$statusDuring=StatusBoard_Incident::highestSeverityStatus($incidentsDuring, $end)}
<td>
{include nocache file="fragments/site-status.tpl" start=$start end=$end status=$status incidents=$incidents}
{include file="fragments/site-status.tpl" nocache start=$start end=$end status=$statusDuring incidents=$incidentsDuring}
</td>
{/foreach}
</tr>