/** * Handle the command. * * @param Resolver $resolver * @param Evaluator $evaluator */ public function handle(Resolver $resolver, Evaluator $evaluator) { $evaluator->evaluate($resolver->resolve($this->builder->getOptions(), ['builder' => $this->builder]), ['builder' => $this->builder]); foreach ($this->builder->getOptions() as $key => $value) { $this->builder->setFormOption($key, $value); } }
/** * 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 Container $container * @param ViewTemplate $template * @param BreadcrumbCollection $breadcrumbs */ public function handle(Container $container, ViewTemplate $template, BreadcrumbCollection $breadcrumbs) { $form = $this->builder->getForm(); if ($handler = $form->getOption('data')) { $container->call($handler, compact('form')); } if ($layout = $form->getOption('layout_view')) { $template->put('layout', $layout); } if ($title = $form->getOption('title')) { $template->put('title', $title); } // Move this to options so we can read it. $this->builder->setFormOption('read_only', $this->builder->isReadOnly()); $form->addData('form', $form); if ($breadcrumb = $form->getOption('breadcrumb', 'streams::form.mode.' . $this->builder->getFormMode())) { $breadcrumbs->put($breadcrumb, '#'); } }
/** * Handle the command. */ public function handle(MessageBag $messages, Translator $translator) { // If we can't save or there are errors then skip it. if ($this->builder->hasFormErrors() || !$this->builder->canSave()) { return; } // If there is no model and there isn't anything specific to say, skip it. if (!$this->builder->getFormEntry() && !$this->builder->getFormOption('success_message')) { return; } $mode = $this->builder->getFormMode(); // False means no message is desired. if ($this->builder->getFormOption('success_message') === false) { return; } $entry = $this->builder->getFormEntry(); $stream = $this->builder->getFormStream(); $parameters = ['title' => is_object($entry) ? $entry->getTitle() : null, 'name' => is_object($stream) ? $stream->getName() : null]; // If the name doesn't exist we need to be clever. if (str_contains($parameters['name'], '::') && !$translator->has($parameters['name']) && $stream) { $parameters['name'] = ucfirst(str_singular(str_replace('_', ' ', $stream->getSlug()))); } elseif ($parameters['name']) { $parameters['name'] = str_singular(trans($parameters['name'])); } else { $parameters['name'] = trans('streams::entry.name'); } /** * Set the default success message. */ if ($this->builder->getFormOption('success_message') === null) { $this->builder->setFormOption('success_message', trans('streams::message.' . $mode . '_success', $parameters)); } $messages->{$this->builder->getFormOption('success_message_type', 'success')}($this->builder->getFormOption('success_message')); }