From e9a0103f57c70b341a3a2bfd73507563e3a1e0d4 Mon Sep 17 00:00:00 2001 From: Ben Roberts Date: Wed, 21 Dec 2011 10:44:20 +0000 Subject: [PATCH] Add admin UI/Backend for adding sites --- source/lib/StatusBoard/Service.class.php | 4 ++++ source/lib/StatusBoard/Site.class.php | 11 ++++++++++ source/webui/pages/admin/service.php | 20 +++++++++++++++-- source/webui/templates/admin/service.tpl | 28 +++++++++++++++++++++--- 4 files changed, 58 insertions(+), 5 deletions(-) diff --git a/source/lib/StatusBoard/Service.class.php b/source/lib/StatusBoard/Service.class.php index 1af47db..5dc4cb9 100644 --- a/source/lib/StatusBoard/Service.class.php +++ b/source/lib/StatusBoard/Service.class.php @@ -19,6 +19,10 @@ class StatusBoard_Service extends StatusBoard_DatabaseObject { return $new_service; } + + public function newSite($name, $description) { + return StatusBoard_Site::newSiteForService($this, $name, $description); + } public function sites($ignore_cache = false) { if ($this->sites === null || $ignore_cache) { diff --git a/source/lib/StatusBoard/Site.class.php b/source/lib/StatusBoard/Site.class.php index 2e907b4..e40328e 100644 --- a/source/lib/StatusBoard/Site.class.php +++ b/source/lib/StatusBoard/Site.class.php @@ -16,6 +16,17 @@ class StatusBoard_Site extends StatusBoard_DatabaseObject { return static::all_for('service', $service->id); } + public static function newSiteForService(StatusBoard_Service $service, $name, $description) { + $new_service = new self(); + $new_service->service = $service->id; + $new_service->name = $name; + $new_service->description = $description; + + $new_service->create(); + + return $new_service; + } + public function openIncidents($ignore_cache = false) { if ($this->incidents_open === null || $ignore_cache) { $this->incidents_open = StatusBoard_Incident::open_for_site($this); diff --git a/source/webui/pages/admin/service.php b/source/webui/pages/admin/service.php index 6bbc7b0..204710d 100644 --- a/source/webui/pages/admin/service.php +++ b/source/webui/pages/admin/service.php @@ -43,10 +43,26 @@ if ($request->exists('do')) { $messages[] = 'No changes were necessary.'; } - } break; + } break; - default: { + case 'add-site': { + $name = StatusBoard_Main::issetelse($_POST['name'], 'Sihnon_Exception_InvalidParameters'); + $description = StatusBoard_Main::issetelse($_POST['description'], 'Sihnon_Exception_InvalidParameters'); + + $site = $service->newSite($name, $description); + $messages[] = array( + 'severity' => 'success', + 'content' => 'The site was created succesfully.', + ); + + } break; + + default: { + $messages[] = array( + 'severity' => 'warning', + 'content' => "The activity '{$activity}' is not supported.", + ); } } } diff --git a/source/webui/templates/admin/service.tpl b/source/webui/templates/admin/service.tpl index c2b7f9b..e4a7853 100644 --- a/source/webui/templates/admin/service.tpl +++ b/source/webui/templates/admin/service.tpl @@ -50,6 +50,28 @@ You haven't created any sites for this service yet. Create some with the button below. {/if} -
- -
\ No newline at end of file +
+
+ Add Site + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+