/** * Handle the command. * * @param ModuleCollection $modules * @param ThemeCollection $themes */ public function handle(ModuleCollection $modules, ThemeCollection $themes) { $theme = $themes->current(); /* * Default the form view based on the request. */ if (!$this->builder->getFormOption('form_view') && $this->builder->isAjax()) { $this->builder->setFormOption('form_view', 'streams::form/ajax'); } if (!$this->builder->getFormOption('form_view') && $theme && $theme->isAdmin()) { $this->builder->setFormOption('form_view', 'streams::form/form'); } if (!$this->builder->getFormOption('form_view') && $theme && !$theme->isAdmin()) { $this->builder->setFormOption('form_view', 'streams::form/standard'); } if (!$this->builder->getFormOption('form_view')) { $this->builder->setFormOption('form_view', 'streams::form/admin/form'); } /* * Default the form wrapper view as well. */ if (!$this->builder->getFormOption('wrapper_view') && $this->builder->isAjax()) { $this->builder->setFormOption('wrapper_view', 'streams::ajax'); } if (!$this->builder->getFormOption('wrapper_view')) { $this->builder->setFormOption('wrapper_view', 'streams::blank'); } /* * If the permission is not set then * try and automate it. */ if ($this->builder->getFormOption('permission') === null && ($module = $modules->active()) && ($stream = $this->builder->getFormStream())) { $this->builder->setFormOption('permission', $module->getNamespace($stream->getSlug() . '.write')); } }
/** * Handle the command. * * @param Dispatcher $events */ public function handle(Dispatcher $events) { $this->builder->fire('posting', ['builder' => $this->builder]); $this->builder->fireFieldEvents('form_posting'); $this->dispatch(new LoadFormValues($this->builder)); /** * Multiple form builders do not get * validated here.. in fact: * * @todo: Decouple validation into it's own method like multiple form builders */ if (!$this->builder instanceof MultipleFormBuilder) { $this->dispatch(new ValidateForm($this->builder)); } $this->dispatch(new RemoveSkippedFields($this->builder)); $this->dispatch(new HandleForm($this->builder)); $this->dispatch(new SetSuccessMessage($this->builder)); $this->dispatch(new SetActionResponse($this->builder)); if ($this->builder->isAjax()) { $this->dispatch(new SetJsonResponse($this->builder)); } $this->builder->fire('posted', ['builder' => $this->builder]); $this->builder->fireFieldEvents('form_posted'); $events->fire(new FormWasPosted($this->builder)); }
/** * Handle the command. * * @param Request $request * @param MessageBag $messages * @param Translator $translator */ public function handle(Request $request, MessageBag $messages, Translator $translator) { if ($this->builder->isAjax()) { return; } $errors = $this->builder->getFormErrors(); $messages->error($errors->all()); if ($request->segment(1) == 'admin' && ($stream = $this->builder->getFormStream()) && $stream->isTrashable()) { /* @var AssignmentInterface $assignment */ foreach ($stream->getUniqueAssignments() as $assignment) { if ($this->builder->hasFormError($assignment->getFieldSlug())) { $messages->warning($translator->trans('streams::validation.unique_trash', ['attribute' => '"' . $translator->trans($assignment->getFieldName()) . '"'])); } } } }
/** * Handle the command. * * @param Dispatcher $events */ public function handle(Dispatcher $events) { $this->builder->fire('posting', ['builder' => $this->builder]); $this->builder->fireFieldEvents('form_posting'); $this->dispatch(new LoadFormValues($this->builder)); $this->dispatch(new ValidateForm($this->builder)); $this->dispatch(new RemoveSkippedFields($this->builder)); $this->dispatch(new HandleForm($this->builder)); $this->dispatch(new SetSuccessMessage($this->builder)); $this->dispatch(new SetActionResponse($this->builder)); if ($this->builder->isAjax() && !$this->builder->getFormResponse()) { $this->dispatch(new SetJsonResponse($this->builder)); } $this->builder->fire('posted', ['builder' => $this->builder]); $this->builder->fireFieldEvents('form_posted'); $events->fire(new FormWasPosted($this->builder)); }