diff --git a/composer.json b/composer.json index b425dbbb80aa9a83d33b1b3fc2d782280b9967fb..8adf5e8d4d7fbff370de2db6e2addff2df8e6df2 100644 --- a/composer.json +++ b/composer.json @@ -173,7 +173,7 @@ "drupal/twig_tweak": "^2.4", "drupal/twitter_block": "3.0-alpha0", "drupal/userprotect": "1.0", - "drupal/video_embed_field": "2.0", + "drupal/video_embed_field": "^2.0", "drupal/view_unpublished": "^1.0@alpha", "drupal/views_accordion": "1.1", "drupal/views_ajax_history": "^1.1", diff --git a/composer.lock b/composer.lock index 3efcced53ccac12228c45763ce949ba00613c19e..ebf41e1ae0da87638aa5c4b5771002d29b519fb0 100644 --- a/composer.lock +++ b/composer.lock @@ -7720,25 +7720,26 @@ }, { "name": "drupal/video_embed_field", - "version": "2.0.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/video_embed_field.git", - "reference": "8.x-2.0" + "reference": "8.x-2.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.0.zip", - "reference": "8.x-2.0", - "shasum": "e864f090b3cb9405376ca324d81ace83613e2019" + "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.2.zip", + "reference": "8.x-2.2", + "shasum": "1e76eeefb27f4166d3d119e8c27469bbf12c0f06" }, "require": { - "drupal/core": "*" + "drupal/core": "^8.7.0" }, "require-dev": { "drupal/colorbox": "*", "drupal/media_entity": "*", - "drupal/media_entity_embeddable_video": "*" + "drupal/media_entity_embeddable_video": "*", + "drupal/video_embed_media": "*" }, "type": "drupal-module", "extra": { @@ -7746,13 +7747,12 @@ "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-1.x", - "datestamp": "1523338084", + "version": "8.x-2.2", + "datestamp": "1564103585", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" - }, - "package": "Field types" + } } }, "notification-url": "https://packages.drupal.org/8/downloads", @@ -7776,7 +7776,7 @@ "description": "A pluggable field type for storing videos from external video hosts such as Vimeo and YouTube.", "homepage": "https://www.drupal.org/project/video_embed_field", "support": { - "source": "http://cgit.drupalcode.org/video_embed_field" + "source": "https://git.drupalcode.org/project/video_embed_field" } }, { diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 740dd72003ab75f1b0f03470d541732d058802b6..f909a29f4a6b5368e3764c7baa175cceed49a1f4 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -7965,26 +7965,27 @@ }, { "name": "drupal/video_embed_field", - "version": "2.0.0", - "version_normalized": "2.0.0.0", + "version": "2.2.0", + "version_normalized": "2.2.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/video_embed_field.git", - "reference": "8.x-2.0" + "reference": "8.x-2.2" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.0.zip", - "reference": "8.x-2.0", - "shasum": "e864f090b3cb9405376ca324d81ace83613e2019" + "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.2.zip", + "reference": "8.x-2.2", + "shasum": "1e76eeefb27f4166d3d119e8c27469bbf12c0f06" }, "require": { - "drupal/core": "*" + "drupal/core": "^8.7.0" }, "require-dev": { "drupal/colorbox": "*", "drupal/media_entity": "*", - "drupal/media_entity_embeddable_video": "*" + "drupal/media_entity_embeddable_video": "*", + "drupal/video_embed_media": "*" }, "type": "drupal-module", "extra": { @@ -7992,13 +7993,12 @@ "dev-2.x": "2.x-dev" }, "drupal": { - "version": "8.x-1.x", - "datestamp": "1523338084", + "version": "8.x-2.2", + "datestamp": "1564103585", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" - }, - "package": "Field types" + } } }, "installation-source": "dist", @@ -8023,7 +8023,7 @@ "description": "A pluggable field type for storing videos from external video hosts such as Vimeo and YouTube.", "homepage": "https://www.drupal.org/project/video_embed_field", "support": { - "source": "http://cgit.drupalcode.org/video_embed_field" + "source": "https://git.drupalcode.org/project/video_embed_field" } }, { diff --git a/web/modules/video_embed_field/composer.json b/web/modules/video_embed_field/composer.json index d5ceb51ff0990447ce38213940246ef3d178fb9c..ad7fdca15dbe6d257632ff5eb9ab20362747ec87 100644 --- a/web/modules/video_embed_field/composer.json +++ b/web/modules/video_embed_field/composer.json @@ -3,11 +3,5 @@ "description": "A pluggable field type for storing videos from external video hosts such as Vimeo and YouTube.", "type": "drupal-module", "homepage": "https://www.drupal.org/project/video_embed_field", - "license": "GPL-2.0+", - "extra": { - "drupal": { - "package": "Field types", - "version": "8.x-1.x" - } - } + "license": "GPL-2.0+" } diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/drush.services.yml b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/drush.services.yml new file mode 100644 index 0000000000000000000000000000000000000000..719a80c8b38bf03c5a2fed118757bddb48fa6117 --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/drush.services.yml @@ -0,0 +1,6 @@ +services: + vem_migrate_oembed.commands: + class: \Drupal\vem_migrate_oembed\Commands\VemCommands + arguments: ['@vem_migrate_oembed.migrate'] + tags: + - { name: drush.command } diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/Commands/VemCommands.php b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/Commands/VemCommands.php new file mode 100644 index 0000000000000000000000000000000000000000..0608d5908735feead21f27cc79c6ee5438d933ed --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/Commands/VemCommands.php @@ -0,0 +1,50 @@ +<?php + +namespace Drupal\vem_migrate_oembed\Commands; + +use Drupal\vem_migrate_oembed\VemMigrate; +use Drush\Commands\DrushCommands; + +/** + * A Drush commandfile. + * + * In addition to this file, you need a drush.services.yml + * in root of your module, and a composer.json file that provides the name + * of the services file to use. + * + * See these files for an example of injecting Drupal services: + * - http://cgit.drupalcode.org/devel/tree/src/Commands/DevelCommands.php + * - http://cgit.drupalcode.org/devel/tree/drush.services.yml + */ +class VemCommands extends DrushCommands { + + /** + * The migrate service. + * + * @var \Drupal\vem_migrate_oembed\VemMigrate + */ + protected $migrator; + + /** + * SamplerCommands constructor. + * + * @param \Drupal\vem_migrate_oembed\VemMigrate $migrator + * The migrate service. + */ + public function __construct(VemMigrate $migrator) { + parent::__construct(); + $this->migrator = $migrator; + } + + /** + * Migrates from video_embed_media to core media. + * + * @throws \Drupal\Core\Entity\EntityStorageException + * + * @command vem:migrate_oembed + */ + public function migrate() { + $this->migrator->migrate(); + } + +} diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/VemMigrate.php b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/VemMigrate.php new file mode 100644 index 0000000000000000000000000000000000000000..8db940ba49e15214bd5c3de67ca8af58253ea8ed --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/VemMigrate.php @@ -0,0 +1,192 @@ +<?php + +namespace Drupal\vem_migrate_oembed; + +use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Database\Connection; +use Drupal\Core\Entity\Entity\EntityFormDisplay; +use Drupal\Core\Entity\Entity\EntityViewDisplay; +use Drupal\Core\Entity\EntityFieldManagerInterface; +use Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface; +use Drupal\Core\KeyValueStore\KeyValueFactoryInterface; +use Drupal\field\Entity\FieldConfig; +use Drupal\field\Entity\FieldStorageConfig; +use Drupal\media\Entity\MediaType; + +/** + * Class VemMigrate. + */ +class VemMigrate { + + /** + * The config factory service. + * + * @var \Drupal\Core\Config\ConfigFactoryInterface + */ + protected $configFactory; + + /** + * The last installed schema repository service. + * + * @var \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface + */ + protected $lastInstalledSchemaRepository; + + /** + * The database connection. + * + * @var \Drupal\Core\Database\Connection + */ + protected $database; + + /** + * The key value store. + * + * @var \Drupal\Core\KeyValueStore\KeyValueFactoryInterface + */ + protected $keyValue; + + /** + * The entity field manager service. + * + * @var \Drupal\Core\Entity\EntityFieldManagerInterface + */ + protected $entityFieldManager; + + /** + * VemMigrate constructor. + * + * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory + * The config factory service. + * @param \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface $entityLastInstalledSchemaRepository + * The last installed schema repository service. + * @param \Drupal\Core\Database\Connection $connection + * The database connection. + * @param \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $keyValueFactory + * The key value store. + * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entityFieldManager + * The entity field manager service. + */ + public function __construct(ConfigFactoryInterface $configFactory, EntityLastInstalledSchemaRepositoryInterface $entityLastInstalledSchemaRepository, Connection $connection, KeyValueFactoryInterface $keyValueFactory, EntityFieldManagerInterface $entityFieldManager) { + $this->configFactory = $configFactory; + $this->lastInstalledSchemaRepository = $entityLastInstalledSchemaRepository; + $this->database = $connection; + $this->keyValue = $keyValueFactory; + $this->entityFieldManager = $entityFieldManager; + } + + /** + * Migrates from video_embed_media to core media. + * + * @throws \Drupal\Core\Entity\EntityStorageException + */ + public function migrate() { + + foreach ($this->configFactory->listAll('media.type.') as $media_type) { + $media_type = $this->configFactory->getEditable($media_type); + + if ($media_type->get('source') !== 'video_embed_field') { + continue; + } + + $media_type->set('source', 'oembed:video'); + $media_type->set('source_configuration.thumbnails_directory', 'public://oembed_thumbnails'); + + $media_type->save(TRUE); + + MediaType::load($media_type->get('id'))->calculateDependencies()->save(); + } + + $media_definition = $this->lastInstalledSchemaRepository->getLastInstalledFieldStorageDefinitions('media'); + foreach ($this->configFactory->listAll('field.storage.media') as $field_storage) { + $field_storage = $this->configFactory->getEditable($field_storage); + $field_name = $field_storage->get('field_name'); + + if ($field_storage->get('type') !== 'video_embed_field') { + continue; + } + + $this->database->schema()->changeField("media__$field_name", "${field_name}_value", "${field_name}_value", ['type' => 'varchar', 'length' => 255]); + $this->database->schema()->changeField("media_revision__$field_name", "${field_name}_value", "${field_name}_value", ['type' => 'varchar', 'length' => 255]); + + $store = $this->keyValue->get("entity.storage_schema.sql"); + $data = $store->get("media.field_schema_data.$field_name"); + $data["media__$field_name"]['fields']["${field_name}_value"]['length'] = 255; + $data["media_revision__$field_name"]['fields']["${field_name}_value"]['length'] = 255; + $store->set("media.field_schema_data.$field_name", $data); + + $media_definition[$field_name]->set('type', 'string'); + $this->lastInstalledSchemaRepository->setLastInstalledFieldStorageDefinition($media_definition[$field_name]); + + $this->entityFieldManager->clearCachedFieldDefinitions(); + + $field_storage->set('type', 'string'); + $field_storage->set('module', 'core'); + $field_storage->set('settings.max_length', 255); + $field_storage->set('settings.is_ascii', FALSE); + $field_storage->set('settings.case_sensitive', FALSE); + $field_storage->save(TRUE); + + FieldStorageConfig::loadByName('media', $field_name)->calculateDependencies()->save(); + } + + foreach ($this->configFactory->listAll('field.field.media') as $field_config) { + $field_config = $this->configFactory->getEditable($field_config); + + if ($field_config->get('field_type') !== 'video_embed_field') { + continue; + } + + $field_config->set('field_type', 'string'); + $field_config->set('settings', []); + $field_config->save(TRUE); + + FieldConfig::loadByName('media', $field_config->get('bundle'), $field_config->get('field_name'))->calculateDependencies()->save(); + } + + foreach ($this->configFactory->listAll('core.entity_view_display.media') as $entity_view_display) { + $entity_view_display = $this->configFactory->getEditable($entity_view_display); + + $fields = array_keys($entity_view_display->get('content')); + foreach ($fields as $field) { + if ($entity_view_display->get("content.$field.type") !== 'video_embed_field_video') { + continue; + } + + $entity_view_display->set("content.$field.type", 'oembed'); + $entity_view_display->set("content.$field.settings.max_width", $entity_view_display->get("content.$field.settings.width")); + $entity_view_display->set("content.$field.settings.max_height", $entity_view_display->get("content.$field.settings.height")); + $entity_view_display->clear("content.$field.settings.autoplay"); + $entity_view_display->clear("content.$field.settings.responsive"); + $entity_view_display->save(TRUE); + + $bundle = $entity_view_display->get('bundle'); + $mode = $entity_view_display->get('mode'); + EntityViewDisplay::load("media.$bundle.$mode")->calculateDependencies()->save(); + } + + } + + foreach ($this->configFactory->listAll('core.entity_form_display.media') as $entity_form_display) { + $entity_form_display = $this->configFactory->getEditable($entity_form_display); + + $fields = array_keys($entity_form_display->get('content')); + foreach ($fields as $field) { + if ($entity_form_display->get("content.$field.type") !== 'video_embed_field_textfield') { + continue; + } + + $entity_form_display->set("content.$field.type", 'oembed_textfield'); + $entity_form_display->set("content.$field.settings.size", 60); + $entity_form_display->set("content.$field.settings.placeholder", ''); + $entity_form_display->save(TRUE); + + $bundle = $entity_form_display->get('bundle'); + $mode = $entity_form_display->get('mode'); + EntityFormDisplay::load("media.$bundle.$mode")->calculateDependencies()->save(); + } + + } + } + +} diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/tests/src/Functional/oEmbedUpdateTest.php b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/tests/src/Functional/oEmbedUpdateTest.php new file mode 100644 index 0000000000000000000000000000000000000000..6ed942555a5f1f3ab501a40d364fb87a72c9028b --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/tests/src/Functional/oEmbedUpdateTest.php @@ -0,0 +1,56 @@ +<?php + +namespace Drupal\Tests\vem_embed_media\Functional; + +use Drupal\media\Entity\MediaType; +use Drupal\Tests\BrowserTestBase; +use Drupal\Tests\media\Traits\MediaTypeCreationTrait; + +/** + * Tests the VEM to OEmbed migration. + * + * @group vem_embed_media + */ +class oEmbedUpdateTest extends BrowserTestBase { + + use MediaTypeCreationTrait; + + /** + * {@inheritdoc} + */ + protected static $modules = ['vem_migrate_oembed']; + + /** + * Tests the VEM to OEmbed migration. + */ + public function testOEmbedUpdate() { + + $mediaType = $this->createMediaType('video_embed_field'); + $this->assertEqual($mediaType->getSource()->getPluginId(), 'video_embed_field'); + + $sourceField = $mediaType->getSource()->getSourceFieldDefinition($mediaType); + $this->assertEqual($sourceField->getType(), 'video_embed_field'); + + $formDisplay = entity_get_form_display('media', $mediaType->id(), 'default'); + $formField = $formDisplay->getComponent($sourceField->getName()); + + $this->assertEqual($formField['type'], 'video_embed_field_textfield'); + + /** @var \Drupal\vem_migrate_oembed\VemMigrate $vemService */ + $vemService = \Drupal::service('vem_migrate_oembed.migrate'); + $vemService->migrate(); + + /** @var \Drupal\media\Entity\MediaType $mediaType */ + $mediaType = MediaType::load($mediaType->id()); + $this->assertEqual($mediaType->getSource()->getPluginId(), 'oembed:video'); + + $sourceField = $mediaType->getSource()->getSourceFieldDefinition($mediaType); + $this->assertEqual($sourceField->getType(), 'string'); + + $formDisplay = entity_get_form_display('media', $mediaType->id(), 'default'); + $formField = $formDisplay->getComponent($sourceField->getName()); + + $this->assertEqual($formField['type'], 'oembed_textfield'); + } + +} diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.drush.inc b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.drush.inc new file mode 100644 index 0000000000000000000000000000000000000000..69bf2112e62b38f2b84ae39e119cc5b1035325e8 --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.drush.inc @@ -0,0 +1,33 @@ +<?php + +/** + * @file + * Drush integration for vem_migrate_oembed. + */ + +/** + * Implements hook_drush_command(). + */ +function vem_migrate_oembed_drush_command() { + + $items['video-embed-media-migrate-oembed'] = [ + 'description' => 'Migrate from VEF to oEmbed in core.', + 'aliases' => ['vemmo'], + 'core' => ['8+'], + 'examples' => [ + "drush vemmo" => "Migrate from VEF to oEmbed in core", + ], + ]; + + return $items; +} + +/** + * Callback for drush commmand "video-embed-media-migrate-oembed" (vemmo). + */ +function drush_vem_migrate_oembed_video_embed_media_migrate_oembed() { + + /** @var \Drupal\vem_migrate_oembed\VemMigrate $migrate */ + $migrate = \Drupal::service('vem_migrate_oembed.migrate'); + $migrate->migrate(); +} diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.info.yml b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.info.yml new file mode 100644 index 0000000000000000000000000000000000000000..b8a65a11f537e3a6d46b91612eaa3368b56a0b4a --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.info.yml @@ -0,0 +1,14 @@ +name: Video Embed Media - Migrate to core oEmbed +type: module +description: 'Provides a drush command to migrate to cores oEmbed' +package: Video Embed Field +# core: 8.x +dependencies: + - drupal:media (>= 8.6) + - video_embed_field:video_embed_media + +# Information added by Drupal.org packaging script on 2019-07-26 +version: '8.x-2.2' +core: '8.x' +project: 'video_embed_field' +datestamp: 1564103587 diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.services.yml b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.services.yml new file mode 100644 index 0000000000000000000000000000000000000000..7c2db2d1ef6dfc100e6fa54f31246f0150989e7d --- /dev/null +++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.services.yml @@ -0,0 +1,4 @@ +services: + vem_migrate_oembed.migrate: + class: Drupal\vem_migrate_oembed\VemMigrate + arguments: ['@config.factory', '@entity.last_installed_schema.repository', '@database', '@keyvalue', '@entity_field.manager'] diff --git a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php index ece13725ce52b5bb7ead41ad0ae1f988124b32c5..7f958a2f56454854f2b8d31d7fe4c137f51e112b 100644 --- a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php +++ b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php @@ -3,7 +3,6 @@ namespace Drupal\Tests\video_embed_media\Functional; use Drupal\Tests\media\Functional\MediaFunctionalTestBase; -use Drupal\Tests\media\Functional\MediaFunctionalTestCreateMediaTypeTrait; use Drupal\Tests\video_embed_field\Functional\AdminUserTrait; /** @@ -39,7 +38,7 @@ public function testMediaBundleCreation() { $this->drupalLogin($this->adminUser); // Create bundle and modify form display. - $media_type = $this->createMediaType(['bundle' => 'video_bundle'], 'video_embed_field'); + $media_type = $this->createMediaType('video_embed_field', ['bundle' => 'video_bundle']); $source = $media_type->getSource(); $source_field = $source->getSourceFieldDefinition($media_type); if ($source_field->isDisplayConfigurable('form')) { @@ -49,7 +48,7 @@ public function testMediaBundleCreation() { // @todo Replace entity_get_form_display() when #2367933 is done. // https://www.drupal.org/node/2872159. - entity_get_form_display('media', $media_type->id(), 'default') + $this->container->get('entity_display.repository')->getFormDisplay('media', $media_type->id(), 'default') ->setComponent($source_field->getName(), $component) ->save(); } diff --git a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php index e51b806940e3f7cc2ab9b59b8e927e4a6711cb00..71503730dbb477b96da3055cdf0a9b35fe7dd241 100644 --- a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php +++ b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php @@ -3,9 +3,7 @@ namespace Drupal\Tests\video_embed_media\Kernel; use Drupal\media\Entity\Media; -use Drupal\media\Entity\MediaType; use Drupal\Tests\media\Kernel\MediaKernelTestBase; -use Drupal\video_embed_media\Plugin\media\Source\VideoEmbedField; /** * Test the media bundle default names. diff --git a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php index cd90463256a957524b4e120cb702542227f29059..b7ef9e8883b20fe8be705f83ab208dae005dfd15 100644 --- a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php +++ b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php @@ -2,10 +2,9 @@ namespace Drupal\Tests\video_embed_media\Kernel; +use Drupal\Core\File\FileSystemInterface; use Drupal\media\Entity\Media; -use Drupal\media\Entity\MediaType; use Drupal\Tests\media\Kernel\MediaKernelTestBase; -use Drupal\video_embed_media\Plugin\media\Source\VideoEmbedField; /** * Test the provided fields. @@ -122,7 +121,7 @@ public function setUp() { $this->plugin = $this->entityType->getSource(); $dir = 'public://video_thumbnails'; - file_prepare_directory($dir, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); + $this->container->get('file_system')->prepareDirectory($dir, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS); } } diff --git a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml index bc5073d7ed4db3806c184e876108521d902a44b3..42dd220d8a9ce2cd951f8d096f978a59205ca0d5 100644 --- a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml +++ b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml @@ -7,8 +7,8 @@ dependencies: - drupal:media (>= 8.4) - video_embed_field:video_embed_field -# Information added by Drupal.org packaging script on 2018-04-10 -version: '8.x-2.0' +# Information added by Drupal.org packaging script on 2019-07-26 +version: '8.x-2.2' core: '8.x' project: 'video_embed_field' -datestamp: 1523338087 +datestamp: 1564103587 diff --git a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install index fe4475310fc842365a245fe00095c0c8b86ab24d..843637edfe844fd70c0c06c9a5d5e70b49f6d0be 100644 --- a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install +++ b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install @@ -5,14 +5,18 @@ * Install file for video_embed_media. */ +use Drupal\Core\File\FileSystemInterface; + /** * Implements hook_install(). */ function video_embed_media_install() { + /** @var \Drupal\Core\File\FileSystemInterface $file_system */ + $file_system = \Drupal::service('file_system'); // Copy the video icons into the right place. $icon_folder = drupal_get_path('module', 'video_embed_media') . '/images/icons'; $destination = \Drupal::config('media.settings')->get('icon_base_uri'); - file_prepare_directory($destination, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); + $file_system->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS); $files = file_scan_directory($icon_folder, '/.*\.(svg|png|jpg|jpeg|gif)$/'); foreach ($files as $file) { @@ -22,7 +26,7 @@ function video_embed_media_install() { // are referenced somewhere else. Since showing an error that it was not // possible to copy the files is also confusing, we silently do nothing. if (!file_exists($destination . DIRECTORY_SEPARATOR . $file->filename)) { - file_unmanaged_copy($file->uri, $destination, FILE_EXISTS_ERROR); + $file_system->copy($file->uri, $destination, FileSystemInterface::EXISTS_ERROR); } } } diff --git a/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php b/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php index c80d66328031e626d4e0d857671b95ee4d35c140..4be4bc6f4ace5cf4f2e8fb650c82c40b8ad483ff 100644 --- a/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php +++ b/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php @@ -2,15 +2,15 @@ namespace Drupal\Tests\video_embed_wysiwyg\FunctionalJavascript; -use Drupal\FunctionalJavascriptTests\JavascriptTestBase; -use Drupal\simpletest\ContentTypeCreationTrait; +use Drupal\FunctionalJavascriptTests\WebDriverTestBase; +use Drupal\Tests\node\Traits\ContentTypeCreationTrait; /** * Test the dialog form. * * @group video_embed_wysiwyg */ -class EmbedDialogTest extends JavascriptTestBase { +class EmbedDialogTest extends WebDriverTestBase { use ContentTypeCreationTrait; @@ -48,12 +48,13 @@ public function setUp() { // Assert access is denied without enabling the filter. $this->drupalGet('video-embed-wysiwyg/dialog/plain_text'); - $this->assertEquals(403, $this->getSession()->getStatusCode()); + $this->assertSession()->pageTextContains('Access denied'); // Enable the filter. $this->drupalGet('admin/config/content/formats/manage/plain_text'); $this->find('[name="editor[editor]"]')->setValue('ckeditor'); $this->assertSession()->assertWaitOnAjaxRequest(); + $this->getSession()->getDriver()->executeScript("jQuery('.form-item-editor-settings-toolbar-button-groups').show();"); $this->submitForm([ 'filters[video_embed_wysiwyg][status]' => TRUE, 'filters[filter_html_escape][status]' => FALSE, @@ -62,7 +63,7 @@ public function setUp() { // Visit the modal again. $this->drupalGet('video-embed-wysiwyg/dialog/plain_text'); - $this->assertEquals(200, $this->getSession()->getStatusCode()); + $this->assertSession()->pageTextNotContains('Access denied'); } /** @@ -77,8 +78,6 @@ public function testEmbedDialog() { // Assert all the form fields appear on the modal. $this->assertSession()->pageTextContains('Autoplay'); $this->assertSession()->pageTextContains('Responsive Video'); - $this->assertSession()->pageTextContains('Width'); - $this->assertSession()->pageTextContains('Height'); $this->assertSession()->pageTextContains('Video URL'); // Attempt to submit the modal with no values. diff --git a/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml b/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml index bf4ef98bb3d6c62b66e6bcd1be6fbab1c069cdbc..a2cb4b778c553be0552697816b6c810c7d68e89b 100644 --- a/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml +++ b/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml @@ -8,8 +8,8 @@ dependencies: - drupal:ckeditor - video_embed_field:video_embed_field -# Information added by Drupal.org packaging script on 2018-04-10 -version: '8.x-2.0' +# Information added by Drupal.org packaging script on 2019-07-26 +version: '8.x-2.2' core: '8.x' project: 'video_embed_field' -datestamp: 1523338087 +datestamp: 1564103587 diff --git a/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php b/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php index 4376a68be6ebc792d6c61abc33307e374028d9e5..5bba79a378e43e4500abe0fbb6acc14aec3b6b80 100644 --- a/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php +++ b/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php @@ -107,7 +107,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) { // Add a play button. $itemThumb[] = [ '#type' => 'html_tag', - '#tag' => 'div', + '#tag' => 'button', '#attributes' => [ 'class' => ['video-embed-field-lazy-play'] ], diff --git a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php index 5774d852a658d565be9f3fb584d783dfb778cc39..37491c10fae78ce07261e2cd64d5741086b34cc5 100644 --- a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php +++ b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php @@ -4,7 +4,7 @@ use Drupal\migrate\Plugin\MigrationInterface; use Drupal\migrate\Row; -use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase; +use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase; /** * Plugin to migrate from the Drupal 6 emfield module. @@ -16,7 +16,7 @@ * destination_module = "video_embed_field", * ) */ -class EmvideoField extends CckFieldPluginBase { +class EmvideoField extends FieldPluginBase { /** * {@inheritdoc} @@ -48,9 +48,9 @@ public function getFieldWidgetMap() { /** * {@inheritdoc} */ - public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) { + public function defineValueProcessPipeline(MigrationInterface $migration, $field_name, $data) { $process = [ - 'plugin' => 'iterator', + 'plugin' => 'sub_process', 'source' => $field_name, 'process' => [ 'value' => 'embed', diff --git a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php index 67c4487d0ab1524c867d8d850bd4c65982b154b7..97e0f216b814942cbd3fae76a3182f02698cfbd7 100644 --- a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php +++ b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php @@ -4,7 +4,7 @@ use Drupal\migrate\Plugin\MigrationInterface; use Drupal\migrate\Row; -use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase; +use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase; /** * Plugin to migrate from the Drupal 7 video_embed_field module. @@ -16,7 +16,7 @@ * destination_module = "video_embed_field", * ) */ -class VideoEmbedField extends CckFieldPluginBase { +class VideoEmbedField extends FieldPluginBase { /** * {@inheritdoc} @@ -48,9 +48,9 @@ public function getFieldWidgetMap() { /** * {@inheritdoc} */ - public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) { + public function defineValueProcessPipeline(MigrationInterface $migration, $field_name, $data) { $process = [ - 'plugin' => 'iterator', + 'plugin' => 'sub_process', 'source' => $field_name, 'process' => [ 'value' => 'video_url', diff --git a/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php b/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php index aa11aeac98a65e24336e0ef21515d84cc4b95866..224edd2e2d6f0157b77968877489ae05f953101d 100644 --- a/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php +++ b/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php @@ -47,8 +47,13 @@ public function renderEmbedCode($width, $height, $autoplay) { * The time index where the video should start based on the URL. */ protected function getTimeIndex() { - preg_match('/[&\?]t=(?<timeindex>\d+)/', $this->getInput(), $matches); - return isset($matches['timeindex']) ? $matches['timeindex'] : 0; + preg_match('/[&\?]t=((?<hours>\d+)h)?((?<minutes>\d+)m)?(?<seconds>\d+)s?/', $this->getInput(), $matches); + + $hours = !empty($matches['hours']) ? $matches['hours'] : 0; + $minutes = !empty($matches['minutes']) ? $matches['minutes'] : 0; + $seconds = !empty($matches['seconds']) ? $matches['seconds'] : 0; + + return $hours * 3600 + $minutes * 60 + $seconds; } /** diff --git a/web/modules/video_embed_field/src/ProviderPluginBase.php b/web/modules/video_embed_field/src/ProviderPluginBase.php index aeb82a5f994a8581185883836ca90a3858b56f96..c3c4b0da719ed514037381c2368f127332204ffd 100644 --- a/web/modules/video_embed_field/src/ProviderPluginBase.php +++ b/web/modules/video_embed_field/src/ProviderPluginBase.php @@ -2,6 +2,7 @@ namespace Drupal\video_embed_field; +use Drupal\Core\File\FileSystemInterface; use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Plugin\PluginBase; use GuzzleHttp\ClientInterface; @@ -40,10 +41,15 @@ abstract class ProviderPluginBase extends PluginBase implements ProviderPluginIn */ protected $httpClient; + /** + * @var \Drupal\Core\File\FileSystemInterface + */ + protected $fileSystem; + /** * Create a plugin with the given input. * - * @param string $configuration + * @param array $configuration * The configuration of the plugin. * @param string $plugin_id * The plugin id. @@ -74,6 +80,19 @@ protected function getVideoId() { return $this->videoId; } + /** + * Get the file system service. + * + * @return \Drupal\Core\File\FileSystemInterface + * The file system service. + */ + protected function getFileSystem() { + if (!isset($this->fileSystem)) { + $this->fileSystem = \Drupal::service('file_system'); + } + return $this->fileSystem; + } + /** * Get the input which caused this plugin to be selected. * @@ -122,10 +141,10 @@ public function renderThumbnail($image_style, $link_url) { public function downloadThumbnail() { $local_uri = $this->getLocalThumbnailUri(); if (!file_exists($local_uri)) { - file_prepare_directory($this->thumbsDirectory, FILE_CREATE_DIRECTORY); + $this->getFileSystem()->prepareDirectory($this->thumbsDirectory, FileSystemInterface::CREATE_DIRECTORY); try { $thumbnail = $this->httpClient->request('GET', $this->getRemoteThumbnailUrl()); - file_unmanaged_save_data((string) $thumbnail->getBody(), $local_uri); + $this->getFileSystem()->saveData((string) $thumbnail->getBody(), $local_uri); } catch (\Exception $e) { } diff --git a/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml b/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml index 04d6d5b4781731dde2266684bcfb4cb787fc5563..9ebc61a57f4d926b87e1376424ddfc9e59741297 100644 --- a/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml +++ b/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml @@ -5,8 +5,8 @@ hidden: true package: Testing # core: 8.x -# Information added by Drupal.org packaging script on 2018-04-10 -version: '8.x-2.0' +# Information added by Drupal.org packaging script on 2019-07-26 +version: '8.x-2.2' core: '8.x' project: 'video_embed_field' -datestamp: 1523338087 +datestamp: 1564103587 diff --git a/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php b/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php index f9a45a1c8ad6e2434943e1caab64773691dce7c9..a29bc127125eca8b1e0fca06ba9babfb459ce561 100644 --- a/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php +++ b/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php @@ -2,7 +2,7 @@ namespace Drupal\Tests\video_embed_field\Functional; -use Drupal\simpletest\UserCreationTrait; +use Drupal\Tests\user\Traits\UserCreationTrait; /** * Create admin users. diff --git a/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php b/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php index d7953e263d0230a10a576021a5533123d96dc4e1..1673e7a69d6604c08708a7259c61bf8f26f21ea7 100644 --- a/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php +++ b/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php @@ -3,8 +3,8 @@ namespace Drupal\Tests\video_embed_field\Functional; use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; -use Drupal\simpletest\ContentTypeCreationTrait; -use Drupal\simpletest\NodeCreationTrait; +use Drupal\Tests\node\Traits\ContentTypeCreationTrait; +use Drupal\Tests\node\Traits\NodeCreationTrait; /** * A trait for manipulating entity display. @@ -63,8 +63,8 @@ protected function setupEntityDisplays() { 'bundle' => $this->contentTypeName, 'settings' => [], ])->save(); - $this->entityDisplay = entity_get_display('node', $this->contentTypeName, 'default'); - $this->entityFormDisplay = entity_get_form_display('node', $this->contentTypeName, 'default'); + $this->entityDisplay = $this->container->get('entity_display.repository')->getViewDisplay('node', $this->contentTypeName, 'default'); + $this->entityFormDisplay = $this->container->get('entity_display.repository')->getFormDisplay('node', $this->contentTypeName, 'default'); } /** diff --git a/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php b/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php index 685b1a135e3020707351765272ed02598dc3ce43..87c26bbbf96049043f5a3827334dc976e824b2c1 100644 --- a/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php +++ b/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php @@ -2,7 +2,7 @@ namespace Drupal\Tests\video_embed_field\FunctionalJavascript; -use Drupal\FunctionalJavascriptTests\JavascriptTestBase; +use Drupal\FunctionalJavascriptTests\WebDriverTestBase; use Drupal\Tests\video_embed_field\Functional\EntityDisplaySetupTrait; /** @@ -10,7 +10,7 @@ * * @group video_embed_field */ -class ColorboxFormatterTest extends JavascriptTestBase { +class ColorboxFormatterTest extends WebDriverTestBase { use EntityDisplaySetupTrait; @@ -52,8 +52,8 @@ public function testColorboxFormatter() { $this->getSession()->wait(static::COLORBOX_LAUNCH_TIME); $this->assertSession()->elementExists('css', '#colorbox .video-embed-field-responsive-video'); // Make sure the right library files are loaded on the page. - $this->assertSession()->elementContains('css', 'style', 'colorbox/styles/default/colorbox_style.css'); - $this->assertSession()->elementContains('css', 'style', 'video_embed_field/css/video_embed_field.responsive-video.css'); + $this->assertSession()->elementExists('css', 'link[href*="colorbox_style.css"]'); + $this->assertSession()->elementExists('css', 'link[href*="video_embed_field.responsive-video.css"]'); } } diff --git a/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php b/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php index b7bc67342517a4e44edc619e007219cbe68e31ef..b1de102b85850a5d98668dab445d8c4a2d114730 100644 --- a/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php +++ b/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php @@ -2,7 +2,7 @@ namespace Drupal\Tests\video_embed_field\FunctionalJavascript; -use Drupal\FunctionalJavascriptTests\JavascriptTestBase; +use Drupal\FunctionalJavascriptTests\WebDriverTestBase; use Drupal\Tests\video_embed_field\Functional\EntityDisplaySetupTrait; /** @@ -10,7 +10,7 @@ * * @group video_embed_field */ -class LazyLoadFormatterTest extends JavascriptTestBase { +class LazyLoadFormatterTest extends WebDriverTestBase { use EntityDisplaySetupTrait; @@ -44,7 +44,7 @@ public function testColorboxFormatter() { $this->click('.video-embed-field-lazy'); $this->assertSession()->elementExists('css', '.video-embed-field-lazy .video-embed-field-responsive-video'); // Make sure the right library files are loaded on the page. - $this->assertSession()->elementContains('css', 'style', 'video_embed_field/css/video_embed_field.responsive-video.css'); + $this->assertSession()->elementExists('css', 'link[href*="video_embed_field.responsive-video.css"]'); } } diff --git a/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php b/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php index 1ed6323eb82c8c1d5024b30679f69b66ed8cad30..b96e432944123dc85ec44467a7994282d11e1d91 100644 --- a/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php +++ b/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php @@ -3,7 +3,7 @@ namespace Drupal\Tests\video_embed_field\Kernel; use Drupal\entity_test\Entity\EntityTest; -use Drupal\simpletest\UserCreationTrait; +use Drupal\Tests\user\Traits\UserCreationTrait; use Drupal\video_embed_field\Plugin\Validation\Constraint\VideoEmbedConstraint; /** diff --git a/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php b/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php index 5ce00a5221f8917a2f8f56b63fe51ad0ee361fdb..e3bf7f21ce3eb5dc2b6d5dd514a2406efcdad437 100644 --- a/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php +++ b/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php @@ -413,7 +413,7 @@ public function renderedFieldTestCases() { ], [ '#type' => 'html_tag', - '#tag' => 'div', + '#tag' => 'button', '#attributes' => [ 'class' => [ 'video-embed-field-lazy-play', diff --git a/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php b/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php index 57908066f1f9dfd225fa24223697650896efb71e..6f64b970c1c95d500dc554252ab84e41e8ea6138 100644 --- a/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php +++ b/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php @@ -254,15 +254,31 @@ public function youTubeTimeIndexTestCases() { return [ 'Simple Timeindex' => [ 'https://www.youtube.com/watch?v=fdbFVWupSsw&t=15', - '15', + 15, + ], + 'Timeindex with Seconds' => [ + 'https://www.youtube.com/watch?v=q25eaJHpXFo&t=15s', + 15, + ], + 'Timeindex with Minutes and Seconds' => [ + 'https://www.youtube.com/watch?v=q25eaJHpXFo&t=42m25s', + 2545, + ], + 'Timeindex with Hours, Minutes and Seconds' => [ + 'https://www.youtube.com/watch?v=q25eaJHpXFo&t=1h11m14s', + 4274, + ], + 'Timeindex with other params' => [ + 'https://www.youtube.com/watch?v=q25eaJHpXFo&t=1h11m14s&some_param=nothing', + 4274, ], 'No Timeindex' => [ 'https://www.youtube.com/watch?v=fdbFVWupSsw', - '0', + 0, ], 'Invalid Timeindex' => [ 'https://www.youtube.com/watch?v=fdbFVWupSsw&t=time', - '0', + 0, ], ]; } diff --git a/web/modules/video_embed_field/video_embed_field.info.yml b/web/modules/video_embed_field/video_embed_field.info.yml index 3804cbe15f5029f09c97d6225e09217e33a6d2b6..acd8ed9cd01e14eb3b239ff188de0766d3814081 100644 --- a/web/modules/video_embed_field/video_embed_field.info.yml +++ b/web/modules/video_embed_field/video_embed_field.info.yml @@ -6,14 +6,15 @@ package: Video Embed Field dependencies: - drupal:field - drupal:image + - drupal:system (>=8.7.0) test_dependencies: - media_entity:media_entity - media_entity_embeddable_video:media_entity_embeddable_video - colorbox:colorbox -# Information added by Drupal.org packaging script on 2018-04-10 -version: '8.x-2.0' +# Information added by Drupal.org packaging script on 2019-07-26 +version: '8.x-2.2' core: '8.x' project: 'video_embed_field' -datestamp: 1523338087 +datestamp: 1564103587