/** * Handle the command. * * @param ResponseFactory $response * @param ActionResponder $responder */ public function handle(ResponseFactory $response, ActionResponder $responder) { $data = new Collection(); if ($action = $this->builder->getActiveFormAction()) { $responder->setFormResponse($this->builder, $action); $original = $this->builder->getFormResponse(); if ($original instanceof RedirectResponse) { $data->put('redirect', $original->getTargetUrl()); } } $data->put('success', !$this->builder->hasFormErrors()); $data->put('errors', $this->builder->getFormErrors()->toArray()); $this->builder->setFormResponse($response = $response->json($data)); }
/** * Handle the command. * * @param ActionResponder $responder */ public function handle(ActionResponder $responder) { $actions = $this->builder->getFormActions(); if ($this->builder->getFormResponse()) { return; } if ($this->builder->hasFormErrors()) { return; } if (!$this->builder->canSave()) { return; } if ($action = $actions->active()) { $responder->setFormResponse($this->builder, $action); } }
/** * 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)); }
/** * Handle the form response. * * @param FormBuilder $builder */ public function handle(FormBuilder $builder) { /* * If the form already has a response * then we're being overridden. Abort! */ if ($builder->getFormResponse()) { return; } $entry = $builder->getFormEntry(); $actions = $builder->getFormActions(); $action = $actions->active(); if ($entry && $entry instanceof Arrayable) { $entry = $entry->toArray(); } $redirect = $action->getRedirect(); if ($redirect instanceof RedirectResponse) { $builder->setFormResponse($redirect); return; } if ($redirect === false) { return; } $redirect = $this->parser->parse($redirect, compact('entry')); /* * If the redirect is null then use the current one. */ if ($redirect === null) { $redirect = $this->redirector->back()->getTargetUrl(); } /* * If the URL is a closure then call it. */ if ($redirect instanceof \Closure) { $redirect = app()->call($redirect, compact('builder')); } /* * Restore the query string prior if * we're coming from a table. */ if ($query = $this->session->get('table::' . $redirect)) { $redirect = strpos($redirect, '?') ? $redirect . '&' . $query : $redirect . '?' . $query; } $builder->setFormResponse($this->redirector->to($redirect)); }