widget = $widget; } /** * Form for new widget area * * @param WidgetType $widgetType * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View * */ public function getNew(WidgetType $widgetType) { $presenter = call_user_func([$widgetType->handler, 'getPresenter']); return call_user_func([$presenter, 'renderAddForm'], $widgetType); } /** * Create new instance of given widget type * * @param NewWidgetRequest $request * * @param WidgetType $widgetType * * @return \Illuminate\Http\RedirectResponse */ public function postNew(NewWidgetRequest $request, WidgetType $widgetType) { // try to save this widget try { $this->widget->createNew($widgetType, $request); } catch (MissingParameterException $e) { // user omitted some value return redirect() ->back() ->withInput() ->with('error', $e->getMessage()); } // redirect with success notification return redirect() ->route('widgets.overview') ->with('success', trans('admin/widgets.successfullyCreated')); } }