Add first draft admin interface
This exposes information on Services/Sites/Incidents, but does not yet permit any changes. Admin page also links to future user management pages.
This commit is contained in:
11
source/webui/pages/admin.php
Normal file
11
source/webui/pages/admin.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
$main = StatusBoard_Main::instance();
|
||||
$auth = $main->auth();
|
||||
|
||||
$services = StatusBoard_Service::all();
|
||||
$this->smarty->assign('services', $services);
|
||||
|
||||
$users = $auth->listUsers();
|
||||
$this->smarty->assign('users', $users);
|
||||
?>
|
||||
29
source/webui/pages/admin/incident.php
Normal file
29
source/webui/pages/admin/incident.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
$main = StatusBoard_Main::instance();
|
||||
$request = $main->request();
|
||||
|
||||
$service_id = $request->get('service', 'Sihnon_Exception_InvalidParameters');
|
||||
$site_id = $request->get('site', 'Sihnon_Exception_InvalidParameters');
|
||||
$incident_id = $request->get('id', 'Sihnon_Exception_InvalidParameters');
|
||||
|
||||
$service = null;
|
||||
$site = null;
|
||||
$incident = null;
|
||||
|
||||
try {
|
||||
$service = StatusBoard_Service::fromId($service_id);
|
||||
$site = StatusBoard_Site::fromId($site_id);
|
||||
$incident = StatusBoard_Incident::fromId($incident_id);
|
||||
} catch (Sihnon_Exception_ResultCountMismatch $e) {
|
||||
StatusBoard_Page::redirect('errors/404');
|
||||
}
|
||||
|
||||
$statuses = $incident->statusChanges();
|
||||
|
||||
$this->smarty->assign('service', $service);
|
||||
$this->smarty->assign('site', $site);
|
||||
$this->smarty->assign('incident', $incident);
|
||||
$this->smarty->assign('statuses', $statuses);
|
||||
|
||||
?>
|
||||
19
source/webui/pages/admin/service.php
Normal file
19
source/webui/pages/admin/service.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
$main = StatusBoard_Main::instance();
|
||||
$request = $main->request();
|
||||
|
||||
$service_id = $request->get('id', 'Sihnon_Exception_InvalidParameters');
|
||||
$service = null;
|
||||
try {
|
||||
$service = StatusBoard_Service::fromId($service_id);
|
||||
} catch (Sihnon_Exception_ResultCountMismatch $e) {
|
||||
StatusBoard_Page::redirect('errors/404');
|
||||
}
|
||||
|
||||
$sites = $service->sites();
|
||||
|
||||
$this->smarty->assign('service', $service);
|
||||
$this->smarty->assign('sites', $sites);
|
||||
|
||||
?>
|
||||
25
source/webui/pages/admin/site.php
Normal file
25
source/webui/pages/admin/site.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
$main = StatusBoard_Main::instance();
|
||||
$request = $main->request();
|
||||
|
||||
$service_id = $request->get('service', 'Sihnon_Exception_InvalidParameters');
|
||||
$site_id = $request->get('id', 'Sihnon_Exception_InvalidParameters');
|
||||
|
||||
$service = null;
|
||||
$site = null;
|
||||
|
||||
try {
|
||||
$service = StatusBoard_Service::fromId($service_id);
|
||||
$site = StatusBoard_Site::fromId($site_id);
|
||||
} catch (Sihnon_Exception_ResultCountMismatch $e) {
|
||||
StatusBoard_Page::redirect('errors/404');
|
||||
}
|
||||
|
||||
$open_incidents = $site->openIncidents();
|
||||
|
||||
$this->smarty->assign('service', $service);
|
||||
$this->smarty->assign('site', $site);
|
||||
$this->smarty->assign('open_incidents', $open_incidents);
|
||||
|
||||
?>
|
||||
@@ -1 +1,37 @@
|
||||
TODO
|
||||
<h1>Services</h1>
|
||||
|
||||
<p>
|
||||
Click on a Service to edit its properties, or access any of the sites defined under it.
|
||||
</p>
|
||||
|
||||
{if $services}
|
||||
<dl>
|
||||
{foreach from=$services item=service}
|
||||
<dt><a href="{$base_uri}admin/service/id/{$service->id}/" title="Edit site {$service->name|escape:html}">{$service->name|escape:html}</a></dt>
|
||||
<dd>{$service->description|escape:html}</dd>
|
||||
{/foreach}
|
||||
</dl>
|
||||
{else}
|
||||
You haven't created any services yet. Create some with the button below.
|
||||
{/if}
|
||||
|
||||
<form id="admin_addservice" method="post" action="{$base_uri}admin/add-service/">
|
||||
<input type="button" class="btn success" name="addservice" value="Add Service" />
|
||||
</form>
|
||||
|
||||
|
||||
<h1>Users and Permissions</h1>
|
||||
|
||||
<p>
|
||||
Click on a User to edit its properties.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
{foreach from=$users item=user}
|
||||
<li><a href="{$base_uri}admin/user/id/{$user->id}/" title="Edit user {$user->username|escape:html}">{$user->username|escape:html}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
|
||||
<form id="admin_adduser" method="post" action="{$base_uri}admin/add-user/">
|
||||
<input type="button" class="btn success" name="adduser" value="Add User" />
|
||||
</form>
|
||||
80
source/webui/templates/admin/incident.tpl
Normal file
80
source/webui/templates/admin/incident.tpl
Normal file
@@ -0,0 +1,80 @@
|
||||
<h1>Incident {$incident->reference|escape:html}</h1>
|
||||
|
||||
<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/">
|
||||
<fieldset>
|
||||
<legend>Edit Incident</legend>
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_incident_edit_name">Reference</label>
|
||||
<div class="text">
|
||||
<input class="xlarge span5" id="admin_incident_edit_name" name="reference" type="text" value="{$incident->reference|escape:html}" />
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_incident_edit_description">Description</label>
|
||||
<div class="text">
|
||||
<textarea class="span12" id="admin_incident_edit_description" name="description">{$incident->description|escape:html}</textarea>
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="input">
|
||||
<div class="clearfix">
|
||||
<input type="submit" class="btn primary" value="Edit Incident"> <button type="reset" class="btn">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div><!-- /span16 -->
|
||||
</div><!-- /row -->
|
||||
|
||||
<div class="row">
|
||||
<div class="span16">
|
||||
<form id="admin_incident_changestatus" method="post" action="{$base_uri}admin/incident/id/{$incident->id}/do/change-status/">
|
||||
<fieldset>
|
||||
<legend>Change Status</legend>
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_incident_changestatus_status">New Status</label>
|
||||
<div class="select">
|
||||
<select class="xlarge span5" id="admin_incident_changestatus_status" name="status">
|
||||
{foreach from=StatusBoard_Status::available() item=status}
|
||||
<option value="{$status}">{StatusBoard_Status::name($status)}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="input">
|
||||
<div class="clearfix">
|
||||
<input type="submit" class="btn primary" value="Edit Incident"> <button type="reset" class="btn">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div><!-- /span16 -->
|
||||
</div><!-- /row -->
|
||||
</div><!-- /container -->
|
||||
|
||||
<h2>Status Changes</h2>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<th>Date/Time</th>
|
||||
<th>Status</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$statuses item=status}
|
||||
<tr>
|
||||
<td>
|
||||
{StatusBoard_DateTime::fuzzyTime($status->ctime)}<br />
|
||||
<em>{$status->ctime|date_format:'y-m-d h:i:s'}</em>
|
||||
</td>
|
||||
<td>{StatusBoard_Status::name($status->status)}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
50
source/webui/templates/admin/service.tpl
Normal file
50
source/webui/templates/admin/service.tpl
Normal file
@@ -0,0 +1,50 @@
|
||||
<h1>Service {$service->name|escape:html}</h1>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="span16">
|
||||
<form id="admin_service_edit" method="post" action="{$base_uri}admin/services/id/{$service->id}/do/edit/">
|
||||
<fieldset>
|
||||
<legend>Edit Service</legend>
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_service_edit_name">Name</label>
|
||||
<div class="text">
|
||||
<input class="xlarge span5" id="admin_service_edit_name" name="name" type="text" value="{$service->name|escape:html}" />
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_service_edit_description">Description</label>
|
||||
<div class="text">
|
||||
<textarea class="span12" id="admin_service_edit_description" name="description">{$service->description|escape:html}</textarea>
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="input">
|
||||
<div class="clearfix">
|
||||
<input type="submit" class="btn primary" value="Edit Service"> <button type="reset" class="btn">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div><!-- /span16 -->
|
||||
</div><!-- /row -->
|
||||
</div><!-- /container -->
|
||||
|
||||
<h1>Sites</h1>
|
||||
|
||||
{if $sites}
|
||||
<dl>
|
||||
{foreach from=$sites item=site}
|
||||
<dt><a href="{$base_uri}admin/site/service/{$service->id}/id/{$site->id}/" title="Edit site {$site->name|escape:html}">{$site->name|escape:html}</a></dt>
|
||||
<dd>{$site->description|escape:html}</dd>
|
||||
{/foreach}
|
||||
</dl>
|
||||
{else}
|
||||
You haven't created any sites for this service yet. Create some with the button below.
|
||||
{/if}
|
||||
|
||||
<form id="admin_addsite" method="post" action="{$base_uri}admin/add-site/service/{$service->id}/">
|
||||
<input type="button" class="btn success" name="addsite" value="Add Site" />
|
||||
</form>
|
||||
55
source/webui/templates/admin/site.tpl
Normal file
55
source/webui/templates/admin/site.tpl
Normal file
@@ -0,0 +1,55 @@
|
||||
<h1>Site {$site->name|escape:html}</h1>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="span16">
|
||||
<form id="admin_site_edit" method="post" action="{$base_uri}admin/site/id/{$site->id}/do/edit/">
|
||||
<fieldset>
|
||||
<legend>Edit Site</legend>
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_site_edit_name">Name</label>
|
||||
<div class="text">
|
||||
<input class="xlarge span5" id="admin_site_edit_name" name="name" type="text" value="{$site->name|escape:html}" />
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="clearfix">
|
||||
<label for="admin_site_edit_description">Description</label>
|
||||
<div class="text">
|
||||
<textarea class="span12" id="admin_site_edit_description" name="description">{$site->description|escape:html}</textarea>
|
||||
</div>
|
||||
</div><!-- /clearfix -->
|
||||
|
||||
<div class="input">
|
||||
<div class="clearfix">
|
||||
<input type="submit" class="btn primary" value="Edit Site"> <button type="reset" class="btn">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div><!-- /span16 -->
|
||||
</div><!-- /row -->
|
||||
</div><!-- /container -->
|
||||
|
||||
<h1>Open Incidents</h1>
|
||||
|
||||
{if $open_incidents}
|
||||
<dl>
|
||||
{foreach from=$open_incidents item=incident}
|
||||
<dt>
|
||||
<a href="{$base_uri}admin/incident/service/{$service->id}/site/{$site->id}/id/{$incident->id}" title="Edit Incident {$incident->reference|escape:html}">{$incident->reference|escape:html}</a>
|
||||
({StatusBoard_Status::name($incident->currentStatus())})
|
||||
</dt>
|
||||
<dd>
|
||||
{$incident->description|truncate|escape:html}
|
||||
</dd>
|
||||
{/foreach}
|
||||
</dl>
|
||||
{else}
|
||||
There are no open incidents for this site . If you need to open one, use the button below.
|
||||
{/if}
|
||||
|
||||
<form id="admin_addincident" method="post" action="{$base_uri}admin/add-incident/site/{$site->id}/">
|
||||
<input type="button" class="btn success" name="addsite" value="Add Incident" />
|
||||
</form>
|
||||
Reference in New Issue
Block a user