From e7e79af5d94d5805758c4a0971a20c8cadb77d1d Mon Sep 17 00:00:00 2001 From: James Brooks Date: Tue, 6 Jan 2015 11:43:32 +0000 Subject: [PATCH] Adding/editing incidents can now update a components status. --- app/assets/js/start.js | 13 ++++++++++ app/lang/de/forms.php | 5 +++- app/lang/en/forms.php | 6 ++++- app/lang/fr/forms.php | 5 +++- app/views/dashboard/incidents/add.blade.php | 24 +++++++++++++++++++ app/views/dashboard/incidents/edit.blade.php | 24 +++++++++++++++++++ src/Composers/TimezoneLocaleComposer.php | 2 -- .../Controllers/DashIncidentController.php | 20 ++++++++++++---- src/Http/Controllers/SetupController.php | 2 +- 9 files changed, 91 insertions(+), 10 deletions(-) diff --git a/app/assets/js/start.js b/app/assets/js/start.js index 71892262..11eb9aae 100644 --- a/app/assets/js/start.js +++ b/app/assets/js/start.js @@ -96,6 +96,19 @@ $(function() { $(this).parents('div.alert').addClass('hide'); }); + $('form[name=IncidentForm] select[name=incident\\[component_id\\]]').on('change', function() { + var $option = $(this).find('option:selected'); + var $componentStatus = $('#component-status'); + + if ($option.val() !== '') { + if ($componentStatus.hasClass('hidden')) { + $componentStatus.removeClass('hidden'); + } else { + $componentStatus.addClass('hidden'); + } + } + }); + // Sortable components. var componentList = document.getElementById("component-list"); if (componentList) { diff --git a/app/lang/de/forms.php b/app/lang/de/forms.php index 348ef317..74ec2bdb 100644 --- a/app/lang/de/forms.php +++ b/app/lang/de/forms.php @@ -98,5 +98,8 @@ return [ 'delete' => 'Löschen', 'submit' => 'Speichern', 'cancel' => 'Abbrechen', - 'remove' => 'Entfernen' + 'remove' => 'Entfernen', + + // Other + 'optional' => '* Optional', ]; diff --git a/app/lang/en/forms.php b/app/lang/en/forms.php index 6a59ccff..53a65318 100644 --- a/app/lang/en/forms.php +++ b/app/lang/en/forms.php @@ -27,6 +27,7 @@ return [ 'incidents' => [ 'name' => 'Name', 'status' => 'Status', + 'component' => 'Component', 'message' => 'Message', 'message-help' => 'You may also use Markdown.', @@ -98,5 +99,8 @@ return [ 'delete' => 'Delete', 'submit' => 'Submit', 'cancel' => 'Cancel', - 'remove' => 'Remove' + 'remove' => 'Remove', + + // Other + 'optional' => '* Optional', ]; diff --git a/app/lang/fr/forms.php b/app/lang/fr/forms.php index 5a5c0f06..b7e9122d 100644 --- a/app/lang/fr/forms.php +++ b/app/lang/fr/forms.php @@ -98,5 +98,8 @@ return [ 'delete' => 'Effacer', 'submit' => 'Envoyer', 'cancel' => 'Annuler', - 'remove' => 'Supprimer' + 'remove' => 'Supprimer', + + // Other + 'optional' => '* Optional', ]; diff --git a/app/views/dashboard/incidents/add.blade.php b/app/views/dashboard/incidents/add.blade.php index a710d230..eab50098 100644 --- a/app/views/dashboard/incidents/add.blade.php +++ b/app/views/dashboard/incidents/add.blade.php @@ -43,6 +43,30 @@ {{ trans('cachet.incidents.status')[4] }} +
+ + + {{ trans('forms.optional') }} +
+
diff --git a/app/views/dashboard/incidents/edit.blade.php b/app/views/dashboard/incidents/edit.blade.php index 6efa1019..6db8ecc3 100644 --- a/app/views/dashboard/incidents/edit.blade.php +++ b/app/views/dashboard/incidents/edit.blade.php @@ -43,6 +43,30 @@ {{ trans('cachet.incidents.status')[4] }}
+
+ + + {{ trans('forms.optional') }} +
+
+
+
+ @foreach(trans('cachet.components.status') as $statusID => $status) +
+ +
+ @endforeach +
+
+
diff --git a/src/Composers/TimezoneLocaleComposer.php b/src/Composers/TimezoneLocaleComposer.php index 7c4b4a34..2e0670d8 100644 --- a/src/Composers/TimezoneLocaleComposer.php +++ b/src/Composers/TimezoneLocaleComposer.php @@ -2,8 +2,6 @@ namespace CachetHQ\Cachet\Composers; -use CachetHQ\Cachet\Models\Component; -use CachetHQ\Cachet\Models\Incident; use DateTime; use DateTimeZone; use Illuminate\Support\Facades\View; diff --git a/src/Http/Controllers/DashIncidentController.php b/src/Http/Controllers/DashIncidentController.php index f69cd364..21f932b5 100644 --- a/src/Http/Controllers/DashIncidentController.php +++ b/src/Http/Controllers/DashIncidentController.php @@ -2,6 +2,7 @@ namespace CachetHQ\Cachet\Http\Controllers; +use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\Incident; use CachetHQ\Cachet\Models\IncidentTemplate; use GrahamCampbell\Binput\Facades\Binput; @@ -34,7 +35,8 @@ class DashIncidentController extends Controller public function showAddIncident() { return View::make('dashboard.incidents.add')->with([ - 'pageTitle' => trans('dashboard.incidents.add.title').' - '.trans('dashboard.dashboard'), + 'pageTitle' => trans('dashboard.incidents.add.title').' - '.trans('dashboard.dashboard'), + 'components' => Component::all(), ]); } @@ -45,7 +47,9 @@ class DashIncidentController extends Controller */ public function createIncidentAction() { - $incident = Incident::create(Binput::get('incident')); + $incidentData = Binput::get('incident'); + $componentStatus = array_pull($incidentData, 'component_status'); + $incident = Incident::create($incidentData); if (! $incident->isValid()) { return Redirect::back()->withInput(Binput::all()) @@ -57,6 +61,13 @@ class DashIncidentController extends Controller ->with('errors', $incident->getErrors()); } + // Update the component. + if ((int) $incidentData['component_id'] > 0) { + Component::find($incidentData['component_id'])->update([ + 'status' => $componentStatus, + ]); + } + $successMsg = sprintf( '%s %s', trans('dashboard.notifications.awesome'), @@ -131,8 +142,9 @@ class DashIncidentController extends Controller public function showEditIncidentAction(Incident $incident) { return View::make('dashboard.incidents.edit')->with([ - 'pageTitle' => trans('dashboard.incidents.edit.title').' - '.trans('dashboard.dashboard'), - 'incident' => $incident, + 'pageTitle' => trans('dashboard.incidents.edit.title').' - '.trans('dashboard.dashboard'), + 'incident' => $incident, + 'components' => Component::all(), ]); } diff --git a/src/Http/Controllers/SetupController.php b/src/Http/Controllers/SetupController.php index a350714c..ea17a3cc 100644 --- a/src/Http/Controllers/SetupController.php +++ b/src/Http/Controllers/SetupController.php @@ -32,7 +32,7 @@ class SetupController extends Controller */ public function getIndex() { - return View::make('setup')->with([ + return View::make('setup')->with([ 'pageTitle' => trans('setup.setup'), ]); }