diff -u b/core/modules/media_library/config/install/core.entity_view_mode.media.media_library.yml b/core/modules/media_library/config/install/core.entity_view_mode.media.media_library.yml --- b/core/modules/media_library/config/install/core.entity_view_mode.media.media_library.yml +++ b/core/modules/media_library/config/install/core.entity_view_mode.media.media_library.yml @@ -1,8 +1,9 @@ langcode: en status: true dependencies: - module: - - media + enforced: + module: + - media_library id: media.media_library label: 'Media Library' targetEntityType: media diff -u b/core/modules/media_library/config/install/views.view.media_library.yml b/core/modules/media_library/config/install/views.view.media_library.yml --- b/core/modules/media_library/config/install/views.view.media_library.yml +++ b/core/modules/media_library/config/install/views.view.media_library.yml @@ -5,8 +5,10 @@ - core.entity_view_mode.media.media_library module: - media - - media_library - user + enforced: + module: + - media_library id: media_library label: Media Library module: views @@ -387,13 +389,7 @@ - url.query_args - '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.file.media_library' - - 'config:core.entity_view_display.media.image.default' - - 'config:core.entity_view_display.media.image.media_library' - - 'config:core.entity_view_display.media.video.default' + tags: { } page: display_plugin: page id: page @@ -422,7 +418 @@ - tags: - - 'config:core.entity_view_display.media.audio.default' - - 'config:core.entity_view_display.media.file.default' - - 'config:core.entity_view_display.media.file.media_library' - - 'config:core.entity_view_display.media.image.default' - - 'config:core.entity_view_display.media.image.media_library' - - 'config:core.entity_view_display.media.video.default' + tags: { } diff -u b/core/modules/media_library/config/optional/core.entity_view_display.media.file.media_library.yml b/core/modules/media_library/config/optional/core.entity_view_display.media.file.media_library.yml --- b/core/modules/media_library/config/optional/core.entity_view_display.media.file.media_library.yml +++ b/core/modules/media_library/config/optional/core.entity_view_display.media.file.media_library.yml @@ -13,17 +13,9 @@ bundle: file mode: media_library content: - name: - label: hidden - type: string - weight: 0 - region: content - settings: - link_to_entity: false - third_party_settings: { } thumbnail: type: image - weight: 1 + weight: 0 region: content label: hidden settings: @@ -35,2 +27,3 @@ field_media_file: true + name: true uid: true diff -u b/core/modules/media_library/config/optional/core.entity_view_display.media.image.media_library.yml b/core/modules/media_library/config/optional/core.entity_view_display.media.image.media_library.yml --- b/core/modules/media_library/config/optional/core.entity_view_display.media.image.media_library.yml +++ b/core/modules/media_library/config/optional/core.entity_view_display.media.image.media_library.yml @@ -13,17 +13,9 @@ bundle: image mode: media_library content: - name: - label: hidden - type: string - weight: 0 - region: content - settings: - link_to_entity: false - third_party_settings: { } thumbnail: type: image - weight: 1 + weight: 0 region: content label: hidden settings: @@ -35,2 +27,3 @@ field_media_image: true + name: true uid: true diff -u b/core/modules/media_library/js/media_library.view.es6.js b/core/modules/media_library/js/media_library.view.es6.js --- b/core/modules/media_library/js/media_library.view.es6.js +++ b/core/modules/media_library/js/media_library.view.es6.js @@ -18,12 +18,7 @@ // Click the hidden checkbox when the media item is clicked. const $input = $(this).parents('.media-library-item').find('.media-library-item-checkbox input'); $input.prop('checked', !$input.prop('checked')); - if ($input.prop('checked')) { - $(this).parents('.media-library-item').addClass('checked'); - } - else { - $(this).parents('.media-library-item').removeClass('checked'); - } + $(this).parents('.media-library-item').toggleClass('checked', $input.prop('checked')); if ($('.media-library-item.checked').length) { $('#edit-header').show(); @@ -47,12 +42,7 @@ // Add the toggle when javascript is available $('.media-library-item-attributes', context).after(''); $('.media-library-item-toggle').once('media-library-toggle').on('click', function () { - if ($(this).parents('.media-library-item').hasClass('expanded')) { - $(this).parents('.media-library-item').removeClass('expanded'); - } - else { - $(this).parents('.media-library-item').addClass('expanded'); - } + $(this).parents('.media-library-item').toggleClass('expanded'); }); } }; diff -u b/core/modules/media_library/js/media_library.view.js b/core/modules/media_library/js/media_library.view.js --- b/core/modules/media_library/js/media_library.view.js +++ b/core/modules/media_library/js/media_library.view.js @@ -16,11 +16,7 @@ var $input = $(this).parents('.media-library-item').find('.media-library-item-checkbox input'); $input.prop('checked', !$input.prop('checked')); - if ($input.prop('checked')) { - $(this).parents('.media-library-item').addClass('checked'); - } else { - $(this).parents('.media-library-item').removeClass('checked'); - } + $(this).parents('.media-library-item').toggleClass('checked', $input.prop('checked')); if ($('.media-library-item.checked').length) { $('#edit-header').show(); @@ -39,11 +35,7 @@ attach: function attach(context) { $('.media-library-item-attributes', context).after(''); $('.media-library-item-toggle').once('media-library-toggle').on('click', function () { - if ($(this).parents('.media-library-item').hasClass('expanded')) { - $(this).parents('.media-library-item').removeClass('expanded'); - } else { - $(this).parents('.media-library-item').addClass('expanded'); - } + $(this).parents('.media-library-item').toggleClass('expanded'); }); } }; diff -u b/core/modules/media_library/media_library.install b/core/modules/media_library/media_library.install --- b/core/modules/media_library/media_library.install +++ b/core/modules/media_library/media_library.install @@ -22,0 +23,13 @@ + +/** + * Implements hook_uninstall(). + */ +function media_library_uninstall() { + // Restore the /admin/content view provided by media. + /** @var \Drupal\views\Entity\View $view */ + if ($view = View::load('media')) { + $display = &$view->getDisplay('media_page_list'); + $display['display_options']['enabled'] = TRUE; + $view->save(); + } +} diff -u b/core/modules/media_library/media_library.module b/core/modules/media_library/media_library.module --- b/core/modules/media_library/media_library.module +++ b/core/modules/media_library/media_library.module @@ -2,13 +2,26 @@ /** * @file - * Contains hook implementation for the media_library module. + * Contains hook implementations for the media_library module. */ +use Drupal\Core\Routing\RouteMatchInterface; use Drupal\views\Plugin\views\cache\CachePluginBase; use Drupal\views\ViewExecutable; /** + * Implements hook_help(). + */ +function media_library_help($route_name, RouteMatchInterface $route_match) { + switch ($route_name) { + case 'help.page.media_library': + $output = '

' . t('About') . '

'; + $output .= '

' . t('The Media library module overrides the /admin/content/media to provide a rich visual interface for performing administrative operations on media. For more information, see the online documentation for the Media module.', [':media' => 'https://www.drupal.org/docs/8/core/modules/media']) . '

'; + return $output; + } +} + +/** * Implements hook_theme(). */ function media_library_theme() { reverted: --- b/core/modules/media_library/media_library.views.inc +++ /dev/null @@ -1,25 +0,0 @@ -getDefinitions() as $entity_type => $entity_info) { - $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' => [ - 'id' => 'select_media', - ], - ]; - } - return $data; -} diff -u b/core/modules/media_library/templates/media--media-library.html.twig b/core/modules/media_library/templates/media--media-library.html.twig --- b/core/modules/media_library/templates/media--media-library.html.twig +++ b/core/modules/media_library/templates/media--media-library.html.twig @@ -3,10 +3,9 @@ * @file * Default theme implementation to present a media entity in the media library. * - * The major difference between this template and the default template is that - * "name" is omitted, as "name" is output as a field in the Media library view. - * Other themes are welcome to override this template, which will not break the - * functionality of the library. + * Other themes are welcome to override this template, as long as the + * "media-library-item-preview" and "media-library-item-attributes" classes are + * present in the template override. * * Available variables: * - media: The entity with limited access to object properties and methods.