X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;ds=inline;f=web%2Fmodules%2Fcontrib%2Fdevel%2Fdevel_generate%2Fsrc%2FForm%2FDevelGenerateForm.php;fp=web%2Fmodules%2Fcontrib%2Fdevel%2Fdevel_generate%2Fsrc%2FForm%2FDevelGenerateForm.php;h=63c708b4978ffe3d54ae6a13f8ab8f882e8b35c2;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/modules/contrib/devel/devel_generate/src/Form/DevelGenerateForm.php b/web/modules/contrib/devel/devel_generate/src/Form/DevelGenerateForm.php new file mode 100644 index 000000000..63c708b49 --- /dev/null +++ b/web/modules/contrib/devel/devel_generate/src/Form/DevelGenerateForm.php @@ -0,0 +1,114 @@ +develGenerateManager = $devel_generate_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('plugin.manager.develgenerate') + ); + } + + /** + * {@inheritdoc} + */ + public function getFormId() { + return 'devel_generate_form_' . $this->getPluginIdFromRequest(); + } + + /** + * Returns the value of the param _plugin_id for the current request. + * + * @see \Drupal\devel_generate\Routing\DevelGenerateRouteSubscriber + */ + protected function getPluginIdFromRequest() { + $request = $this->getRequest(); + return $request->get('_plugin_id'); + } + + /** + * Returns a DevelGenerate plugin instance for a given plugin id. + * + * @param string $plugin_id + * The plugin_id for the plugin instance. + * + * @return \Drupal\devel_generate\DevelGenerateBaseInterface + * A DevelGenerate plugin instance. + */ + public function getPluginInstance($plugin_id) { + $instance = $this->develGenerateManager->createInstance($plugin_id, array()); + return $instance; + } + + /** + * {@inheritdoc} + */ + public function buildForm(array $form, FormStateInterface $form_state) { + $plugin_id = $this->getPluginIdFromRequest(); + $instance = $this->getPluginInstance($plugin_id); + $form = $instance->settingsForm($form, $form_state); + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => $this->t('Generate'), + '#button_type' => 'primary', + ); + + return $form; + } + + /** + * {@inheritdoc} + */ + public function validateForm(array &$form, FormStateInterface $form_state) { + $plugin_id = $this->getPluginIdFromRequest(); + $instance = $this->getPluginInstance($plugin_id); + $instance->settingsFormValidate($form, $form_state); + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + try { + $plugin_id = $this->getPluginIdFromRequest(); + $instance = $this->getPluginInstance($plugin_id); + $instance->generate($form_state->getValues()); + } + catch (DevelGenerateException $e) { + $this->logger('DevelGenerate', $this->t('Failed to generate elements due to "%error".', array('%error' => $e->getMessage()))); + drupal_set_message($this->t('Failed to generate elements due to "%error".', array('%error' => $e->getMessage()))); + } + } + +}