diff --git a/core/composer.json b/core/composer.json index a6d52d1082..954548bdc3 100644 --- a/core/composer.json +++ b/core/composer.json @@ -120,6 +120,7 @@ "drupal/locale": "self.version", "drupal/minimal": "self.version", "drupal/media": "self.version", + "drupal/media_library": "self.version", "drupal/menu_link_content": "self.version", "drupal/menu_ui": "self.version", "drupal/migrate": "self.version", diff --git a/core/modules/media_library/config/install/views.view.media_library.yml b/core/modules/media_library/config/install/views.view.media_library.yml index b2183de4c9..a2d3f6c97f 100644 --- a/core/modules/media_library/config/install/views.view.media_library.yml +++ b/core/modules/media_library/config/install/views.view.media_library.yml @@ -388,8 +388,10 @@ display: - 'url.query_args:sort_by' - user.permissions tags: + - 'config:core.entity_view_display.media.audio.default' - 'config:core.entity_view_display.media.file.default' - 'config:core.entity_view_display.media.image.default' + - 'config:core.entity_view_display.media.video.default' bundle_page: display_plugin: page id: bundle_page @@ -408,8 +410,10 @@ display: - 'url.query_args:sort_by' - user.permissions tags: + - 'config:core.entity_view_display.media.audio.default' - 'config:core.entity_view_display.media.file.default' - 'config:core.entity_view_display.media.image.default' + - 'config:core.entity_view_display.media.video.default' embed: display_plugin: embed id: embed @@ -530,8 +534,10 @@ display: - 'url.query_args:sort_by' - user.permissions tags: + - 'config:core.entity_view_display.media.audio.default' - 'config:core.entity_view_display.media.file.default' - 'config:core.entity_view_display.media.image.default' + - 'config:core.entity_view_display.media.video.default' page: display_plugin: page id: page @@ -558,8 +564,10 @@ display: - 'url.query_args:sort_by' - user.permissions tags: + - 'config:core.entity_view_display.media.audio.default' - 'config:core.entity_view_display.media.file.default' - 'config:core.entity_view_display.media.image.default' + - 'config:core.entity_view_display.media.video.default' widget: display_plugin: page id: widget @@ -697,5 +705,7 @@ display: - 'url.query_args:sort_by' - user.permissions tags: + - 'config:core.entity_view_display.media.audio.default' - 'config:core.entity_view_display.media.file.default' - 'config:core.entity_view_display.media.image.default' + - 'config:core.entity_view_display.media.video.default' diff --git a/core/modules/media_library/media_library.install b/core/modules/media_library/media_library.install index 9200048f8b..26bb7d1013 100644 --- a/core/modules/media_library/media_library.install +++ b/core/modules/media_library/media_library.install @@ -14,8 +14,9 @@ function media_library_install() { // Disable the /admin/content view provided by media, so that we can properly // override it. /** @var \Drupal\views\Entity\View $view */ - $view = View::load('media'); - $display = &$view->getDisplay('media_page_list'); - $display['display_options']['enabled'] = FALSE; - $view->save(); + if ($view = View::load('media')) { + $display = &$view->getDisplay('media_page_list'); + $display['display_options']['enabled'] = FALSE; + $view->save(); + } } diff --git a/core/modules/media_library/media_library.module b/core/modules/media_library/media_library.module index 73e96c4f76..4c04c28558 100644 --- a/core/modules/media_library/media_library.module +++ b/core/modules/media_library/media_library.module @@ -36,10 +36,11 @@ function media_library_preprocess_media(&$variables) { /** @var \Drupal\media\MediaInterface $media */ $media = $variables['media']; /** @var \Drupal\user\UserInterface $user */ - $user = $media->getRevisionUser(); - $variables['author_info'] = [ - '#markup' => t('Created by %author', ['%author' => $user->getDisplayName()]), - ]; + if ($user = $media->getRevisionUser()) { + $variables['author_info'] = [ + '#markup' => t('Created by %author', ['%author' => $user->getDisplayName()]), + ]; + } $variables['created_ago'] = [ '#markup' => _media_library_pretty_time($media->getCreatedTime()), ]; diff --git a/core/modules/media_library/media_library.views.inc b/core/modules/media_library/media_library.views.inc index 6a8b182cdb..b146b60895 100644 --- a/core/modules/media_library/media_library.views.inc +++ b/core/modules/media_library/media_library.views.inc @@ -1,5 +1,10 @@ getDefinitions() as $entity_type => $entity_info) { - $data[$entity_info->getBaseTable()][$entity_type . '_select_media'] = array( + $data[$entity_info->getBaseTable()][$entity_type . '_select_media'] = [ 'title' => t('Select media'), 'help' => t('Provides a field for selecting media entities in our media library view'), 'real field' => $entity_info->getKey('id'), - 'field' => array( + 'field' => [ 'id' => 'select_media', - ), - ); + ], + ]; } return $data; } diff --git a/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php b/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php index a97e22401d..cc3cc959f6 100644 --- a/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php +++ b/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php @@ -131,8 +131,8 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen if (empty($referenced_entities)) { $element['empty_selection'] = [ - '#markup' => $this->t('
No media selected.
' - )]; + '#markup' => $this->t('No media selected.
'), + ]; } else { foreach ($referenced_entities as $delta => $media_item) { @@ -149,8 +149,8 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen ], 'remove_button' => [ '#type' => 'submit', - '#media_library_remove_delta' =>$delta, - '#name' => $field_name . '-' . $delta . '-media-library-remove-button', + '#media_library_remove_delta' => $delta, + '#name' => $field_name . '-' . $delta . '-media-library-remove-button', '#value' => $this->t('Remove'), '#attributes' => [ 'class' => ['media-library-item-remove'], diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php index 72ca4a7be3..679615ec54 100644 --- a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php +++ b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php @@ -69,17 +69,23 @@ public function testAdministrationPage() { $this->assertSession()->pageTextContains('media_3'); // Test the tabs that allow users to filter by type. - $this->clickLink('Type One'); + $this->getSession()->getPage()->selectFieldOption('Media type', 'Type One'); + $this->getSession()->getPage()->pressButton('Apply Filters'); + $this->assertSession()->assertWaitOnAjaxRequest(); $this->assertSession()->pageTextContains('media_2'); $this->assertSession()->pageTextNotContains('media_4'); - $this->clickLink('Type Two'); + $this->getSession()->getPage()->selectFieldOption('Media type', 'Type Two'); + $this->getSession()->getPage()->pressButton('Apply Filters'); + $this->assertSession()->assertWaitOnAjaxRequest(); $this->assertSession()->pageTextNotContains('media_2'); $this->assertSession()->pageTextContains('media_4'); // Test that selecting elements as a part of bulk operations works. - $this->clickLink('All categories'); + $this->getSession()->getPage()->selectFieldOption('Media type', '- Any -'); + $this->getSession()->getPage()->pressButton('Apply Filters'); + $this->assertSession()->assertWaitOnAjaxRequest(); $this->getSession()->executeScript('jQuery(".media-library-item").click()'); - $this->submitForm([], 'Apply to selected items', 'views-form-media-library-page'); + $this->submitForm([], 'Apply to selected items'); $this->assertSession()->pageTextContains('media_1'); }