/** * Set the active action. */ public function handle() { $options = $this->builder->getFormOptions(); $actions = $this->builder->getFormActions(); if ($action = $actions->findBySlug(app('request')->get($options->get('prefix') . 'action'))) { $action->setActive(true); } if (!$action && ($action = $actions->first())) { $action->setActive(true); } }
/** * 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 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)); }
/** * Handle the command. * * @param ResponseFactory $response */ public function handle(ResponseFactory $response) { $this->builder->setFormResponse($response->json(['errors' => $this->builder->getFormErrors()->getMessages(), 'redirect' => $this->builder->getFormOption('redirect', $this->builder->getFormActions()->active()->getRedirect())])); }