diff --git a/modules/dropzonejs/media_bulk_upload_dropzonejs.module b/modules/dropzonejs/media_bulk_upload_dropzonejs.module index d0d09ec7d6c12b1d036b19b3e9711a27570bf104..7b44328304578ae848f2e1ca4e261becc8388ebe 100644 --- a/modules/dropzonejs/media_bulk_upload_dropzonejs.module +++ b/modules/dropzonejs/media_bulk_upload_dropzonejs.module @@ -1,10 +1,5 @@ t('Click or drop your files here'); + + if (isset($form['file_upload']['#upload_validators']['file_validate_extensions'][0])) { + $form['file_upload']['#extensions'] = $form['file_upload']['#upload_validators']['file_validate_extensions'][0]; + } + return $form; + } + + /** + * {@inheritdoc} + */ + public function validateForm(array &$form, FormStateInterface $form_state) { + // Validate all uploaded files. + $uploaded_files = $form_state->getValue(['file_upload', 'uploaded_files']); + if (empty($uploaded_files)) { + $form_state->setErrorByName('file_upload', $this->t('No media files have been provided.')); + } + else { + foreach ($uploaded_files as $uploaded_file) { + // Create a new file entity since some modules only validate new files. + $file = $this->fileStorage->create([ + 'uri' => $uploaded_file['path'] + ]); + + // Let other modules perform validation on the new file. + $errors = \Drupal::moduleHandler()->invokeAll('file_validate', [ + $file + ]); + + // Process any reported errors. + if (!empty($errors)) { + $form_state->setErrorByName('file_upload', 'Errors for file ' . $file->getFilename() . ': ' . implode(', ', $errors)); + + try { + // Delete the uploaded file if it has validation errors. + $file_system = \Drupal::service('file_system'); + $file_system->delete($uploaded_file['path']); + } + catch (\Exception $e) { + watchdog_exception('media_bulk_upload', $e); + } + } + } + } + } + +} diff --git a/modules/dropzonejs/src/Routing/MediaBulkUploadDropzoneJsRouteSubscriber.php b/modules/dropzonejs/src/Routing/MediaBulkUploadDropzoneJsRouteSubscriber.php new file mode 100644 index 0000000000000000000000000000000000000000..22636b04bbab56116b98c571392a3e01eedc42ad --- /dev/null +++ b/modules/dropzonejs/src/Routing/MediaBulkUploadDropzoneJsRouteSubscriber.php @@ -0,0 +1,22 @@ +get('media_bulk_upload.upload_form'); + $route->setDefault('_form', MediaBulkUploadDropzoneJsForm::class); + } + +} diff --git a/src/Form/MediaBulkUploadForm.php b/src/Form/MediaBulkUploadForm.php index fb3388b9e76e96fd25ca9edfe42c2136268c96b6..2821f5bad740432ad2eb2f5ffe38cc7c250c038f 100644 --- a/src/Form/MediaBulkUploadForm.php +++ b/src/Form/MediaBulkUploadForm.php @@ -633,42 +633,4 @@ class MediaBulkUploadForm extends FormBase { return $this; } - /** - * {@inheritdoc} - */ - public function validateForm(array &$form, FormStateInterface $form_state) { - // Validate all uploaded files. - $uploaded_files = $form_state->getValue(['file_upload', 'uploaded_files']); - if (empty($uploaded_files)) { - $form_state->setErrorByName('file_upload', $this->t('No media files have been provided.')); - } - else { - foreach ($uploaded_files as $uploaded_file) { - // Create a new file entity since some modules only validate new files. - $file = $this->fileStorage->create([ - 'uri' => $uploaded_file['path'] - ]); - - // Let other modules perform validation on the new file. - $errors = \Drupal::moduleHandler()->invokeAll('file_validate', [ - $file - ]); - - // Process any reported errors. - if (!empty($errors)) { - $form_state->setErrorByName('file_upload', 'Errors for file ' . $file->getFilename() . ': ' . implode(', ', $errors)); - - try { - // Delete the uploaded file if it has validation errors. - $file_system = \Drupal::service('file_system'); - $file_system->delete($uploaded_file['path']); - } - catch (Exception $e) { - watchdog_exception('media_bulk_upload', $e); - } - } - } - } - } - }