From 5736d8d9b006d75970baf8a4200876c02397ba11 Mon Sep 17 00:00:00 2001 From: catch <catch@35733.no-reply.drupal.org> Date: Tue, 26 Nov 2019 13:32:31 +0000 Subject: [PATCH] Issue #3093185 by chr.fritsch: Remove media.module BC layers --- core/modules/media/media.routing.yml | 12 - core/modules/media/src/Entity/Media.php | 16 -- .../Form/MediaDeleteMultipleConfirmForm.php | 216 ------------------ .../media/src/MediaSourceInterface.php | 3 +- .../media/src/Plugin/media/Source/OEmbed.php | 6 +- ...ediaFunctionalTestCreateMediaTypeTrait.php | 39 ---- .../media/tests/src/Kernel/MediaTest.php | 10 - .../src/Traits/MediaTypeCreationTrait.php | 8 - 8 files changed, 2 insertions(+), 308 deletions(-) delete mode 100644 core/modules/media/src/Form/MediaDeleteMultipleConfirmForm.php delete mode 100644 core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php diff --git a/core/modules/media/media.routing.yml b/core/modules/media/media.routing.yml index 918071361cdc..4c8d85177418 100644 --- a/core/modules/media/media.routing.yml +++ b/core/modules/media/media.routing.yml @@ -1,15 +1,3 @@ -# @deprecated in Drupal 8.6.x, to be removed before Drupal 9.0.0. -# This route is not used in Drupal core. As an internal API, it may also be -# removed in a minor release. If you are using it, copy the class -# and the related "entity.media.multiple_delete_confirm" route to your -# module. -entity.media.multiple_delete_confirm: - path: '/admin/content/media/delete' - defaults: - _form: '\Drupal\media\Form\MediaDeleteMultipleConfirmForm' - requirements: - _permission: 'administer media+delete any media' - entity.media.revision: path: '/media/{media}/revisions/{media_revision}/view' defaults: diff --git a/core/modules/media/src/Entity/Media.php b/core/modules/media/src/Entity/Media.php index 55572560b463..55ffb8a6a6d3 100644 --- a/core/modules/media/src/Entity/Media.php +++ b/core/modules/media/src/Entity/Media.php @@ -507,22 +507,6 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { return $fields; } - /** - * Default value callback for 'uid' base field definition. - * - * @see ::baseFieldDefinitions() - * - * @deprecated The ::getCurrentUserId method is deprecated in 8.6.x and will - * be removed before 9.0.0. - * - * @return int[] - * An array of default values. - */ - public static function getCurrentUserId() { - @trigger_error('The ::getCurrentUserId method is deprecated in 8.6.x and will be removed before 9.0.0.', E_USER_DEPRECATED); - return [\Drupal::currentUser()->id()]; - } - /** * {@inheritdoc} */ diff --git a/core/modules/media/src/Form/MediaDeleteMultipleConfirmForm.php b/core/modules/media/src/Form/MediaDeleteMultipleConfirmForm.php deleted file mode 100644 index 8952b7815c64..000000000000 --- a/core/modules/media/src/Form/MediaDeleteMultipleConfirmForm.php +++ /dev/null @@ -1,216 +0,0 @@ -<?php - -namespace Drupal\media\Form; - -use Drupal\Core\Entity\EntityTypeManagerInterface; -use Drupal\Core\Form\ConfirmFormBase; -use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Url; -use Drupal\Core\TempStore\PrivateTempStoreFactory; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\HttpFoundation\RedirectResponse; - -/** - * Provides a confirmation form to delete multiple media items at once. - * - * @deprecated in drupal:8.6.0 and is removed from drupal:9.0.0. - * This route is not used in Drupal core. As an internal API, it may also be - * removed in a minor release. If you are using it, copy the class - * and the related "entity.media.multiple_delete_confirm" route to your - * module. - * - * @internal - */ -class MediaDeleteMultipleConfirmForm extends ConfirmFormBase { - - /** - * The array of media items to delete, indexed by ID and language. - * - * @var string[][] - */ - protected $mediaItems = []; - - /** - * The tempstore factory. - * - * @var \Drupal\Core\TempStore\PrivateTempStoreFactory - */ - protected $tempStoreFactory; - - /** - * The entity storage. - * - * @var \Drupal\Core\Entity\EntityStorageInterface - */ - protected $storage; - - /** - * Constructs a MediaDeleteMultipleConfirmForm form object. - * - * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory - * The tempstore factory. - * @param \Drupal\Core\Entity\EntityTypeManagerInterface $manager - * The entity type manager. - */ - public function __construct(PrivateTempStoreFactory $temp_store_factory, EntityTypeManagerInterface $manager) { - @trigger_error(__CLASS__ . ' is deprecated in Drupal 8.6.0 and will be removed before Drupal 9.0.0. It is not used in Drupal core. As an internal API, it may also be removed in a minor release. If you are using it, copy the class and the related "entity.media.multiple_delete_confirm" route to your module.', E_USER_DEPRECATED); - $this->tempStoreFactory = $temp_store_factory; - $this->storage = $manager->getStorage('media'); - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - return new static( - $container->get('tempstore.private'), - $container->get('entity_type.manager') - ); - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'media_multiple_delete_confirm'; - } - - /** - * {@inheritdoc} - */ - public function getQuestion() { - return $this->formatPlural(count($this->mediaItems), 'Are you sure you want to delete this item?', 'Are you sure you want to delete these items?'); - } - - /** - * {@inheritdoc} - */ - public function getCancelUrl() { - // @todo Change to media library when #2834729 is done. - // https://www.drupal.org/node/2834729. - return new Url('system.admin_content'); - } - - /** - * {@inheritdoc} - */ - public function getConfirmText() { - return $this->t('Delete'); - } - - /** - * {@inheritdoc} - * - * @todo Change to trait or base class when #2843395 is done. - * @see https://www.drupal.org/node/2843395 - */ - public function buildForm(array $form, FormStateInterface $form_state) { - $this->mediaItems = $this->tempStoreFactory->get('media_multiple_delete_confirm')->get($this->currentUser()->id()); - if (empty($this->mediaItems)) { - return new RedirectResponse($this->getCancelUrl()->setAbsolute()->toString()); - } - /** @var \Drupal\media\MediaInterface[] $entities */ - $entities = $this->storage->loadMultiple(array_keys($this->mediaItems)); - - $items = []; - foreach ($this->mediaItems as $id => $langcodes) { - foreach ($langcodes as $langcode) { - $entity = $entities[$id]->getTranslation($langcode); - $key = $id . ':' . $langcode; - $default_key = $id . ':' . $entity->getUntranslated()->language()->getId(); - - // If we have a translated entity we build a nested list of translations - // that will be deleted. - $languages = $entity->getTranslationLanguages(); - if (count($languages) > 1 && $entity->isDefaultTranslation()) { - $names = []; - foreach ($languages as $translation_langcode => $language) { - $names[] = $language->getName(); - unset($items[$id . ':' . $translation_langcode]); - } - $items[$default_key] = [ - 'label' => [ - '#markup' => $this->t('@label (Original translation) - <em>The following translations will be deleted:</em>', ['@label' => $entity->label()]), - ], - 'deleted_translations' => [ - '#theme' => 'item_list', - '#items' => $names, - ], - ]; - } - elseif (!isset($items[$default_key])) { - $items[$key] = $entity->label(); - } - } - } - - $form['entities'] = [ - '#theme' => 'item_list', - '#items' => $items, - ]; - return parent::buildForm($form, $form_state); - } - - /** - * {@inheritdoc} - * - * @todo Change to trait or base class when #2843395 is done. - * @see https://www.drupal.org/node/2843395 - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - if ($form_state->getValue('confirm') && !empty($this->mediaItems)) { - $total_count = 0; - $delete_entities = []; - /** @var \Drupal\Core\Entity\ContentEntityInterface[][] $delete_translations */ - $delete_translations = []; - /** @var \Drupal\media\MediaInterface[] $entities */ - $entities = $this->storage->loadMultiple(array_keys($this->mediaItems)); - - foreach ($this->mediaItems as $id => $langcodes) { - foreach ($langcodes as $langcode) { - $entity = $entities[$id]->getTranslation($langcode); - if ($entity->isDefaultTranslation()) { - $delete_entities[$id] = $entity; - unset($delete_translations[$id]); - $total_count += count($entity->getTranslationLanguages()); - } - elseif (!isset($delete_entities[$id])) { - $delete_translations[$id][] = $entity; - } - } - } - - if ($delete_entities) { - $this->storage->delete($delete_entities); - $this->logger('media')->notice('Deleted @count media items.', ['@count' => count($delete_entities)]); - } - - if ($delete_translations) { - $count = 0; - foreach ($delete_translations as $id => $translations) { - $entity = $entities[$id]->getUntranslated(); - foreach ($translations as $translation) { - $entity->removeTranslation($translation->language()->getId()); - } - $entity->save(); - $count += count($translations); - } - if ($count) { - $total_count += $count; - $this->logger('media')->notice('Deleted @count media translations.', ['@count' => $count]); - } - } - - if ($total_count) { - $this->messenger()->addStatus($this->formatPlural($total_count, 'Deleted 1 media item.', 'Deleted @count media items.')); - } - - $this->tempStoreFactory->get('media_multiple_delete_confirm')->delete(\Drupal::currentUser()->id()); - } - - // @todo Change to media library when #2834729 is done. - // https://www.drupal.org/node/2834729. - $form_state->setRedirect('system.admin_content'); - } - -} diff --git a/core/modules/media/src/MediaSourceInterface.php b/core/modules/media/src/MediaSourceInterface.php index a2dea535a775..3d6a0664bdab 100644 --- a/core/modules/media/src/MediaSourceInterface.php +++ b/core/modules/media/src/MediaSourceInterface.php @@ -3,7 +3,6 @@ namespace Drupal\media; use Drupal\Component\Plugin\ConfigurableInterface; -use Drupal\Component\Plugin\ConfigurablePluginInterface; use Drupal\Component\Plugin\DependentPluginInterface; use Drupal\Component\Plugin\PluginInspectionInterface; use Drupal\Core\Entity\Display\EntityFormDisplayInterface; @@ -68,7 +67,7 @@ * @see \Drupal\media\MediaSourceFieldConstraintsInterface * @see plugin_api */ -interface MediaSourceInterface extends PluginInspectionInterface, ConfigurableInterface, DependentPluginInterface, ConfigurablePluginInterface, PluginFormInterface { +interface MediaSourceInterface extends PluginInspectionInterface, ConfigurableInterface, DependentPluginInterface, PluginFormInterface { /** * Default empty value for metadata fields. diff --git a/core/modules/media/src/Plugin/media/Source/OEmbed.php b/core/modules/media/src/Plugin/media/Source/OEmbed.php index 9fbea0b16c6e..6ede87ddac0d 100644 --- a/core/modules/media/src/Plugin/media/Source/OEmbed.php +++ b/core/modules/media/src/Plugin/media/Source/OEmbed.php @@ -155,7 +155,7 @@ class OEmbed extends MediaSourceBase implements OEmbedInterface { * @param \Drupal\Core\File\FileSystemInterface $file_system * The file system. */ - public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, ConfigFactoryInterface $config_factory, FieldTypePluginManagerInterface $field_type_manager, LoggerInterface $logger, MessengerInterface $messenger, ClientInterface $http_client, ResourceFetcherInterface $resource_fetcher, UrlResolverInterface $url_resolver, IFrameUrlHelper $iframe_url_helper, FileSystemInterface $file_system = NULL) { + public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, ConfigFactoryInterface $config_factory, FieldTypePluginManagerInterface $field_type_manager, LoggerInterface $logger, MessengerInterface $messenger, ClientInterface $http_client, ResourceFetcherInterface $resource_fetcher, UrlResolverInterface $url_resolver, IFrameUrlHelper $iframe_url_helper, FileSystemInterface $file_system) { parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $entity_field_manager, $field_type_manager, $config_factory); $this->logger = $logger; $this->messenger = $messenger; @@ -163,10 +163,6 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition $this->resourceFetcher = $resource_fetcher; $this->urlResolver = $url_resolver; $this->iFrameUrlHelper = $iframe_url_helper; - if (!$file_system) { - @trigger_error('The file_system service must be passed to OEmbed::__construct(), it is required before Drupal 9.0.0. See https://www.drupal.org/node/3006851.', E_USER_DEPRECATED); - $file_system = \Drupal::service('file_system'); - } $this->fileSystem = $file_system; } diff --git a/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php b/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php deleted file mode 100644 index 047075a6dcd8..000000000000 --- a/core/modules/media/tests/src/Functional/MediaFunctionalTestCreateMediaTypeTrait.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php - -namespace Drupal\Tests\media\Functional; - -@trigger_error(__NAMESPACE__ . '\MediaFunctionalTestCreateMediaTypeTrait is deprecated in Drupal 8.6.0 and will be removed before Drupal 9.0.0. Use \Drupal\Tests\media\Traits\MediaTypeCreationTrait instead. See https://www.drupal.org/node/2981614.', E_USER_DEPRECATED); - -use Drupal\Tests\media\Traits\MediaTypeCreationTrait; - -/** - * Trait with helpers for Media functional tests. - * - * @deprecated in drupal:8.6.0 and is removed from drupal:9.0.0. Use - * \Drupal\Tests\media\Traits\MediaTypeCreationTrait instead. - * - * @see https://www.drupal.org/node/2981614 - */ -trait MediaFunctionalTestCreateMediaTypeTrait { - - use MediaTypeCreationTrait { - createMediaType as traitCreateMediaType; - } - - /** - * Creates a media type. - * - * @param array $values - * The media type values. - * @param string $source - * (optional) The media source plugin that is responsible for additional - * logic related to this media type. Defaults to 'test'. - * - * @return \Drupal\media\MediaTypeInterface - * A newly created media type. - */ - protected function createMediaType(array $values = [], $source = 'test') { - return $this->traitCreateMediaType($source, $values); - } - -} diff --git a/core/modules/media/tests/src/Kernel/MediaTest.php b/core/modules/media/tests/src/Kernel/MediaTest.php index 4997bb67fa25..9c7ca28eef9a 100644 --- a/core/modules/media/tests/src/Kernel/MediaTest.php +++ b/core/modules/media/tests/src/Kernel/MediaTest.php @@ -34,14 +34,4 @@ public function testNameBaseField() { $this->assertSame($field_definitions['name']->getDisplayOptions('view'), ['region' => 'hidden']); } - /** - * Tests the legacy method used as the default entity owner. - * - * @group legacy - * @expectedDeprecation The ::getCurrentUserId method is deprecated in 8.6.x and will be removed before 9.0.0. - */ - public function testGetCurrentUserId() { - $this->assertEquals(['1'], Media::getCurrentUserId()); - } - } diff --git a/core/modules/media/tests/src/Traits/MediaTypeCreationTrait.php b/core/modules/media/tests/src/Traits/MediaTypeCreationTrait.php index 72fa88ddb5ca..0e87a6ec8e6c 100644 --- a/core/modules/media/tests/src/Traits/MediaTypeCreationTrait.php +++ b/core/modules/media/tests/src/Traits/MediaTypeCreationTrait.php @@ -22,8 +22,6 @@ trait MediaTypeCreationTrait { * be used. * - label: The human-readable label of the media type. If none is provided, * a random value will be used. - * - bundle: (deprecated) The ID of the media type, for backwards - * compatibility purposes. Use 'id' instead. * See \Drupal\media\MediaTypeInterface and \Drupal\media\Entity\MediaType * for full documentation of the media type properties. * @@ -34,12 +32,6 @@ trait MediaTypeCreationTrait { * @see \Drupal\media\Entity\MediaType */ protected function createMediaType($source_plugin_id, array $values = []) { - if (isset($values['bundle'])) { - @trigger_error('Setting the "bundle" key when creating a test media type is deprecated in Drupal 8.6.0 and will be removed before Drupal 9.0.0. Set the "id" key instead. See https://www.drupal.org/node/2981614.', E_USER_DEPRECATED); - $values['id'] = $values['bundle']; - unset($values['bundle']); - } - $values += [ 'id' => $this->randomMachineName(), 'label' => $this->randomString(), -- GitLab