From 0db207cf53af6c64b08fdf44736609bd5d1c5b4e Mon Sep 17 00:00:00 2001 From: Primsi Date: Fri, 19 Feb 2016 16:23:18 +0100 Subject: [PATCH] Issue #2671914: Implement EB configuration UI --- .../Widget/DropzoneJsEbWidget.php | 16 +++++++++ .../Widget/MediaEntityDropzoneJsEbWidget.php | 35 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php index aadd9ba..54db802 100644 --- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php +++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/DropzoneJsEbWidget.php @@ -211,4 +211,20 @@ protected function validateExtension($filename, $extensions) { return TRUE; } + /** + * {@inheritdoc} + */ + public function buildConfigurationForm(array $form, FormStateInterface $form_state) { + $configuration = $this->getConfiguration(); + $settings = $configuration['settings']; + $form += parent::buildConfigurationForm($form, $form_state); + + $form['dropzone_description'] = [ + '#type' => 'textfield', + '#title' => $this->t('Dropzone drag-n-drop zone text'), + '#default_value' => $settings['dropzone_description'], + ]; + + return $form; + } } diff --git a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php index 3d893c9..ee54273 100644 --- a/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php +++ b/modules/eb_widget/src/Plugin/EntityBrowser/Widget/MediaEntityDropzoneJsEbWidget.php @@ -137,4 +137,39 @@ public function submit(array &$element, array &$form, FormStateInterface $form_s $this->clearFormValues($element, $form_state); } } + + /** + * {@inheritdoc} + */ + public function buildConfigurationForm(array $form, FormStateInterface $form_state) { + $configuration = $this->getConfiguration(); + $settings = $configuration['settings']; + $form += parent::buildConfigurationForm($form, $form_state); + + $options = []; + $media_bundles = $this->entityManager->getBundleInfo('media'); + if (!empty($media_bundles)) { + foreach ($media_bundles as $id => $bundle) { + $options[$id] = $bundle['label']; + } + $disabled = FALSE; + $description = $this->t('Select the type of media entity that you want to create from the uploaded files.'); + } + else { + $disabled = TRUE; + $description = $this->t('You must create a media bundle before using this widget.'); + } + + $form['dropzonejs_media_entity'] = [ + '#type' => 'select', + '#title' => $this->t('Media bundle to create'), + '#default_value' => $settings['dropzonejs_media_entity'], + '#description' => $description, + '#options' => $options, + '#disabled' => $disabled, + '#required' => TRUE, + ]; + + return $form; + } }