Merge pull request #2884 from CachetHQ/edit-incident-component-status

Edit incident component status
This commit is contained in:
James Brooks
2018-01-21 22:04:19 +00:00
committed by GitHub
4 changed files with 84 additions and 5 deletions

View File

@@ -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;
}
}

View File

@@ -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')));
}

View File

@@ -45,6 +45,44 @@
{{ trans('cachet.incidents.status')[4] }}
</label>
</div>
@if($incident->component)
<div class="form-group hidden" id="component-status">
<input type="hidden" name="component_id" value="{{ $incident->component->id }}">
<div class="panel panel-default">
<div class="panel-body">
<div class="radio-items">
@foreach(trans('cachet.components.status') as $statusID => $status)
<div class="radio-inline">
<label>
<input type="radio" name="component_status" value="{{ $statusID }}">
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endif
@if($incident->component)
<div class="form-group" id="component-status">
<div class="panel panel-default">
<div class="panel-heading"><strong>{{ $incident->component->name }}</strong></div>
<div class="panel-body">
<div class="radio-items">
@foreach(trans('cachet.components.status') as $statusID => $status)
<div class="radio-inline">
<label>
<input type="radio" name="component_status" value="{{ $statusID }}" {{ $incident->component->status == $statusID ? "checked='checked'" : "" }}>
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endif
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class="markdown-control">

View File

@@ -45,6 +45,25 @@
{{ trans('cachet.incidents.status')[4] }}
</label>
</div>
@if($incident->component)
<div class="form-group" id="component-status">
<div class="panel panel-default">
<div class="panel-heading"><strong>{{ $incident->component->name }}</strong></div>
<div class="panel-body">
<div class="radio-items">
@foreach(trans('cachet.components.status') as $statusID => $status)
<div class="radio-inline">
<label>
<input type="radio" name="component_status" value="{{ $statusID }}" {{ $incident->component->status == $statusID ? "checked='checked'" : "" }}>
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endif
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class="markdown-control">