diff --git a/app/Bus/Commands/IncidentUpdate/CreateIncidentUpdateCommand.php b/app/Bus/Commands/IncidentUpdate/CreateIncidentUpdateCommand.php index 048465b8..caa65a75 100644 --- a/app/Bus/Commands/IncidentUpdate/CreateIncidentUpdateCommand.php +++ b/app/Bus/Commands/IncidentUpdate/CreateIncidentUpdateCommand.php @@ -41,7 +41,19 @@ final class CreateIncidentUpdateCommand * @var string */ public $message; + /** + * The incident component. + * + * @var int + */ + public $component_id; + /** + * The component status. + * + * @var int + */ + public $component_status; /** * The user. * @@ -55,10 +67,12 @@ final class CreateIncidentUpdateCommand * @var string[] */ public $rules = [ - 'incident' => 'required', - 'status' => 'required|int|min:1|max:4', - 'message' => 'required|string', - 'user' => 'required', + 'incident' => 'required', + 'status' => 'required|int|min:1|max:4', + 'message' => 'required|string', + 'component_id' => 'nullable|required_with:component_status|int', + 'component_status' => 'nullable|required_with:component_id|int|min:0|max:4', + 'user' => 'required', ]; /** @@ -71,11 +85,13 @@ final class CreateIncidentUpdateCommand * * @return void */ - public function __construct(Incident $incident, $status, $message, User $user) + public function __construct(Incident $incident, $status, $message, $component_id, $component_status, User $user) { $this->incident = $incident; $this->status = $status; $this->message = $message; + $this->component_id = $component_id; + $this->component_status = $component_status; $this->user = $user; } } diff --git a/app/Http/Controllers/Dashboard/IncidentController.php b/app/Http/Controllers/Dashboard/IncidentController.php index 3822a812..cc03457d 100644 --- a/app/Http/Controllers/Dashboard/IncidentController.php +++ b/app/Http/Controllers/Dashboard/IncidentController.php @@ -339,6 +339,8 @@ class IncidentController extends Controller $incident, Binput::get('status'), Binput::get('message'), + Binput::get('component_id'), + Binput::get('component_status'), $this->auth->user() )); } catch (ValidationException $e) { @@ -348,6 +350,10 @@ class IncidentController extends Controller ->withErrors($e->getMessageBag()); } + if ($incident->component) { + $incident->component->update(['status' => Binput::get('component_status')]); + } + return cachet_redirect('dashboard.incidents') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.updates.success'))); } diff --git a/resources/views/dashboard/incidents/updates/add.blade.php b/resources/views/dashboard/incidents/updates/add.blade.php index 9569bfcc..3783018d 100644 --- a/resources/views/dashboard/incidents/updates/add.blade.php +++ b/resources/views/dashboard/incidents/updates/add.blade.php @@ -45,6 +45,44 @@ {{ trans('cachet.incidents.status')[4] }} + @if($incident->component) + + @endif + @if($incident->component) +
+
+
{{ $incident->component->name }}
+
+
+ @foreach(trans('cachet.components.status') as $statusID => $status) +
+ +
+ @endforeach +
+
+
+
+ @endif
diff --git a/resources/views/dashboard/incidents/updates/edit.blade.php b/resources/views/dashboard/incidents/updates/edit.blade.php index 6832e223..5df75656 100644 --- a/resources/views/dashboard/incidents/updates/edit.blade.php +++ b/resources/views/dashboard/incidents/updates/edit.blade.php @@ -45,6 +45,25 @@ {{ trans('cachet.incidents.status')[4] }}
+ @if($incident->component) +
+
+
{{ $incident->component->name }}
+
+
+ @foreach(trans('cachet.components.status') as $statusID => $status) +
+ +
+ @endforeach +
+
+
+
+ @endif