*/ class IncidentTemplateController extends Controller { /** * Stores the sub-sidebar tree list. * * @var array */ protected $subMenu = []; /** * The guard instance. * * @var \Illuminate\Contracts\Auth\Guard */ protected $auth; /** * The system instance. * * @var \CachetHQ\Cachet\Integrations\Contracts\System */ protected $system; /** * Creates a new incident controller instance. * * @param \Illuminate\Contracts\Auth\Guard $auth * * @return void */ public function __construct(Guard $auth, System $system) { $this->auth = $auth; $this->system = $system; View::share('sub_title', trans('dashboard.incidents.title')); } /** * Shows the incident templates. * * @return \Illuminate\View\View */ public function showTemplates() { return View::make('dashboard.templates.index') ->withPageTitle(trans('dashboard.incidents.templates.title').' - '.trans('dashboard.dashboard')) ->withIncidentTemplates(IncidentTemplate::all()); } /** * Shows the add incident template view. * * @return \Illuminate\View\View */ public function showAddIncidentTemplate() { return View::make('dashboard.templates.add') ->withPageTitle(trans('dashboard.incidents.templates.add.title').' - '.trans('dashboard.dashboard')); } /** * Shows the edit incident template view. * * @param \CachetHQ\Cachet\Models\IncidentTemplate $template * * @return \Illuminate\View\View */ public function showEditTemplateAction(IncidentTemplate $template) { return View::make('dashboard.templates.edit') ->withPageTitle(trans('dashboard.incidents.templates.edit.title').' - '.trans('dashboard.dashboard')) ->withTemplate($template); } /** * Deletes an incident template. * * @param \CachetHQ\Cachet\Models\IncidentTemplate $template * * @return \Illuminate\Http\RedirectResponse */ public function deleteTemplateAction(IncidentTemplate $template) { $template->delete(); return cachet_redirect('dashboard.templates') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.templates.delete.success'))); } /** * Creates a new incident template. * * @return \Illuminate\Http\RedirectResponse */ public function createIncidentTemplateAction() { try { IncidentTemplate::create([ 'name' => Binput::get('name'), 'template' => Binput::get('template', null, false, false), ]); } catch (ValidationException $e) { return cachet_redirect('dashboard.templates.create') ->withInput(Binput::all()) ->withTitle(sprintf('%s %s', trans('dashboard.notifications.whoops'), trans('dashboard.incidents.templates.add.failure'))) ->withErrors($e->getMessageBag()); } return cachet_redirect('dashboard.templates') ->withSuccess(sprintf('%s %s', trans('dashboard.notifications.awesome'), trans('dashboard.incidents.templates.add.success'))); } /** * Edit an incident template. * * @param \CachetHQ\Cachet\Models\IncidentTemplate $template * * @return \Illuminate\Http\RedirectResponse */ public function editTemplateAction(IncidentTemplate $template) { try { $template->update(Binput::get('template')); } catch (ValidationException $e) { return cachet_redirect('dashboard.templates.edit', ['id' => $template->id]) ->withUpdatedTemplate($template) ->withTemplateErrors($e->getMessageBag()->getErrors()); } return cachet_redirect('dashboard.templates.edit', ['id' => $template->id]) ->withUpdatedTemplate($template); } }