function FileUploadForm::processUploadElement

Same name and namespace in other branches
  1. 9 core/modules/media_library/src/Form/FileUploadForm.php \Drupal\media_library\Form\FileUploadForm::processUploadElement()
  2. 10 core/modules/media_library/src/Form/FileUploadForm.php \Drupal\media_library\Form\FileUploadForm::processUploadElement()
  3. 11.x core/modules/media_library/src/Form/FileUploadForm.php \Drupal\media_library\Form\FileUploadForm::processUploadElement()

Processes an upload (managed_file) element.

Parameters

array $element: The upload element.

\Drupal\Core\Form\FormStateInterface $form_state: The form state.

Return value

array The processed upload element.

File

core/modules/media_library/src/Form/FileUploadForm.php, line 220

Class

FileUploadForm
Creates a form to create media entities from uploaded files.

Namespace

Drupal\media_library\Form

Code

public function processUploadElement(array $element, FormStateInterface $form_state) {
    $element['upload_button']['#submit'] = [
        '::uploadButtonSubmit',
    ];
    // Limit the validation errors to make sure
    // FormValidator::handleErrorsWithLimitedValidation doesn't remove the
    // current selection from the form state.
    // @see Drupal\Core\Form\FormValidator::handleErrorsWithLimitedValidation()
    $element['upload_button']['#limit_validation_errors'] = [
        [
            'upload',
        ],
        [
            'current_selection',
        ],
    ];
    $element['upload_button']['#ajax'] = [
        'callback' => '::updateFormCallback',
        'wrapper' => 'media-library-wrapper',
        // Add a fixed URL to post the form since AJAX forms are automatically
        // posted to <current> instead of $form['#action'].
        // @todo Remove when https://www.drupal.org/project/drupal/issues/2504115
        //   is fixed.
'url' => Url::fromRoute('media_library.ui'),
        'options' => [
            'query' => $this->getMediaLibraryState($form_state)
                ->all() + [
                FormBuilderInterface::AJAX_FORM_REQUEST => TRUE,
            ],
        ],
    ];
    return $element;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.