diff --git a/app/Composers/LoggedUserComposer.php b/app/Composers/CurrentUserComposer.php similarity index 86% rename from app/Composers/LoggedUserComposer.php rename to app/Composers/CurrentUserComposer.php index 75ffe744..7ff81d03 100644 --- a/app/Composers/LoggedUserComposer.php +++ b/app/Composers/CurrentUserComposer.php @@ -14,7 +14,7 @@ namespace CachetHQ\Cachet\Composers; use Illuminate\Contracts\View\View; use Illuminate\Support\Facades\Auth; -class LoggedUserComposer +class CurrentUserComposer { /** * Bind data to the view. @@ -23,6 +23,6 @@ class LoggedUserComposer */ public function compose(View $view) { - $view->with('loggedUser', Auth::user()); + $view->withCurrentUser(Auth::user()); } } diff --git a/app/Composers/DashboardComposer.php b/app/Composers/DashboardComposer.php index e2f6678f..85a4318e 100644 --- a/app/Composers/DashboardComposer.php +++ b/app/Composers/DashboardComposer.php @@ -24,7 +24,7 @@ class DashboardComposer */ public function compose(View $view) { - $view->with('incidentCount', Incident::notScheduled()->count()); - $view->with('componentCount', Component::all()->count()); + $view->withIncidentCount(Incident::notScheduled()->count()); + $view->withComponentCount(Component::all()->count()); } } diff --git a/app/Composers/ThemeComposer.php b/app/Composers/ThemeComposer.php index 35ce8a23..f14a927a 100644 --- a/app/Composers/ThemeComposer.php +++ b/app/Composers/ThemeComposer.php @@ -23,8 +23,8 @@ class ThemeComposer */ public function compose(View $view) { - $view->with('themeBackgroundColor', Setting::get('style_background_color')); - $view->with('themeTextColor', Setting::get('style_text_color')); + $view->withThemeBackgroundColor(Setting::get('style_background_color')); + $view->withThemeTextColor(Setting::get('style_text_color')); $viewData = $view->getData(); $themeView = array_only($viewData, preg_grep('/^theme/', array_keys($viewData))); @@ -32,6 +32,6 @@ class ThemeComposer return $data != null; }); - $view->with('themeSetup', !empty($hasThemeSettings)); + $view->withThemeSetup(!empty($hasThemeSettings)); } } diff --git a/app/Composers/TimezoneLocaleComposer.php b/app/Composers/TimezoneLocaleComposer.php index 5080f74d..175438e8 100644 --- a/app/Composers/TimezoneLocaleComposer.php +++ b/app/Composers/TimezoneLocaleComposer.php @@ -65,9 +65,7 @@ class TimezoneLocaleComposer } } - $view->with([ - 'timezones' => $timezones, - 'langs' => $langs, - ]); + $view->withTimezones($timezones); + $view->withLangs($langs); } } diff --git a/app/Http/Controllers/Admin/ApiController.php b/app/Http/Controllers/Admin/ApiController.php index 59788859..94420db1 100644 --- a/app/Http/Controllers/Admin/ApiController.php +++ b/app/Http/Controllers/Admin/ApiController.php @@ -66,9 +66,7 @@ class ApiController extends AbstractController $groupData = Binput::get('ids'); foreach ($groupData as $order => $groupId) { - ComponentGroup::find($groupId)->update([ - 'order' => $order + 1, - ]); + ComponentGroup::find($groupId)->update(['order' => $order + 1]); } return $groupData; @@ -85,12 +83,10 @@ class ApiController extends AbstractController { $templateSlug = Binput::get('slug'); - $template = IncidentTemplate::where('slug', $templateSlug)->first(); - - if ($template) { + if ($template = IncidentTemplate::where('slug', $templateSlug)->first()) { return $template; } - throw new ModelNotFoundException('Incident template for '.$templateSlug.' could not be found.'); + throw new ModelNotFoundException("Incident template for $templateSlug could not be found."); } } diff --git a/app/Http/Controllers/Admin/ComponentController.php b/app/Http/Controllers/Admin/ComponentController.php index 99e43369..568209cc 100644 --- a/app/Http/Controllers/Admin/ComponentController.php +++ b/app/Http/Controllers/Admin/ComponentController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Http\Controllers\AbstractController; use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\ComponentGroup; @@ -57,11 +58,10 @@ class ComponentController extends AbstractController $this->subMenu['components']['active'] = true; - return View::make('dashboard.components.index')->with([ - 'page_title' => trans_choice('dashboard.components.components', 2).' - '.trans('dashboard.dashboard'), - 'components' => $components, - 'sub_menu' => $this->subMenu, - ]); + return View::make('dashboard.components.index') + ->withPageTitle(trans_choice('dashboard.components.components', 2).' - '.trans('dashboard.dashboard')) + ->withComponents($components) + ->withSubMenu($this->subMenu); } /** @@ -73,11 +73,10 @@ class ComponentController extends AbstractController { $this->subMenu['groups']['active'] = true; - return View::make('dashboard.components.groups.index')->with([ - 'page_title' => trans_choice('dashboard.components.groups.groups', 2).' - '.trans('dashboard.dashboard'), - 'groups' => ComponentGroup::orderBy('order')->get(), - 'sub_menu' => $this->subMenu, - ]); + return View::make('dashboard.components.groups.index') + ->withPageTitle(trans_choice('dashboard.components.groups.groups', 2).' - '.trans('dashboard.dashboard')) + ->withGroups(ComponentGroup::orderBy('order')->get()) + ->withSubMenu($this->subMenu); } /** @@ -91,18 +90,12 @@ class ComponentController extends AbstractController { $groups = ComponentGroup::all(); - $pageTitle = sprintf( - '"%s" - %s - %s', - $component->name, - trans('dashboard.components.edit.title'), - trans('dashboard.dashboard') - ); + $pageTitle = sprintf('"%s" - %s - %s', $component->name, trans('dashboard.components.edit.title'), trans('dashboard.dashboard')); - return View::make('dashboard.components.edit')->with([ - 'page_title' => $pageTitle, - 'component' => $component, - 'groups' => $groups, - ]); + return View::make('dashboard.components.edit') + ->withPageTitle($pageTitle) + ->withComponent($component) + ->withGroups($groups); } /** @@ -117,16 +110,13 @@ class ComponentController extends AbstractController $_component = Binput::get('component'); $tags = array_pull($_component, 'tags'); - $component->update($_component); - - if (!$component->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.components.edit.failure') - )) - ->with('errors', $component->getErrors()); + try { + $component->update($_component); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.edit.failure'))) + ->withErrors($e->getMessageBag()); } // The component was added successfully, so now let's deal with the tags. @@ -134,20 +124,13 @@ class ComponentController extends AbstractController // For every tag, do we need to create it? $componentTags = array_map(function ($taggable) use ($component) { - return Tag::firstOrCreate([ - 'name' => $taggable, - ])->id; + return Tag::firstOrCreate(['name' => $taggable])->id; }, $tags); $component->tags()->sync($componentTags); - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.components.edit.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.edit.success'))); } /** @@ -157,12 +140,9 @@ class ComponentController extends AbstractController */ public function showAddComponent() { - $groups = ComponentGroup::all(); - - return View::make('dashboard.components.add')->with([ - 'page_title' => trans('dashboard.components.add.title').' - '.trans('dashboard.dashboard'), - 'groups' => $groups, - ]); + return View::make('dashboard.components.add') + ->withPageTitle(trans('dashboard.components.add.title').' - '.trans('dashboard.dashboard')) + ->withGroups(ComponentGroup::all()); } /** @@ -176,16 +156,13 @@ class ComponentController extends AbstractController // We deal with tags separately. $tags = array_pull($_component, 'tags'); - $component = Component::create($_component); - - if (!$component->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.components.add.failure') - )) - ->with('errors', $component->getErrors()); + try { + $component = Component::create($_component); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.add.failure'))) + ->withErrors($e->getMessageBag()); } // The component was added successfully, so now let's deal with the tags. @@ -193,20 +170,13 @@ class ComponentController extends AbstractController // For every tag, do we need to create it? $componentTags = array_map(function ($taggable) use ($component) { - return Tag::firstOrCreate([ - 'name' => $taggable, - ])->id; + return Tag::firstOrCreate(['name' => $taggable])->id; }, $tags); $component->tags()->sync($componentTags); - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.components.add.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.add.success'))); } /** @@ -233,9 +203,7 @@ class ComponentController extends AbstractController public function deleteComponentGroupAction(ComponentGroup $group) { $group->components->map(function ($component) { - $component->update([ - 'group_id' => 0, - ]); + $component->update(['group_id' => 0]); }); $group->delete(); @@ -250,9 +218,8 @@ class ComponentController extends AbstractController */ public function showAddComponentGroup() { - return View::make('dashboard.components.groups.add')->with([ - 'page_title' => trans('dashboard.components.groups.add.title').' - '.trans('dashboard.dashboard'), - ]); + return View::make('dashboard.components.groups.add') + ->withPageTitle(trans('dashboard.components.groups.add.title').' - '.trans('dashboard.dashboard')); } /** @@ -264,10 +231,9 @@ class ComponentController extends AbstractController */ public function showEditComponentGroup(ComponentGroup $group) { - return View::make('dashboard.components.groups.edit')->with([ - 'page_title' => trans('dashboard.components.groups.edit.title').' - '.trans('dashboard.dashboard'), - 'group' => $group, - ]); + return View::make('dashboard.components.groups.edit') + ->withPageTitle(trans('dashboard.components.groups.edit.title').' - '.trans('dashboard.dashboard')) + ->withGroup($group); } /** @@ -277,25 +243,17 @@ class ComponentController extends AbstractController */ public function postAddComponentGroup() { - $group = ComponentGroup::create(Binput::get('group')); - - if (!$group->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.components.groups.add.failure') - )) - ->with('errors', $group->getErrors()); + try { + $group = ComponentGroup::create(Binput::get('group')); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.groups.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.components.groups.add.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.groups.add.success'))); } /** @@ -308,24 +266,17 @@ class ComponentController extends AbstractController public function updateComponentGroupAction(ComponentGroup $group) { $groupData = Binput::get('group'); - $group->update($groupData); - if (!$group->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.components.groups.edit.failure') - )) - ->with('errors', $group->getErrors()); + try { + $group->update($groupData); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.components.groups.edit.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.components.groups.edit.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.components.groups.edit.success'))); } } diff --git a/app/Http/Controllers/Admin/DashboardController.php b/app/Http/Controllers/Admin/DashboardController.php index 041ccd35..d903a132 100644 --- a/app/Http/Controllers/Admin/DashboardController.php +++ b/app/Http/Controllers/Admin/DashboardController.php @@ -26,9 +26,8 @@ class DashboardController extends AbstractController { $components = Component::orderBy('order')->get(); - return View::make('dashboard.index')->with([ - 'components' => $components, - ]); + return View::make('dashboard.index') + ->withComponents($components); } /** @@ -38,8 +37,7 @@ class DashboardController extends AbstractController */ public function showNotifications() { - return View::make('dashboard.notifications.index')->with([ - 'page_title' => trans('dashboard.notifications.notifications').' '.trans('dashboard.dashboard'), - ]); + return View::make('dashboard.notifications.index') + ->withPageTitle(trans('dashboard.notifications.notifications').' '.trans('dashboard.dashboard')); } } diff --git a/app/Http/Controllers/Admin/IncidentController.php b/app/Http/Controllers/Admin/IncidentController.php index dfb5414c..84a4184a 100644 --- a/app/Http/Controllers/Admin/IncidentController.php +++ b/app/Http/Controllers/Admin/IncidentController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Events\IncidentHasReportedEvent; use CachetHQ\Cachet\Facades\Setting; use CachetHQ\Cachet\Http\Controllers\AbstractController; @@ -68,10 +69,9 @@ class IncidentController extends AbstractController { $incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get(); - return View::make('dashboard.incidents.index')->with([ - 'page_title' => trans('dashboard.incidents.incidents').' - '.trans('dashboard.dashboard'), - 'incidents' => $incidents, - ]); + return View::make('dashboard.incidents.index') + ->withPageTitle(trans('dashboard.incidents.incidents').' - '.trans('dashboard.dashboard')) + ->withIncidents($incidents); } /** @@ -81,15 +81,11 @@ class IncidentController extends AbstractController */ public function showAddIncident() { - $componentsInGroups = ComponentGroup::with('components')->get(); - $componentsOutGroups = Component::where('group_id', 0)->get(); - - return View::make('dashboard.incidents.add')->with([ - 'page_title' => trans('dashboard.incidents.add.title').' - '.trans('dashboard.dashboard'), - 'componentsInGroups' => $componentsInGroups, - 'componentsOutGroups' => $componentsOutGroups, - 'incidentTemplates' => IncidentTemplate::all(), - ]); + return View::make('dashboard.incidents.add') + ->withPageTitle(trans('dashboard.incidents.add.title').' - '.trans('dashboard.dashboard')) + ->withComponentsInGroups(ComponentGroup::with('components')->get()) + ->withComponentsOutGroups(Component::where('group_id', 0)->get()) + ->withIncidentTemplates(IncidentTemplate::all()); } /** @@ -99,10 +95,9 @@ class IncidentController extends AbstractController */ public function showTemplates() { - return View::make('dashboard.incidents.templates.index')->with([ - 'page_title' => trans('dashboard.incidents.templates.title').' - '.trans('dashboard.dashboard'), - 'incidentTemplates' => IncidentTemplate::all(), - ]); + return View::make('dashboard.incidents.templates.index') + ->withPageTitle(trans('dashboard.incidents.templates.title').' - '.trans('dashboard.dashboard')) + ->withIncidentTemplates(IncidentTemplate::all()); } /** @@ -123,41 +118,26 @@ class IncidentController extends AbstractController unset($incidentData['created_at']); } - $incident = Incident::create($incidentData); - - if (!$incident->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.incidents.add.failure') - )) - ->with('errors', $incident->getErrors()); + try { + $incident = Incident::create($incidentData); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.add.failure'))) + ->withErrors($e->getMessageBag()); } // Update the component. if (isset($incidentData['component_id']) && (int) $incidentData['component_id'] > 0) { - Component::find($incidentData['component_id'])->update([ - 'status' => $componentStatus, - ]); + Component::find($incidentData['component_id'])->update(['status' => $componentStatus]); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.incidents.add.success') - ); - - $isEnabled = (bool) Setting::get('enable_subscribers', false); - $mailAddress = env('MAIL_ADDRESS', false); - $mailFrom = env('MAIL_NAME', false); - $subscribersEnabled = $isEnabled && $mailAddress && $mailFrom; - - if (array_get($incidentData, 'notify') && $subscribersEnabled) { + if (array_get($incidentData, 'notify') && subscribers_enabled()) { event(new IncidentHasReportedEvent($incident)); } - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.add.success'))); } /** @@ -167,9 +147,8 @@ class IncidentController extends AbstractController */ public function showAddIncidentTemplate() { - return View::make('dashboard.incidents.templates.add')->with([ - 'page_title' => trans('dashboard.incidents.templates.add.title').' - '.trans('dashboard.dashboard'), - ]); + return View::make('dashboard.incidents.templates.add') + ->withPageTitle(trans('dashboard.incidents.templates.add.title').' - '.trans('dashboard.dashboard')); } /** @@ -181,10 +160,9 @@ class IncidentController extends AbstractController */ public function showEditTemplateAction(IncidentTemplate $template) { - return View::make('dashboard.incidents.templates.edit')->with([ - 'page_title' => trans('dashboard.incidents.templates.edit.title').' - '.trans('dashboard.dashboard'), - 'template' => $template, - ]); + return View::make('dashboard.incidents.templates.edit') + ->withPageTitle(trans('dashboard.incidents.templates.edit.title').' - '.trans('dashboard.dashboard')) + ->withTemplate($template); } /** @@ -208,26 +186,17 @@ class IncidentController extends AbstractController */ public function createIncidentTemplateAction() { - $_template = Binput::get('template'); - $template = IncidentTemplate::create($_template); - - if (!$template->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.incidents.templates.add.failure') - )) - ->with('errors', $template->getErrors()); + try { + IncidentTemplate::create(Binput::get('template')); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.templates.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.incidents.templates.add.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.templates.add.success'))); } /** @@ -253,15 +222,11 @@ class IncidentController extends AbstractController */ public function showEditIncidentAction(Incident $incident) { - $componentsInGroups = ComponentGroup::with('components')->get(); - $componentsOutGroups = Component::where('group_id', 0)->get(); - - return View::make('dashboard.incidents.edit')->with([ - 'page_title' => trans('dashboard.incidents.edit.title').' - '.trans('dashboard.dashboard'), - 'incident' => $incident, - 'componentsInGroups' => $componentsInGroups, - 'componentsOutGroups' => $componentsOutGroups, - ]); + return View::make('dashboard.incidents.edit') + ->withPageTitle(trans('dashboard.incidents.edit.title').' - '.trans('dashboard.dashboard')) + ->withIncident($incident) + ->withComponentsInGroups(ComponentGroup::with('components')->get()) + ->withComponentsOutGroups(Component::where('group_id', 0)->get()); } /** @@ -283,32 +248,23 @@ class IncidentController extends AbstractController unset($incidentData['created_at']); } - $incident->update($incidentData); - - if (!$incident->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.incidents.templates.edit.failure') - )) - ->with('errors', $incident->getErrors()); + try { + $incident->update($incidentData); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.templates.edit.failure'))) + ->withErrors($e->getMessageBag()); } $componentStatus = array_pull($incidentData, 'component_status'); + if ($incident->component) { - $incident->component->update([ - 'status' => $componentStatus, - ]); + $incident->component->update(['status' => $componentStatus]); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.incidents.edit.success') - ); - - return Redirect::to('dashboard/incidents')->with('success', $successMsg); + return Redirect::to('dashboard/incidents') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.edit.success'))); } /** @@ -320,8 +276,15 @@ class IncidentController extends AbstractController */ public function editTemplateAction(IncidentTemplate $template) { - $template->update(Binput::get('template')); + try { + $template->update(Binput::get('template')); + } catch (ValidationException $e) { + return Redirect::back() + ->withUpdatedTemplate($template) + ->withTemplateErrors($e->getMessageBag()->getErrors()); + } - return Redirect::back()->with('updatedTemplate', $template); + return Redirect::back() + ->withUpdatedTemplate($template); } } diff --git a/app/Http/Controllers/Admin/MetricController.php b/app/Http/Controllers/Admin/MetricController.php index 1c62dbe4..e51319e9 100644 --- a/app/Http/Controllers/Admin/MetricController.php +++ b/app/Http/Controllers/Admin/MetricController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Http\Controllers\AbstractController; use CachetHQ\Cachet\Models\Metric; use CachetHQ\Cachet\Models\MetricPoint; @@ -29,10 +30,9 @@ class MetricController extends AbstractController { $metrics = Metric::orderBy('created_at', 'desc')->get(); - return View::make('dashboard.metrics.index')->with([ - 'page_title' => trans('dashboard.metrics.metrics').' - '.trans('dashboard.dashboard'), - 'metrics' => $metrics, - ]); + return View::make('dashboard.metrics.index') + ->withPageTitle(trans('dashboard.metrics.metrics').' - '.trans('dashboard.dashboard')) + ->withMetrics($metrics); } /** @@ -42,10 +42,8 @@ class MetricController extends AbstractController */ public function showAddMetric() { - return View::make('dashboard.metrics.add')->with([ - 'page_title' => trans('dashboard.metrics.add.title').' - '.trans('dashboard.dashboard'), - 'metricMetricPoints' => MetricPoint::all(), - ]); + return View::make('dashboard.metrics.add') + ->withPageTitle(trans('dashboard.metrics.add.title').' - '.trans('dashboard.dashboard')); } /** @@ -55,10 +53,9 @@ class MetricController extends AbstractController */ public function showMetricPoints() { - return View::make('dashboard.metrics.points.index')->with([ - 'page_title' => trans('dashboard.metrics.points.title').' - '.trans('dashboard.dashboard'), - 'metricMetricPoints' => MetricPoint::all(), - ]); + return View::make('dashboard.metrics.points.index') + ->withPageTitle(trans('dashboard.metrics.points.title').' - '.trans('dashboard.dashboard')) + ->withMetrics(MetricPoint::all()); } /** @@ -68,26 +65,17 @@ class MetricController extends AbstractController */ public function createMetricAction() { - $metricData = Binput::get('metric'); - $metric = Metric::create($metricData); - - if (!$metric->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.metrics.add.failure') - )) - ->with('errors', $metric->getErrors()); + try { + Metric::create(Binput::get('metric')); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.metrics.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.metrics.add.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.metrics.add.success'))); } /** @@ -97,9 +85,8 @@ class MetricController extends AbstractController */ public function showAddMetricPoint() { - return View::make('dashboard.metrics.points.add')->with([ - 'page_title' => trans('dashboard.metrics.points.add.title').' - '.trans('dashboard.dashboard'), - ]); + return View::make('dashboard.metrics.points.add') + ->withPageTitle(trans('dashboard.metrics.points.add.title').' - '.trans('dashboard.dashboard')); } /** @@ -109,26 +96,17 @@ class MetricController extends AbstractController */ public function createMetricPointAction() { - $_point = Binput::get('point', null, false); - $point = MetricPoint::create($_point); - - if (!$point->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.metrics.points.add.failure') - )) - ->with('errors', $point->getErrors()); + try { + MetricPoint::create(Binput::get('point', null, false)); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.metrics.points.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.metrics.points.add.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.metrics.points.add.success'))); } /** @@ -154,10 +132,9 @@ class MetricController extends AbstractController */ public function showEditMetricAction(Metric $metric) { - return View::make('dashboard.metrics.edit')->with([ - 'page_title' => trans('dashboard.metrics.edit.title').' - '.trans('dashboard.dashboard'), - 'metric' => $metric, - ]); + return View::make('dashboard.metrics.edit') + ->withPageTitle(trans('dashboard.metrics.edit.title').' - '.trans('dashboard.dashboard')) + ->withMetric($metric); } /** @@ -169,24 +146,16 @@ class MetricController extends AbstractController */ public function editMetricAction(Metric $metric) { - $metricData = Binput::get('metric', null, false); - $metric->update($metricData); - - if (!$metric->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s', - trans('dashboard.notifications.whoops') - )) - ->with('errors', $metric->getErrors()); + try { + $metric->update(Binput::get('metric', null, false)); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s', trans('dashboard.notifications.whoops'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.metrics.edit.success') - ); - - return Redirect::to('dashboard/metrics')->with('success', $successMsg); + return Redirect::to('dashboard/metrics') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.metrics.edit.success'))); } } diff --git a/app/Http/Controllers/Admin/ScheduleController.php b/app/Http/Controllers/Admin/ScheduleController.php index fd2b82c0..afb178f0 100644 --- a/app/Http/Controllers/Admin/ScheduleController.php +++ b/app/Http/Controllers/Admin/ScheduleController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Events\MaintenanceHasScheduledEvent; use CachetHQ\Cachet\Facades\Setting; use CachetHQ\Cachet\Http\Controllers\AbstractController; @@ -80,9 +81,8 @@ class ScheduleController extends AbstractController { $incidentTemplates = IncidentTemplate::all(); - return View::make('dashboard.schedule.add')->with([ - 'incidentTemplates' => $incidentTemplates, - ]); + return View::make('dashboard.schedule.add') + ->withIncidentTemplates($incidentTemplates); } /** @@ -99,9 +99,7 @@ class ScheduleController extends AbstractController if ($scheduledAt->isPast()) { $messageBag = new MessageBag(); - $messageBag->add('scheduled_at', trans('validation.date', [ - 'attribute' => 'scheduled time you supplied', - ])); + $messageBag->add('scheduled_at', trans('validation.date', ['attribute' => 'scheduled time you supplied'])); return Redirect::back()->withErrors($messageBag); } @@ -110,34 +108,21 @@ class ScheduleController extends AbstractController // Bypass the incident.status field. $scheduleData['status'] = 0; - $incident = Incident::create($scheduleData); - - if (!$incident->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('success', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.schedule.add.failure') - )) - ->with('errors', $incident->getErrors()); + try { + Incident::create($scheduleData); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.schedule.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.schedule.add.success') - ); - - $isEnabled = (bool) Setting::get('enable_subscribers', false); - $mailAddress = env('MAIL_ADDRESS', false); - $mailFrom = env('MAIL_NAME', false); - $subscribersEnabled = $isEnabled && $mailAddress && $mailFrom; - - if (array_get($scheduleData, 'notify') && $subscribersEnabled) { + if (array_get($scheduleData, 'notify') && subscribers_enabled()) { event(new MaintenanceHasScheduledEvent($incident)); } - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.schedule.add.success'))); } /** @@ -151,10 +136,9 @@ class ScheduleController extends AbstractController { $incidentTemplates = IncidentTemplate::all(); - return View::make('dashboard.schedule.edit')->with([ - 'incidentTemplates' => $incidentTemplates, - 'schedule' => $schedule, - ]); + return View::make('dashboard.schedule.edit') + ->withIncidentTemplates($incidentTemplates) + ->withSchedule($schedule); } /** @@ -173,9 +157,7 @@ class ScheduleController extends AbstractController if ($scheduledAt->isPast()) { $messageBag = new MessageBag(); - $messageBag->add('scheduled_at', trans('validation.date', [ - 'attribute' => 'scheduled time you supplied', - ])); + $messageBag->add('scheduled_at', trans('validation.date', ['attribute' => 'scheduled time you supplied'])); return Redirect::back()->withErrors($messageBag); } @@ -184,25 +166,17 @@ class ScheduleController extends AbstractController // Bypass the incident.status field. $scheduleData['status'] = 0; - $schedule->update($scheduleData); - - if (!$schedule->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.schedule.edit.failure') - )) - ->with('errors', $schedule->getErrors()); + try { + $schedule->update($scheduleData); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.schedule.edit.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.schedule.edit.success') - ); - - return Redirect::to('dashboard/schedule')->with('success', $successMsg); + return Redirect::to('dashboard/schedule') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.schedule.edit.success'))); } /** @@ -216,10 +190,7 @@ class ScheduleController extends AbstractController { $schedule->delete(); - return Redirect::back()->with('warning', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.schedule.delete.failure') - )); + return Redirect::back() + ->withWarning(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.schedule.delete.failure'))); } } diff --git a/app/Http/Controllers/Admin/SettingsController.php b/app/Http/Controllers/Admin/SettingsController.php index d85bc61b..777ef306 100644 --- a/app/Http/Controllers/Admin/SettingsController.php +++ b/app/Http/Controllers/Admin/SettingsController.php @@ -68,10 +68,9 @@ class SettingsController extends AbstractController { $this->subMenu['setup']['active'] = true; - return View::make('dashboard.settings.app-setup')->with([ - 'page_title' => 'Application Setup - Dashboard', - 'sub_menu' => $this->subMenu, - ]); + return View::make('dashboard.settings.app-setup') + ->withPageTitle('Application Setup - Dashboard') + ->withSubMenu($this->subMenu); } /** @@ -83,10 +82,9 @@ class SettingsController extends AbstractController { $this->subMenu['theme']['active'] = true; - return View::make('dashboard.settings.theme')->with([ - 'page_title' => 'Theme - Dashboard', - 'sub_menu' => $this->subMenu, - ]); + return View::make('dashboard.settings.theme') + ->withPageTitle('Theme - Dashboard') + ->withSubMenu($this->subMenu); } /** @@ -100,11 +98,10 @@ class SettingsController extends AbstractController $unsecureUsers = User::whereNull('google_2fa_secret')->orWhere('google_2fa_secret', '')->get(); - return View::make('dashboard.settings.security')->with([ - 'page_title' => 'Security - Dashboard', - 'sub_menu' => $this->subMenu, - 'unsecureUsers' => $unsecureUsers, - ]); + return View::make('dashboard.settings.security') + ->withPageTitle('Security - Dashboard') + ->withSubMenu($this->subMenu) + ->withUnsecureUsers($unsecureUsers); } /** @@ -116,10 +113,9 @@ class SettingsController extends AbstractController { $this->subMenu['stylesheet']['active'] = true; - return View::make('dashboard.settings.stylesheet')->with([ - 'page_title' => 'Stylesheet - Dashboard', - 'sub_menu' => $this->subMenu, - ]); + return View::make('dashboard.settings.stylesheet') + ->withPageTitle('Stylesheet - Dashboard') + ->withSubMenu($this->subMenu); } /** @@ -142,9 +138,7 @@ class SettingsController extends AbstractController $maxSize = $file->getMaxFilesize(); if ($file->getSize() > $maxSize) { - return Redirect::back()->withErrors(trans('dashboard.settings.app-setup.too-big', [ - 'size' => $maxSize, - ])); + return Redirect::back()->withErrors(trans('dashboard.settings.app-setup.too-big', ['size' => $maxSize])); } if (!$file->isValid() || $file->getError()) { @@ -156,18 +150,10 @@ class SettingsController extends AbstractController } // Store the banner. - Setting::firstOrCreate([ - 'name' => 'app_banner', - ])->update([ - 'value' => base64_encode(file_get_contents($file->getRealPath())), - ]); + Setting::firstOrCreate(['name' => 'app_banner'])->update(['value' => base64_encode(file_get_contents($file->getRealPath()))]); // Store the banner type - Setting::firstOrCreate([ - 'name' => 'app_banner_type', - ])->update([ - 'value' => $file->getMimeType(), - ]); + Setting::firstOrCreate(['name' => 'app_banner_type'])->update(['value' => $file->getMimeType()]); } try { @@ -176,18 +162,15 @@ class SettingsController extends AbstractController $settingValue = rtrim($settingValue, '/'); } - Setting::firstOrCreate([ - 'name' => $settingName, - ])->update([ - 'value' => $settingValue, - ]); + Setting::firstOrCreate(['name' => $settingName])->update(['value' => $settingValue]); } } catch (Exception $e) { - return Redirect::back()->with('errors', trans('dashboard.settings.edit.failure')); + return Redirect::back()->withErrors(trans('dashboard.settings.edit.failure')); } Lang::setLocale(Binput::get('app_locale')); - return Redirect::back()->with('success', trans('dashboard.settings.edit.success')); + return Redirect::back() + ->withSuccess(trans('dashboard.settings.edit.success')); } } diff --git a/app/Http/Controllers/Admin/SubscriberController.php b/app/Http/Controllers/Admin/SubscriberController.php index 28e3ab1b..5b06e8fb 100644 --- a/app/Http/Controllers/Admin/SubscriberController.php +++ b/app/Http/Controllers/Admin/SubscriberController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Events\CustomerHasSubscribedEvent; use CachetHQ\Cachet\Http\Controllers\AbstractController; use CachetHQ\Cachet\Models\Subscriber; @@ -30,10 +31,8 @@ class SubscriberController extends AbstractController $subscribers = Subscriber::all(); return View::make('dashboard.subscribers.index') - ->with([ - 'page_title' => trans('dashboard.subscribers.subscribers').' - '.trans('dashboard.dashboard'), - 'subscribers' => $subscribers, - ]); + ->withPageTitle(trans('dashboard.subscribers.subscribers').' - '.trans('dashboard.dashboard')) + ->withSubscribers(Subscriber::all()); } /** @@ -44,10 +43,7 @@ class SubscriberController extends AbstractController public function showAddSubscriber() { return View::make('dashboard.subscribers.add') - ->with([ - 'page_title' => trans('dashboard.subscribers.add.title').' - '.trans('dashboard.dashboard'), - 'incidentTemplates' => Subscriber::all(), - ]); + ->withPageTitle(trans('dashboard.subscribers.add.title').' - '.trans('dashboard.dashboard')); } /** @@ -59,31 +55,19 @@ class SubscriberController extends AbstractController { $email = Binput::get('email'); - $subscriber = Subscriber::create([ - 'email' => $email, - ]); - - if (!$subscriber->isValid()) { + try { + $subscriber = Subscriber::create(['email' => $email]); + } catch (ValidationException $e) { return Redirect::back() ->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.subscribers.add.failure') - )) - ->with('errors', $subscriber->getErrors()); + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.subscribers.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.subscribers.add.success') - ); - event(new CustomerHasSubscribedEvent($subscriber)); return Redirect::back() - ->with('success', $successMsg); + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.subscribers.add.success'))); } /** diff --git a/app/Http/Controllers/Admin/TeamController.php b/app/Http/Controllers/Admin/TeamController.php index a25c028f..617c90d8 100644 --- a/app/Http/Controllers/Admin/TeamController.php +++ b/app/Http/Controllers/Admin/TeamController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Http\Controllers\AbstractController; use CachetHQ\Cachet\Models\User; use GrahamCampbell\Binput\Facades\Binput; @@ -28,10 +29,9 @@ class TeamController extends AbstractController { $team = User::all(); - return View::make('dashboard.team.index')->with([ - 'page_title' => trans('dashboard.team.team').' - '.trans('dashboard.dashboard'), - 'teamMembers' => $team, - ]); + return View::make('dashboard.team.index') + ->withPageTitle(trans('dashboard.team.team').' - '.trans('dashboard.dashboard')) + ->withTeamMembers($team); } /** @@ -41,10 +41,9 @@ class TeamController extends AbstractController */ public function showTeamMemberView(User $user) { - return View::make('dashboard.team.edit')->with([ - 'page_title' => trans('dashboard.team.edit.title').' - '.trans('dashboard.dashboard'), - 'user' => $user, - ]); + return View::make('dashboard.team.edit') + ->withPageTitle(trans('dashboard.team.edit.title').' - '.trans('dashboard.dashboard')) + ->withUser($user); } /** @@ -54,9 +53,8 @@ class TeamController extends AbstractController */ public function showAddTeamMemberView() { - return View::make('dashboard.team.add')->with([ - 'page_title' => trans('dashboard.team.add.title').' - '.trans('dashboard.dashboard'), - ]); + return View::make('dashboard.team.add') + ->withPageTitle(trans('dashboard.team.add.title').' - '.trans('dashboard.dashboard')); } /** @@ -66,25 +64,17 @@ class TeamController extends AbstractController */ public function postAddUser() { - $user = User::create(Binput::all()); - - if (!$user->isValid()) { - return Redirect::back()->withInput(Binput::except('password')) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.team.add.failure') - )) - ->with('errors', $user->getErrors()); + try { + User::create(Binput::all()); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::except('password')) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.team.add.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.team.add.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.team.add.success'))); } /** @@ -104,24 +94,16 @@ class TeamController extends AbstractController unset($items['password']); } - $user->update($items); - - if (!$user->isValid()) { - return Redirect::back()->withInput(Binput::except('password')) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.team.edit.failure') - )) - ->with('errors', $user->getErrors()); + try { + $user->update($items); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::except('password')) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.team.edit.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.team.edit.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.team.edit.success'))); } } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 17a0f0fd..75a32a4c 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers\Admin; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Http\Controllers\AbstractController; use CachetHQ\Cachet\Models\User; use GrahamCampbell\Binput\Facades\Binput; @@ -28,9 +29,8 @@ class UserController extends AbstractController */ public function showUser() { - return View::make('dashboard.user.index')->with([ - 'page_title' => trans('dashboard.team.profile').' - '.trans('dashboard.dashboard'), - ]); + return View::make('dashboard.user.index') + ->withPageTitle(trans('dashboard.team.profile').' - '.trans('dashboard.dashboard')); } /** @@ -56,26 +56,17 @@ class UserController extends AbstractController unset($items['password']); } - $user = Auth::user(); - $user->update($items); - - if (!$user->isValid()) { - return Redirect::back()->withInput(Binput::except('password')) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('dashboard.team.edit.failure') - )) - ->with('errors', $user->getErrors()); + try { + Auth::user()->update($items); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::except('password')) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.team.edit.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('dashboard.team.edit.success') - ); - - return Redirect::back()->with('success', $successMsg); + return Redirect::back() + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.team.edit.success'))); } /** diff --git a/app/Http/Controllers/Api/ComponentController.php b/app/Http/Controllers/Api/ComponentController.php index 254f2f53..89a629b6 100644 --- a/app/Http/Controllers/Api/ComponentController.php +++ b/app/Http/Controllers/Api/ComponentController.php @@ -64,10 +64,6 @@ class ComponentController extends AbstractApiController throw new BadRequestHttpException(); } - if (!$component->isValid()) { - throw new BadRequestHttpException(); - } - if (Binput::has('tags')) { // The component was added successfully, so now let's deal with the tags. $tags = preg_split('/ ?, ?/', Binput::get('tags')); @@ -94,9 +90,9 @@ class ComponentController extends AbstractApiController */ public function putComponent(Component $component) { - $component->update(Binput::except('tags')); - - if (!$component->isValid('updating')) { + try { + $component->update(Binput::except('tags')); + } catch (Exception $e) { throw new BadRequestHttpException(); } @@ -105,9 +101,7 @@ class ComponentController extends AbstractApiController // For every tag, do we need to create it? $componentTags = array_map(function ($taggable) use ($component) { - return Tag::firstOrCreate([ - 'name' => $taggable, - ])->id; + return Tag::firstOrCreate(['name' => $taggable])->id; }, $tags); $component->tags()->sync($componentTags); diff --git a/app/Http/Controllers/Api/IncidentController.php b/app/Http/Controllers/Api/IncidentController.php index 105bcf0f..c4e17361 100644 --- a/app/Http/Controllers/Api/IncidentController.php +++ b/app/Http/Controllers/Api/IncidentController.php @@ -12,7 +12,6 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; use CachetHQ\Cachet\Events\IncidentHasReportedEvent; -use CachetHQ\Cachet\Facades\Setting; use CachetHQ\Cachet\Models\Incident; use Exception; use GrahamCampbell\Binput\Facades\Binput; @@ -34,8 +33,7 @@ class IncidentController extends AbstractApiController { $incidentVisiblity = $auth->check() ? 0 : 1; - $incidents = Incident::where('visible', '>=', $incidentVisiblity) - ->paginate(Binput::get('per_page', 20)); + $incidents = Incident::where('visible', '>=', $incidentVisiblity)->paginate(Binput::get('per_page', 20)); return $this->paginator($incidents, $request); } @@ -73,20 +71,11 @@ class IncidentController extends AbstractApiController throw new BadRequestHttpException(); } - $isEnabled = (bool) Setting::get('enable_subscribers', false); - $mailAddress = env('MAIL_ADDRESS', false); - $mailFrom = env('MAIL_NAME', false); - $subscribersEnabled = $isEnabled && $mailAddress && $mailFrom; - - if (array_get($incidentData, 'notify') && $subscribersEnabled) { + if (array_get($incidentData, 'notify') && subscribers_enabled()) { event(new IncidentHasReportedEvent($incident)); } - if ($incident->isValid()) { - return $this->item($incident); - } - - throw new BadRequestHttpException(); + return $this->item($incident); } /** @@ -98,13 +87,13 @@ class IncidentController extends AbstractApiController */ public function putIncident(Incident $incident) { - $incident->update(Binput::all()); - - if ($incident->isValid('updating')) { - return $this->item($incident); + try { + $incident->update(Binput::all()); + } catch (Exception $e) { + throw new BadRequestHttpException(); } - throw new BadRequestHttpException(); + return $this->item($incident); } /** diff --git a/app/Http/Controllers/Api/MetricController.php b/app/Http/Controllers/Api/MetricController.php index aeed19f0..82645cef 100644 --- a/app/Http/Controllers/Api/MetricController.php +++ b/app/Http/Controllers/Api/MetricController.php @@ -70,11 +70,7 @@ class MetricController extends AbstractApiController throw new BadRequestHttpException(); } - if ($metric->isValid()) { - return $this->item($metric); - } - - throw new BadRequestHttpException(); + return $this->item($metric); } /** @@ -86,13 +82,13 @@ class MetricController extends AbstractApiController */ public function putMetric(Metric $metric) { - $metric->update(Binput::all()); - - if ($metric->isValid('updating')) { - return $this->item($metric); + try { + $metric->update(Binput::all()); + } catch (Exception $e) { + throw new BadRequestHttpException(); } - throw new BadRequestHttpException(); + return $this->item($metric); } /** diff --git a/app/Http/Controllers/Api/SubscriberController.php b/app/Http/Controllers/Api/SubscriberController.php index 203fe534..712a4f6d 100644 --- a/app/Http/Controllers/Api/SubscriberController.php +++ b/app/Http/Controllers/Api/SubscriberController.php @@ -49,16 +49,12 @@ class SubscriberController extends AbstractApiController throw new BadRequestHttpException(); } - if ($subscriber->isValid()) { - // If we're auto-verifying the subscriber, don't bother with this event. - if (!(Binput::get('verify'))) { - event(new CustomerHasSubscribedEvent($subscriber)); - } - - return $this->item($subscriber); + // If we're auto-verifying the subscriber, don't bother with this event. + if (!(Binput::get('verify'))) { + event(new CustomerHasSubscribedEvent($subscriber)); } - throw new BadRequestHttpException(); + return $this->item($subscriber); } /** diff --git a/app/Http/Controllers/AtomController.php b/app/Http/Controllers/AtomController.php index 4cb2a418..d0cb6e06 100644 --- a/app/Http/Controllers/AtomController.php +++ b/app/Http/Controllers/AtomController.php @@ -56,6 +56,8 @@ class AtomController extends AbstractController * * @param \Roumen\Feed\Facades\Feed $feed * @param \CachetHQ\Cachet\Models\Incident $incident + * + * @return void */ private function feedAddItem(&$feed, $incident) { diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 6451fcf5..0debd9a1 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -19,9 +19,6 @@ use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\View; use PragmaRX\Google2FA\Vendor\Laravel\Facade as Google2FA; -/** - * Logs users into their account. - */ class AuthController extends AbstractController { /** @@ -31,9 +28,8 @@ class AuthController extends AbstractController */ public function showLogin() { - return View::make('auth.login')->with([ - 'page_title' => trans('dashboard.login.login'), - ]); + return View::make('auth.login') + ->withPageTitle(trans('dashboard.login.login')); } /** @@ -64,7 +60,7 @@ class AuthController extends AbstractController return Redirect::back() ->withInput(Binput::except('password')) - ->with('error', trans('forms.login.invalid')); + ->withError(trans('forms.login.invalid')); } /** @@ -101,11 +97,11 @@ class AuthController extends AbstractController // Failed login, log back out. Auth::logout(); - return Redirect::route('login')->with('error', trans('forms.login.invalid-token')); + return Redirect::route('login')->withError(trans('forms.login.invalid-token')); } } - return Redirect::route('login')->with('error', trans('forms.login.invalid-token')); + return Redirect::route('login')->withError(trans('forms.login.invalid-token')); } /** diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index c928ada3..7e828502 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -92,21 +92,18 @@ class HomeController extends AbstractController $componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->orderBy('order')->get(); $ungroupedComponents = Component::where('group_id', 0)->orderBy('order')->orderBy('created_at')->get(); - $canPageBackward = Incident::notScheduled()->where('created_at', '<', $startDate->format('Y-m-d'))->count() != 0; - - return View::make('index', [ - 'componentGroups' => $componentGroups, - 'ungroupedComponents' => $ungroupedComponents, - 'displayMetrics' => $displayMetrics, - 'metrics' => $metrics, - 'allIncidents' => $allIncidents, - 'scheduledMaintenance' => $scheduledMaintenance, - 'aboutApp' => Markdown::convertToHtml(Setting::get('app_about')), - 'canPageForward' => (bool) $today->gt($startDate), - 'canPageBackward' => $canPageBackward, - 'previousDate' => $startDate->copy()->subDays($daysToShow)->toDateString(), - 'nextDate' => $startDate->copy()->addDays($daysToShow)->toDateString(), - 'page_title' => Setting::get('app_name'), - ]); + return View::make('index') + ->withComponentGroups($componentGroups) + ->withUngroupedComponents($ungroupedComponents) + ->withDisplayMetrics($displayMetrics) + ->withMetrics($metrics) + ->withAllIncidents($allIncidents) + ->withScheduledMaintenance($scheduledMaintenance) + ->withAboutApp(Markdown::convertToHtml(Setting::get('app_about'))) + ->withCanPageForward((bool) $today->gt($startDate)) + ->withCanPageBackward(Incident::notScheduled()->where('created_at', '<', $startDate->format('Y-m-d'))->count() > 0) + ->withPreviousDate($startDate->copy()->subDays($daysToShow)->toDateString()) + ->withNextDate($startDate->copy()->addDays($daysToShow)->toDateString()) + ->withPageTitle(Setting::get('app_name')); } } diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 39ee23ca..8eaab51f 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -41,6 +41,8 @@ class SetupController extends AbstractController /** * Create a new setup controller instance. + * + * @return void */ public function __construct() { @@ -59,11 +61,10 @@ class SetupController extends AbstractController $this->keyGenerate(); } - return View::make('setup')->with([ - 'page_title' => trans('setup.setup'), - 'cacheDrivers' => $this->cacheDrivers, - 'appUrl' => Request::root(), - ]); + return View::make('setup') + ->withPageTitle(trans('setup.setup')) + ->withCacheDrivers($this->cacheDrivers) + ->withAppUrl(Request::root()); } /** @@ -82,9 +83,9 @@ class SetupController extends AbstractController if ($v->passes()) { return Response::json(['status' => 1]); - } else { - return Response::json(['errors' => $v->messages()], 400); } + + return Response::json(['errors' => $v->getMessageBag()], 400); } /** @@ -108,9 +109,9 @@ class SetupController extends AbstractController if ($v->passes()) { return Response::json(['status' => 1]); - } else { - return Response::json(['errors' => $v->messages()], 400); } + + return Response::json(['errors' => $v->getMessageBag()], 400); } /** @@ -171,13 +172,13 @@ class SetupController extends AbstractController } return Redirect::to('dashboard'); - } else { - if (Request::ajax()) { - return Response::json(['errors' => $v->messages()], 400); - } - - return Redirect::back()->withInput()->with('errors', $v->messages()); } + + if (Request::ajax()) { + return Response::json(['errors' => $v->getMessageBag()], 400); + } + + return Redirect::back()->withInput()->withErrors($v->getMessageBag()); } /** @@ -185,6 +186,8 @@ class SetupController extends AbstractController * * @param string $key * @param mixed $value + * + * @return void */ protected function writeEnv($key, $value) { @@ -200,6 +203,8 @@ class SetupController extends AbstractController /** * Generate the app.key value. + * + * @return void */ protected function keyGenerate() { diff --git a/app/Http/Controllers/SubscribeController.php b/app/Http/Controllers/SubscribeController.php index 320e06a0..cb37f20d 100644 --- a/app/Http/Controllers/SubscribeController.php +++ b/app/Http/Controllers/SubscribeController.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Http\Controllers; +use AltThree\Validator\ValidationException; use CachetHQ\Cachet\Events\CustomerHasSubscribedEvent; use CachetHQ\Cachet\Facades\Setting; use CachetHQ\Cachet\Models\Subscriber; @@ -30,10 +31,9 @@ class SubscribeController extends AbstractController */ public function showSubscribe() { - return View::make('subscribe', [ - 'page_title' => Setting::get('app_name'), - 'aboutApp' => Markdown::convertToHtml(Setting::get('app_about')), - ]); + return View::make('subscribe') + ->withPageTitle(Setting::get('app_name')) + ->withAboutApp(Markdown::convertToHtml(Setting::get('app_about'))); } /** @@ -43,33 +43,25 @@ class SubscribeController extends AbstractController */ public function postSubscribe() { - $subscriber = Subscriber::create(['email' => Binput::get('email')]); - - if (!$subscriber->isValid()) { - return Redirect::back()->withInput(Binput::all()) - ->with('title', sprintf( - '%s %s', - trans('dashboard.notifications.whoops'), - trans('cachet.subscriber.email.failure') - )) - ->with('errors', $subscriber->getErrors()); + try { + $subscriber = Subscriber::create(['email' => Binput::get('email')]); + } catch (ValidationException $e) { + return Redirect::back() + ->withInput(Binput::all()) + ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('cachet.subscriber.email.failure'))) + ->withErrors($e->getMessageBag()); } - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('cachet.subscriber.email.subscribed') - ); - event(new CustomerHasSubscribedEvent($subscriber)); - return Redirect::route('status-page')->with('success', $successMsg); + return Redirect::route('status-page') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.subscribed'))); } /** * Handle the verify subscriber email. * - * @param string $code + * @param string|null $code * * @return \Illuminate\View\View */ @@ -88,19 +80,14 @@ class SubscribeController extends AbstractController $subscriber->verified_at = Carbon::now(); $subscriber->save(); - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('cachet.subscriber.email.verified') - ); - - return Redirect::route('status-page')->with('success', $successMsg); + return Redirect::route('status-page') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.verified'))); } /** * Handle the unsubscribe. * - * @param string $code + * @param string|null $code * * @return \Illuminate\View\View */ @@ -118,12 +105,7 @@ class SubscribeController extends AbstractController $subscriber->delete(); - $successMsg = sprintf( - '%s %s', - trans('dashboard.notifications.awesome'), - trans('cachet.subscriber.email.unsuscribed') - ); - - return Redirect::route('status-page')->with('success', $successMsg); + return Redirect::route('status-page') + ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('cachet.subscriber.email.unsuscribed'))); } } diff --git a/app/Models/Component.php b/app/Models/Component.php index 53160e73..77e2d5f8 100644 --- a/app/Models/Component.php +++ b/app/Models/Component.php @@ -11,12 +11,12 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Presenters\ComponentPresenter; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use McCool\LaravelAutoPresenter\HasPresenter; -use Watson\Validating\ValidatingTrait; class Component extends Model implements HasPresenter { @@ -27,7 +27,7 @@ class Component extends Model implements HasPresenter * * @var string[] */ - protected $rules = [ + public $rules = [ 'name' => 'required|string', 'status' => 'integer|required', 'link' => 'url', diff --git a/app/Models/ComponentGroup.php b/app/Models/ComponentGroup.php index 30a58164..a341c4f2 100644 --- a/app/Models/ComponentGroup.php +++ b/app/Models/ComponentGroup.php @@ -11,8 +11,8 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use Illuminate\Database\Eloquent\Model; -use Watson\Validating\ValidatingTrait; class ComponentGroup extends Model { @@ -23,8 +23,8 @@ class ComponentGroup extends Model * * @var string[] */ - protected $rules = [ - 'name' => 'required|unique:component_groups', + public $rules = [ + 'name' => 'required', ]; /** diff --git a/app/Models/Incident.php b/app/Models/Incident.php index 82aa4581..2fc11769 100644 --- a/app/Models/Incident.php +++ b/app/Models/Incident.php @@ -11,12 +11,12 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Presenters\IncidentPresenter; use Carbon\Carbon; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use McCool\LaravelAutoPresenter\HasPresenter; -use Watson\Validating\ValidatingTrait; class Incident extends Model implements HasPresenter { @@ -27,7 +27,7 @@ class Incident extends Model implements HasPresenter * * @var string[] */ - protected $rules = [ + public $rules = [ 'component_id' => 'integer', 'name' => 'required', 'status' => 'required|integer', diff --git a/app/Models/IncidentTemplate.php b/app/Models/IncidentTemplate.php index 3c038599..673054ae 100644 --- a/app/Models/IncidentTemplate.php +++ b/app/Models/IncidentTemplate.php @@ -11,9 +11,9 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Str; -use Watson\Validating\ValidatingTrait; class IncidentTemplate extends Model { @@ -24,7 +24,7 @@ class IncidentTemplate extends Model * * @var string[] */ - protected $rules = [ + public $rules = [ 'name' => 'required', 'template' => 'required', ]; diff --git a/app/Models/Metric.php b/app/Models/Metric.php index fa7a9b27..a7565f60 100644 --- a/app/Models/Metric.php +++ b/app/Models/Metric.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Facades\Setting as SettingFacade; use CachetHQ\Cachet\Presenters\MetricPresenter; use DateInterval; @@ -19,7 +20,6 @@ use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\DB; use Jenssegers\Date\Date; use McCool\LaravelAutoPresenter\HasPresenter; -use Watson\Validating\ValidatingTrait; class Metric extends Model implements HasPresenter { @@ -45,7 +45,7 @@ class Metric extends Model implements HasPresenter * * @var string[] */ - protected $rules = [ + public $rules = [ 'name' => 'required', 'suffix' => 'required', 'display_chart' => 'boolean', diff --git a/app/Models/MetricPoint.php b/app/Models/MetricPoint.php index 0579634b..ebba7d9f 100644 --- a/app/Models/MetricPoint.php +++ b/app/Models/MetricPoint.php @@ -11,10 +11,10 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Presenters\MetricPointPresenter; use Illuminate\Database\Eloquent\Model; use McCool\LaravelAutoPresenter\HasPresenter; -use Watson\Validating\ValidatingTrait; class MetricPoint extends Model implements HasPresenter { @@ -32,7 +32,7 @@ class MetricPoint extends Model implements HasPresenter * * @var string[] */ - protected $rules = [ + public $rules = [ 'value' => 'numeric|required', ]; diff --git a/app/Models/Subscriber.php b/app/Models/Subscriber.php index 5587a57d..3b96b969 100644 --- a/app/Models/Subscriber.php +++ b/app/Models/Subscriber.php @@ -11,10 +11,10 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use CachetHQ\Cachet\Presenters\SubscriberPresenter; use Illuminate\Database\Eloquent\Model; use McCool\LaravelAutoPresenter\HasPresenter; -use Watson\Validating\ValidatingTrait; class Subscriber extends Model implements HasPresenter { @@ -25,8 +25,8 @@ class Subscriber extends Model implements HasPresenter * * @var string[] */ - protected $rules = [ - 'email' => 'required|email|unique:subscribers', + public $rules = [ + 'email' => 'required|email', ]; /** diff --git a/app/Models/User.php b/app/Models/User.php index ce8d72f8..a7efda34 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -11,6 +11,7 @@ namespace CachetHQ\Cachet\Models; +use AltThree\Validator\ValidatingTrait; use Illuminate\Auth\Authenticatable; use Illuminate\Auth\Passwords\CanResetPassword; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; @@ -18,7 +19,6 @@ use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Support\Facades\Hash; -use Watson\Validating\ValidatingTrait; class User extends Model implements AuthenticatableContract, CanResetPasswordContract { @@ -29,9 +29,9 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon * * @var string[] */ - protected $rules = [ - 'username' => ['required', 'regex:/\A(?!.*[:;]-\))[ -~]+\z/', 'unique:users'], - 'email' => 'required|email|unique:users', + public $rules = [ + 'username' => ['required', 'regex:/\A(?!.*[:;]-\))[ -~]+\z/'], + 'email' => 'required|email', 'password' => 'required', ]; diff --git a/app/Providers/ComposerServiceProvider.php b/app/Providers/ComposerServiceProvider.php index 6f57a669..a5c95e8a 100644 --- a/app/Providers/ComposerServiceProvider.php +++ b/app/Providers/ComposerServiceProvider.php @@ -12,9 +12,9 @@ namespace CachetHQ\Cachet\Providers; use CachetHQ\Cachet\Composers\AppComposer; +use CachetHQ\Cachet\Composers\CurrentUserComposer; use CachetHQ\Cachet\Composers\DashboardComposer; use CachetHQ\Cachet\Composers\IndexComposer; -use CachetHQ\Cachet\Composers\LoggedUserComposer; use CachetHQ\Cachet\Composers\ThemeComposer; use CachetHQ\Cachet\Composers\TimezoneLocaleComposer; use Illuminate\Contracts\View\Factory; @@ -30,7 +30,7 @@ class ComposerServiceProvider extends ServiceProvider public function boot(Factory $factory) { $factory->composer('*', AppComposer::class); - $factory->composer('*', LoggedUserComposer::class); + $factory->composer('*', CurrentUserComposer::class); $factory->composer(['index', 'subscribe'], IndexComposer::class); $factory->composer(['index', 'subscribe'], ThemeComposer::class); $factory->composer('dashboard.*', DashboardComposer::class); diff --git a/composer.json b/composer.json index 0ff7d64f..7ace161d 100644 --- a/composer.json +++ b/composer.json @@ -22,6 +22,7 @@ "php": "^5.5.9", "laravel/framework": "~5.1.6", "alt-three/emoji": "^1.0", + "alt-three/validator": "^1.2", "barryvdh/laravel-cors": "^0.5", "doctrine/dbal": "^2.5", "fideloper/proxy": "^3.0", @@ -33,8 +34,7 @@ "jenssegers/date": "^3.0", "mccool/laravel-auto-presenter": "^3.1", "pragmarx/google2fa": "^0.5", - "roumen/feed": "^2.9", - "watson/validating": "^1.0" + "roumen/feed": "^2.9" }, "require-dev": { "fzaninotto/faker": "^1.5", diff --git a/composer.lock b/composer.lock index f02eb2cd..c72370a3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "f7d40ec10be871e505c18b6e4331322d", + "hash": "b875f1d2eed19b89b2c784345ca2d200", "packages": [ { "name": "alt-three/emoji", @@ -67,6 +67,66 @@ ], "time": "2015-07-25 14:20:46" }, + { + "name": "alt-three/validator", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/AltThree/Validator.git", + "reference": "01fc9ab865df38254d03c749f6a266529a2df392" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/AltThree/Validator/zipball/01fc9ab865df38254d03c749f6a266529a2df392", + "reference": "01fc9ab865df38254d03c749f6a266529a2df392", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.1.*", + "illuminate/support": "5.1.*", + "php": ">=5.5.9", + "psr/log": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.7.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "AltThree\\Validator\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "James Brooks", + "email": "james@alt-three.com" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + }, + { + "name": "Joseph Cohen", + "email": "joe@alt-three.com" + } + ], + "description": "A Validation Wrapper For Laravel 5", + "keywords": [ + "Alt Three", + "logging", + "validator" + ], + "time": "2015-07-28 23:55:40" + }, { "name": "asm89/stack-cors", "version": "0.2.1", @@ -3165,61 +3225,6 @@ "environment" ], "time": "2015-05-30 15:59:26" - }, - { - "name": "watson/validating", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/dwightwatson/validating.git", - "reference": "c32912f760b456c043657951683ed6c468ab83e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dwightwatson/validating/zipball/c32912f760b456c043657951683ed6c468ab83e7", - "reference": "c32912f760b456c043657951683ed6c468ab83e7", - "shasum": "" - }, - "require": { - "illuminate/contracts": "5.0.*|5.1.*", - "illuminate/database": "5.0.*|5.1.*", - "illuminate/events": "5.0.*|5.1.*", - "illuminate/support": "5.0.*|5.1.*", - "illuminate/validation": "5.0.*|5.1.*", - "php": ">=5.4.0" - }, - "require-dev": { - "mockery/mockery": "0.9.*", - "phpunit/phpunit": "~4.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Watson\\Validating\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dwight Watson", - "email": "dwight@studiousapp.com" - } - ], - "description": "Eloquent model validating trait.", - "keywords": [ - "eloquent", - "laravel", - "validation" - ], - "time": "2015-06-03 02:25:38" } ], "packages-dev": [ diff --git a/resources/views/dashboard/components/edit.blade.php b/resources/views/dashboard/components/edit.blade.php index 1232fea4..3056f93f 100644 --- a/resources/views/dashboard/components/edit.blade.php +++ b/resources/views/dashboard/components/edit.blade.php @@ -58,7 +58,7 @@ - +