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 bfab376bb076..b52edd811b21 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
@@ -414,9 +414,288 @@ display:
weight: 5
context: '0'
menu_name: admin
+ fields:
+ media_bulk_form:
+ id: media_bulk_form
+ table: media
+ field: media_bulk_form
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: js-click-to-select-checkbox
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ action_title: Action
+ include_exclude: exclude
+ selected_actions: { }
+ entity_type: media
+ plugin_id: bulk_form
+ name:
+ id: name
+ table: media_field_data
+ field: name
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: ''
+ exclude: true
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: false
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ entity_type: media
+ entity_field: name
+ plugin_id: field
+ edit_media:
+ id: edit_media
+ table: media
+ field: edit_media
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: ''
+ exclude: false
+ alter:
+ alter_text: true
+ text: 'Edit {{ name }}'
+ make_link: true
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: 'Edit {{ name }}'
+ rel: ''
+ link_class: media-library-item__edit
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: '0'
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ text: 'Edit'
+ output_url_as_text: false
+ absolute: false
+ entity_type: media
+ plugin_id: entity_link_edit
+ delete_media:
+ id: delete_media
+ table: media
+ field: delete_media
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: ''
+ exclude: false
+ alter:
+ alter_text: true
+ text: 'Delete {{ name }}'
+ make_link: true
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: 'Delete {{ name }}'
+ rel: ''
+ link_class: media-library-item__remove
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: '0'
+ element_wrapper_class: ''
+ element_default_classes: false
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ text: 'Delete'
+ output_url_as_text: false
+ absolute: false
+ entity_type: media
+ plugin_id: entity_link_delete
+ rendered_entity:
+ id: rendered_entity
+ table: media
+ field: rendered_entity
+ relationship: none
+ group_type: group
+ admin_label: ''
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ text: ''
+ make_link: false
+ path: ''
+ absolute: false
+ external: false
+ replace_spaces: false
+ path_case: none
+ trim_whitespace: false
+ alt: ''
+ rel: ''
+ link_class: ''
+ prefix: ''
+ suffix: ''
+ target: ''
+ nl2br: false
+ max_length: 0
+ word_boundary: true
+ ellipsis: true
+ more_link: false
+ more_link_text: ''
+ more_link_path: ''
+ strip_tags: false
+ trim: false
+ preserve_tags: ''
+ html: false
+ element_type: ''
+ element_class: media-library-item__content
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: false
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ view_mode: media_library
+ entity_type: media
+ plugin_id: rendered_entity
+ defaults:
+ fields: false
cache_metadata:
max-age: 0
contexts:
+ - 'languages:language_content'
- 'languages:language_interface'
- url
- url.query_args
diff --git a/core/modules/media_library/css/media_library.module.css b/core/modules/media_library/css/media_library.module.css
index ed428b20e0c6..3e2cdde7d137 100644
--- a/core/modules/media_library/css/media_library.module.css
+++ b/core/modules/media_library/css/media_library.module.css
@@ -51,22 +51,25 @@
.media-library-item .js-click-to-select-checkbox {
position: absolute;
z-index: 1;
- top: 5px;
- right: 5px; /* LTR */
+ top: 16px;
+ left: 16px; /* LTR */
display: block;
}
-
[dir="rtl"] .media-library-item .js-click-to-select-checkbox {
- right: 0;
- left: 5px;
+ right: 16px;
+ left: auto;
}
.media-library-item__status {
position: absolute;
- top: 10px;
- left: 2px;
+ top: 40px;
+ left: 5px; /* LTR */
pointer-events: none;
}
+[dir="rtl"] .media-library-item__status {
+ right: 5px;
+ left: auto;
+}
.media-library-select-all {
flex-basis: 100%;
@@ -85,13 +88,6 @@
cursor: move;
}
-/* @todo Remove or re-work in https://www.drupal.org/node/2985168 */
-.media-library-widget .media-library-item__name a,
-.media-library-view--widget .media-library-item__name a,
-.media-library-add-form__selected-media .media-library-item__name a {
- pointer-events: none;
-}
-
.media-library-widget-modal .ui-dialog-buttonpane {
display: flex;
align-items: center;
@@ -106,3 +102,8 @@
flex-basis: 100%;
}
}
+
+/* @todo Remove in https://www.drupal.org/project/drupal/issues/3064914 */
+.views-live-preview .media-library-view div.views-row + div.views-row {
+ margin-top: 0;
+}
diff --git a/core/modules/media_library/css/media_library.theme.css b/core/modules/media_library/css/media_library.theme.css
index d5a5b7ac87dc..75f2e343e175 100644
--- a/core/modules/media_library/css/media_library.theme.css
+++ b/core/modules/media_library/css/media_library.theme.css
@@ -318,6 +318,7 @@
height: calc(100% - 16px);
content: "";
transition: border-color 0.2s, color 0.2s, background 0.2s;
+ pointer-events: none;
border: 1px solid #dbdbdb;
}
@@ -404,8 +405,8 @@
}
.media-library-item--grid .js-click-to-select-checkbox input {
- width: 30px;
- height: 30px;
+ width: 20px;
+ height: 20px;
}
.media-library-item--grid .js-click-to-select-checkbox .form-item {
@@ -446,27 +447,20 @@
font-size: 14px;
}
-.media-library-item__name a {
+.media-library-item__name {
display: block;
overflow: hidden;
margin: 2px;
white-space: nowrap;
- text-decoration: underline;
text-overflow: ellipsis;
}
-.media-library-item__attributes:hover .media-library-item__name a,
-.media-library-item__name a:focus,
-.media-library-item--grid.is-focus .media-library-item__name a,
-.media-library-item--grid.checked .media-library-item__name a {
+.media-library-item__attributes:hover .media-library-item__name,
+.media-library-item--grid.is-focus .media-library-item__name,
+.media-library-item--grid.checked .media-library-item__name {
white-space: normal;
}
-.media-library-item__name a:focus {
- margin: 0;
- border: 2px solid;
-}
-
.media-library-item__type {
color: #696969;
font-size: 12px;
@@ -497,7 +491,11 @@
.media-library-widget__toggle-weight {
position: absolute;
top: 5px;
- right: 5px;
+ right: 5px; /* LTR */
+}
+[dir="rtl"] .media-library-widget__toggle-weight {
+ right: auto;
+ left: 5px;
}
/* Add negative margin for flex grid. */
@@ -510,7 +508,15 @@
margin: 0.75em;
}
-/* Media library widget remove button styles. */
+/**
+ * Media library widget edit and delete button styles.
+ *
+ * We have to override the .button styles since buttons make heavy use of
+ * background and border property changes.
+ */
+.media-library-item__edit,
+.media-library-item__edit:hover,
+.media-library-item__edit:focus,
.media-library-item__remove,
.media-library-item__remove:hover,
.media-library-item__remove:focus,
@@ -523,20 +529,52 @@
position: absolute;
z-index: 1;
top: 10px;
- right: 10px;
- width: 24px;
- height: 24px;
+ overflow: hidden;
+ width: 21px;
+ height: 21px;
margin: 5px;
padding: 0;
transition: 0.2s border-color;
color: transparent;
border: 2px solid #ccc;
border-radius: 20px;
- background: url("../../../misc/icons/787878/ex.svg") #fff center no-repeat;
- background-size: 16px 16px;
+ background-size: 13px;
text-shadow: none;
+ font-size: 0;
}
+.media-library-item__edit {
+ right: 40px; /* LTR */
+}
+[dir="rtl"] .media-library-item__edit {
+ right: auto;
+ left: 40px;
+}
+
+.media-library-item__remove {
+ right: 10px; /* LTR */
+}
+[dir="rtl"] .media-library-item__remove {
+ right: auto;
+ left: 10px;
+}
+
+.media-library-item__edit {
+ background: url("../../../misc/icons/787878/pencil.svg") #fff center no-repeat;
+ background-size: 13px;
+}
+.media-library-item__remove,
+.media-library-item__remove.button,
+.media-library-item__remove.button:first-child,
+.media-library-item__remove.button:disabled,
+.media-library-item__remove.button:disabled:active,
+.media-library-item__remove.button:hover,
+.media-library-item__remove.button:focus {
+ background: url("../../../misc/icons/787878/ex.svg") #fff center no-repeat;
+ background-size: 13px;
+}
+.media-library-item__edit:hover,
+.media-library-item__edit:focus,
.media-library-item__remove:hover,
.media-library-item__remove:focus,
.media-library-item__remove.button:hover,
@@ -655,11 +693,3 @@
[dir="rtl"] .media-library-add-form__remove-button.button:hover {
background-position: left 2px;
}
-
-/* @todo Remove or re-work in https://www.drupal.org/node/2985168 */
-.media-library-widget .media-library-item__name a,
-.media-library-view--widget .media-library-item__name a,
-.media-library-add-form__selected-media .media-library-item__name a {
- text-decoration: none;
- color: black;
-}
diff --git a/core/modules/media_library/media_library.install b/core/modules/media_library/media_library.install
index e2b5edca09d4..81ecb7230646 100644
--- a/core/modules/media_library/media_library.install
+++ b/core/modules/media_library/media_library.install
@@ -218,3 +218,218 @@ function media_library_update_8702() {
$view->save(TRUE);
}
}
+
+/**
+ * Add edit and delete button to media library view page display.
+ */
+function media_library_update_8703() {
+ $view = \Drupal::configFactory()->getEditable('views.view.media_library');
+ if (!$view->isNew() && $view->get('display.page')) {
+ // Fetch the fields from the page display, if the fields are not yet
+ // overridden, get the fields from the default display.
+ $fields = $view->get('display.page.display_options.fields');
+ if (!$fields) {
+ $fields = $view->get('display.default.display_options.fields');
+ // Override the fields for the page display.
+ $view->set('display.page.display_options.defaults.fields', FALSE);
+ }
+
+ // Check if the name field already exists and add if it doesn't.
+ if (!isset($fields['name'])) {
+ $fields['name'] = [
+ 'id' => 'name',
+ 'table' => 'media_field_data',
+ 'field' => 'name',
+ 'relationship' => 'none',
+ 'group_type' => 'group',
+ 'admin_label' => '',
+ 'label' => '',
+ 'exclude' => TRUE,
+ 'alter' => [
+ 'alter_text' => FALSE,
+ 'text' => '',
+ 'make_link' => FALSE,
+ 'path' => '',
+ 'absolute' => FALSE,
+ 'external' => FALSE,
+ 'replace_spaces' => FALSE,
+ 'path_case' => 'none',
+ 'trim_whitespace' => FALSE,
+ 'alt' => '',
+ 'rel' => '',
+ 'link_class' => '',
+ 'prefix' => '',
+ 'suffix' => '',
+ 'target' => '',
+ 'nl2br' => FALSE,
+ 'max_length' => 0,
+ 'word_boundary' => TRUE,
+ 'ellipsis' => TRUE,
+ 'more_link' => FALSE,
+ 'more_link_text' => '',
+ 'more_link_path' => '',
+ 'strip_tags' => FALSE,
+ 'trim' => FALSE,
+ 'preserve_tags' => '',
+ 'html' => FALSE,
+ ],
+ 'element_type' => '',
+ 'element_class' => '',
+ 'element_label_type' => '',
+ 'element_label_class' => '',
+ 'element_label_colon' => FALSE,
+ 'element_wrapper_type' => '',
+ 'element_wrapper_class' => '',
+ 'element_default_classes' => TRUE,
+ 'empty' => '',
+ 'hide_empty' => FALSE,
+ 'empty_zero' => FALSE,
+ 'hide_alter_empty' => TRUE,
+ 'click_sort_column' => 'value',
+ 'type' => 'string',
+ 'settings' => [
+ 'link_to_entity' => FALSE,
+ ],
+ 'group_column' => 'value',
+ 'group_columns' => [],
+ 'group_rows' => TRUE,
+ 'delta_limit' => 0,
+ 'delta_offset' => 0,
+ 'delta_reversed' => FALSE,
+ 'delta_first_last' => FALSE,
+ 'multi_type' => 'separator',
+ 'separator' => ', ',
+ 'field_api_classes' => FALSE,
+ 'entity_type' => 'media',
+ 'entity_field' => 'name',
+ 'plugin_id' => 'field',
+ ];
+ }
+
+ // Check if the edit link field already exists and add if it doesn't.
+ if (!isset($fields['edit_media'])) {
+ $fields['edit_media'] = [
+ 'id' => 'edit_media',
+ 'table' => 'media',
+ 'field' => 'edit_media',
+ 'relationship' => 'none',
+ 'group_type' => 'group',
+ 'admin_label' => '',
+ 'label' => '',
+ 'exclude' => FALSE,
+ 'alter' => [
+ 'alter_text' => TRUE,
+ 'text' => 'Edit {{ name }}',
+ 'make_link' => TRUE,
+ 'path' => '',
+ 'absolute' => FALSE,
+ 'external' => FALSE,
+ 'replace_spaces' => FALSE,
+ 'path_case' => 'none',
+ 'trim_whitespace' => FALSE,
+ 'alt' => 'Edit {{ name }}',
+ 'rel' => '',
+ 'link_class' => 'media-library-item__edit',
+ 'prefix' => '',
+ 'suffix' => '',
+ 'target' => '',
+ 'nl2br' => FALSE,
+ 'max_length' => 0,
+ 'word_boundary' => TRUE,
+ 'ellipsis' => TRUE,
+ 'more_link' => FALSE,
+ 'more_link_text' => '',
+ 'more_link_path' => '',
+ 'strip_tags' => FALSE,
+ 'trim' => FALSE,
+ 'preserve_tags' => '',
+ 'html' => FALSE,
+ ],
+ 'element_type' => '',
+ 'element_class' => '',
+ 'element_label_type' => '',
+ 'element_label_class' => '',
+ 'element_label_colon' => FALSE,
+ 'element_wrapper_type' => '0',
+ 'element_wrapper_class' => '',
+ 'element_default_classes' => FALSE,
+ 'empty' => '',
+ 'hide_empty' => FALSE,
+ 'empty_zero' => FALSE,
+ 'hide_alter_empty' => TRUE,
+ 'text' => 'Edit',
+ 'output_url_as_text' => FALSE,
+ 'absolute' => FALSE,
+ 'entity_type' => 'media',
+ 'plugin_id' => 'entity_link_edit',
+ ];
+ }
+
+ // Check if the delete link field already exists and add if it doesn't.
+ if (!isset($fields['delete_media'])) {
+ $fields['delete_media'] = [
+ 'id' => 'delete_media',
+ 'table' => 'media',
+ 'field' => 'delete_media',
+ 'relationship' => 'none',
+ 'group_type' => 'group',
+ 'admin_label' => '',
+ 'label' => '',
+ 'exclude' => FALSE,
+ 'alter' => [
+ 'alter_text' => TRUE,
+ 'text' => 'Delete {{ name }}',
+ 'make_link' => TRUE,
+ 'path' => '',
+ 'absolute' => FALSE,
+ 'external' => FALSE,
+ 'replace_spaces' => FALSE,
+ 'path_case' => 'none',
+ 'trim_whitespace' => FALSE,
+ 'alt' => 'Delete {{ name }}',
+ 'rel' => '',
+ 'link_class' => 'media-library-item__remove',
+ 'prefix' => '',
+ 'suffix' => '',
+ 'target' => '',
+ 'nl2br' => FALSE,
+ 'max_length' => 0,
+ 'word_boundary' => TRUE,
+ 'ellipsis' => TRUE,
+ 'more_link' => FALSE,
+ 'more_link_text' => '',
+ 'more_link_path' => '',
+ 'strip_tags' => FALSE,
+ 'trim' => FALSE,
+ 'preserve_tags' => '',
+ 'html' => FALSE,
+ ],
+ 'element_type' => '',
+ 'element_class' => '',
+ 'element_label_type' => '',
+ 'element_label_class' => '',
+ 'element_label_colon' => FALSE,
+ 'element_wrapper_type' => '0',
+ 'element_wrapper_class' => '',
+ 'element_default_classes' => FALSE,
+ 'empty' => '',
+ 'hide_empty' => FALSE,
+ 'empty_zero' => FALSE,
+ 'hide_alter_empty' => TRUE,
+ 'text' => 'Delete',
+ 'output_url_as_text' => FALSE,
+ 'absolute' => FALSE,
+ 'entity_type' => 'media',
+ 'plugin_id' => 'entity_link_delete',
+ ];
+ }
+
+ // Move the rendered entity field to the last position for accessibility.
+ $rendered_entity = $fields['rendered_entity'];
+ unset($fields['rendered_entity']);
+ $fields['rendered_entity'] = $rendered_entity;
+
+ $view->set('display.page.display_options.fields', $fields)
+ ->save(TRUE);
+ }
+}
diff --git a/core/modules/media_library/templates/media--media-library.html.twig b/core/modules/media_library/templates/media--media-library.html.twig
index a55024a22d2d..9e5e0dfc50a2 100644
--- a/core/modules/media_library/templates/media--media-library.html.twig
+++ b/core/modules/media_library/templates/media--media-library.html.twig
@@ -43,7 +43,7 @@
{% endif %}
{% endif %}
diff --git a/core/modules/media_library/tests/fixtures/update/drupal-8.7.2-media_library_installed.php b/core/modules/media_library/tests/fixtures/update/drupal-8.7.2-media_library_installed.php
new file mode 100644
index 000000000000..d8f4b14acb78
--- /dev/null
+++ b/core/modules/media_library/tests/fixtures/update/drupal-8.7.2-media_library_installed.php
@@ -0,0 +1,109 @@
+merge('key_value')
+ ->fields([
+ 'value' => 'i:8000;',
+ 'name' => 'media_library',
+ 'collection' => 'system.schema',
+ ])
+ ->condition('collection', 'system.schema')
+ ->condition('name', 'media_library')
+ ->execute();
+
+// Update core.extension.
+$extensions = $connection->select('config')
+ ->fields('config', ['data'])
+ ->condition('collection', '')
+ ->condition('name', 'core.extension')
+ ->execute()
+ ->fetchField();
+$extensions = unserialize($extensions);
+$extensions['module']['media_library'] = 0;
+$connection->update('config')
+ ->fields([
+ 'data' => serialize($extensions),
+ 'collection' => '',
+ 'name' => 'core.extension',
+ ])
+ ->condition('collection', '')
+ ->condition('name', 'core.extension')
+ ->execute();
+
+// Insert media library config objects.
+$connection->insert('config')
+->fields(array(
+ 'collection',
+ 'name',
+ 'data',
+))
+->values(array(
+ 'collection' => '',
+ 'name' => 'core.entity_form_display.media.file.media_library',
+ 'data' => 'a:11:{s:4:"uuid";s:36:"86ab9619-c970-4416-971d-e5c8614b3368";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:1:{s:6:"config";a:3:{i:0;s:41:"core.entity_form_mode.media.media_library";i:1;s:39:"field.field.media.file.field_media_file";i:2;s:15:"media.type.file";}}s:5:"_core";a:1:{s:19:"default_config_hash";s:43:"RFmywOcuem167havmD4VLgBTO1Swq9hyA-_f5aYTi8c";}s:2:"id";s:24:"media.file.media_library";s:16:"targetEntityType";s:5:"media";s:6:"bundle";s:4:"file";s:4:"mode";s:13:"media_library";s:7:"content";a:1:{s:4:"name";a:5:{s:4:"type";s:16:"string_textfield";s:6:"weight";i:0;s:6:"region";s:7:"content";s:8:"settings";a:2:{s:4:"size";i:60;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}}s:6:"hidden";a:5:{s:7:"created";b:1;s:16:"field_media_file";b:1;s:4:"path";b:1;s:6:"status";b:1;s:3:"uid";b:1;}}',
+))
+->values(array(
+ 'collection' => '',
+ 'name' => 'core.entity_form_display.media.image.media_library',
+ 'data' => 'a:11:{s:4:"uuid";s:36:"2bbea060-3cd8-4881-a3aa-c898d6619b16";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:2:{s:6:"config";a:4:{i:0;s:41:"core.entity_form_mode.media.media_library";i:1;s:41:"field.field.media.image.field_media_image";i:2;s:21:"image.style.thumbnail";i:3;s:16:"media.type.image";}s:6:"module";a:1:{i:0;s:5:"image";}}s:5:"_core";a:1:{s:19:"default_config_hash";s:43:"PlyfyVZfALLkP7nbxLpaVKIDUWRioZghWpFDv0_rJ68";}s:2:"id";s:25:"media.image.media_library";s:16:"targetEntityType";s:5:"media";s:6:"bundle";s:5:"image";s:4:"mode";s:13:"media_library";s:7:"content";a:2:{s:17:"field_media_image";a:5:{s:4:"type";s:11:"image_image";s:6:"weight";i:1;s:6:"region";s:7:"content";s:8:"settings";a:2:{s:18:"progress_indicator";s:8:"throbber";s:19:"preview_image_style";s:9:"thumbnail";}s:20:"third_party_settings";a:0:{}}s:4:"name";a:5:{s:4:"type";s:16:"string_textfield";s:6:"weight";i:0;s:6:"region";s:7:"content";s:8:"settings";a:2:{s:4:"size";i:60;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}}s:6:"hidden";a:4:{s:7:"created";b:1;s:4:"path";b:1;s:6:"status";b:1;s:3:"uid";b:1;}}',
+))
+->values(array(
+ 'collection' => '',
+ 'name' => 'core.entity_view_display.media.file.media_library',
+ 'data' => 'a:11:{s:4:"uuid";s:36:"67e6d857-8ecb-49f5-95e1-6b1c4306c31f";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:2:{s:6:"config";a:4:{i:0;s:41:"core.entity_view_mode.media.media_library";i:1;s:39:"field.field.media.file.field_media_file";i:2;s:21:"image.style.thumbnail";i:3;s:15:"media.type.file";}s:6:"module";a:1:{i:0;s:5:"image";}}s:5:"_core";a:1:{s:19:"default_config_hash";s:43:"vhAK2lCOWK2paUpJawj7yiSLFO9wwsx6WE8_oDmvbwU";}s:2:"id";s:24:"media.file.media_library";s:16:"targetEntityType";s:5:"media";s:6:"bundle";s:4:"file";s:4:"mode";s:13:"media_library";s:7:"content";a:1:{s:9:"thumbnail";a:6:{s:4:"type";s:5:"image";s:6:"weight";i:0;s:6:"region";s:7:"content";s:5:"label";s:6:"hidden";s:8:"settings";a:2:{s:11:"image_style";s:9:"thumbnail";s:10:"image_link";s:0:"";}s:20:"third_party_settings";a:0:{}}}s:6:"hidden";a:4:{s:7:"created";b:1;s:16:"field_media_file";b:1;s:4:"name";b:1;s:3:"uid";b:1;}}',
+))
+->values(array(
+ 'collection' => '',
+ 'name' => 'core.entity_view_display.media.image.media_library',
+ 'data' => 'a:11:{s:4:"uuid";s:36:"277ca98b-2ada-4251-ad69-aa73e72d60fe";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:2:{s:6:"config";a:4:{i:0;s:41:"core.entity_view_mode.media.media_library";i:1;s:41:"field.field.media.image.field_media_image";i:2;s:18:"image.style.medium";i:3;s:16:"media.type.image";}s:6:"module";a:1:{i:0;s:5:"image";}}s:5:"_core";a:1:{s:19:"default_config_hash";s:43:"PaGXvzRcL9eII--JV4eCVfObjrNo0l-u1dB_WJtB9ig";}s:2:"id";s:25:"media.image.media_library";s:16:"targetEntityType";s:5:"media";s:6:"bundle";s:5:"image";s:4:"mode";s:13:"media_library";s:7:"content";a:1:{s:9:"thumbnail";a:6:{s:4:"type";s:5:"image";s:6:"weight";i:0;s:6:"region";s:7:"content";s:5:"label";s:6:"hidden";s:8:"settings";a:2:{s:11:"image_style";s:6:"medium";s:10:"image_link";s:0:"";}s:20:"third_party_settings";a:0:{}}}s:6:"hidden";a:4:{s:7:"created";b:1;s:17:"field_media_image";b:1;s:4:"name";b:1;s:3:"uid";b:1;}}',
+))
+->values(array(
+ 'collection' => '',
+ 'name' => 'core.entity_view_mode.media.media_library',
+ 'data' => 'a:9:{s:4:"uuid";s:36:"20b2f1f7-a864-4d41-a15f-32f66789f73d";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:2:{s:8:"enforced";a:1:{s:6:"module";a:1:{i:0;s:13:"media_library";}}s:6:"module";a:1:{i:0;s:5:"media";}}s:5:"_core";a:1:{s:19:"default_config_hash";s:43:"pkq0uj-IoqEQRBOP_ddUDV0ZJ-dKQ_fLcppsEDF2UO8";}s:2:"id";s:19:"media.media_library";s:5:"label";s:13:"Media library";s:16:"targetEntityType";s:5:"media";s:5:"cache";b:1;}',
+))
+->values(array(
+ 'collection' => '',
+ 'name' => 'views.view.media_library',
+ 'data' => 'a:14:{s:4:"uuid";s:36:"e42c9697-889f-41f8-a752-4d91aa8997a7";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:3:{s:6:"config";a:2:{i:0;s:41:"core.entity_view_mode.media.media_library";i:1;s:25:"image.style.media_library";}s:8:"enforced";a:1:{s:6:"module";a:1:{i:0;s:13:"media_library";}}s:6:"module";a:4:{i:0;s:5:"image";i:1;s:5:"media";i:2;s:13:"media_library";i:3;s:4:"user";}}s:5:"_core";a:1:{s:19:"default_config_hash";s:43:"WM0EWBXTR1beBFa860NA1kUdffL9bM1548gUS9DS5fg";}s:2:"id";s:13:"media_library";s:5:"label";s:13:"Media library";s:6:"module";s:5:"views";s:11:"description";s:0:"";s:3:"tag";s:0:"";s:10:"base_table";s:16:"media_field_data";s:10:"base_field";s:3:"mid";s:4:"core";s:3:"8.x";s:7:"display";a:4:{s:7:"default";a:6:{s:14:"display_plugin";s:7:"default";s:2:"id";s:7:"default";s:13:"display_title";s:6:"Master";s:8:"position";i:0;s:15:"display_options";a:18:{s:6:"access";a:2:{s:4:"type";s:4:"perm";s:7:"options";a:1:{s:4:"perm";s:21:"access media overview";}}s:5:"cache";a:2:{s:4:"type";s:3:"tag";s:7:"options";a:0:{}}s:5:"query";a:2:{s:4:"type";s:11:"views_query";s:7:"options";a:5:{s:19:"disable_sql_rewrite";b:0;s:8:"distinct";b:0;s:7:"replica";b:0;s:13:"query_comment";s:0:"";s:10:"query_tags";a:0:{}}}s:12:"exposed_form";a:2:{s:4:"type";s:5:"basic";s:7:"options";a:7:{s:13:"submit_button";s:13:"Apply filters";s:12:"reset_button";b:0;s:18:"reset_button_label";s:5:"Reset";s:19:"exposed_sorts_label";s:7:"Sort by";s:17:"expose_sort_order";b:0;s:14:"sort_asc_label";s:3:"Asc";s:15:"sort_desc_label";s:4:"Desc";}}s:5:"pager";a:2:{s:4:"type";s:4:"mini";s:7:"options";a:6:{s:14:"items_per_page";i:24;s:6:"offset";i:0;s:2:"id";i:0;s:11:"total_pages";N;s:6:"expose";a:7:{s:14:"items_per_page";b:0;s:20:"items_per_page_label";s:14:"Items per page";s:22:"items_per_page_options";s:13:"6, 12, 24, 48";s:26:"items_per_page_options_all";b:0;s:32:"items_per_page_options_all_label";s:7:"- All -";s:6:"offset";b:0;s:12:"offset_label";s:6:"Offset";}s:4:"tags";a:2:{s:8:"previous";s:6:"‹‹";s:4:"next";s:6:"››";}}}s:5:"style";a:2:{s:4:"type";s:7:"default";s:7:"options";a:3:{s:8:"grouping";a:0:{}s:9:"row_class";s:84:"media-library-item media-library-item--grid js-media-library-item js-click-to-select";s:17:"default_row_class";b:1;}}s:3:"row";a:2:{s:4:"type";s:6:"fields";s:7:"options";a:4:{s:22:"default_field_elements";b:1;s:6:"inline";a:0:{}s:9:"separator";s:0:"";s:10:"hide_empty";b:0;}}s:6:"fields";a:2:{s:15:"media_bulk_form";a:26:{s:2:"id";s:15:"media_bulk_form";s:5:"table";s:5:"media";s:5:"field";s:15:"media_bulk_form";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"label";s:0:"";s:7:"exclude";b:0;s:5:"alter";a:26:{s:10:"alter_text";b:0;s:4:"text";s:0:"";s:9:"make_link";b:0;s:4:"path";s:0:"";s:8:"absolute";b:0;s:8:"external";b:0;s:14:"replace_spaces";b:0;s:9:"path_case";s:4:"none";s:15:"trim_whitespace";b:0;s:3:"alt";s:0:"";s:3:"rel";s:0:"";s:10:"link_class";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:6:"target";s:0:"";s:5:"nl2br";b:0;s:10:"max_length";i:0;s:13:"word_boundary";b:1;s:8:"ellipsis";b:1;s:9:"more_link";b:0;s:14:"more_link_text";s:0:"";s:14:"more_link_path";s:0:"";s:10:"strip_tags";b:0;s:4:"trim";b:0;s:13:"preserve_tags";s:0:"";s:4:"html";b:0;}s:12:"element_type";s:0:"";s:13:"element_class";s:27:"js-click-to-select-checkbox";s:18:"element_label_type";s:0:"";s:19:"element_label_class";s:0:"";s:19:"element_label_colon";b:0;s:20:"element_wrapper_type";s:0:"";s:21:"element_wrapper_class";s:0:"";s:23:"element_default_classes";b:1;s:5:"empty";s:0:"";s:10:"hide_empty";b:0;s:10:"empty_zero";b:0;s:16:"hide_alter_empty";b:1;s:12:"action_title";s:6:"Action";s:15:"include_exclude";s:7:"exclude";s:16:"selected_actions";a:0:{}s:11:"entity_type";s:5:"media";s:9:"plugin_id";s:9:"bulk_form";}s:15:"rendered_entity";a:24:{s:2:"id";s:15:"rendered_entity";s:5:"table";s:5:"media";s:5:"field";s:15:"rendered_entity";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"label";s:0:"";s:7:"exclude";b:0;s:5:"alter";a:26:{s:10:"alter_text";b:0;s:4:"text";s:0:"";s:9:"make_link";b:0;s:4:"path";s:0:"";s:8:"absolute";b:0;s:8:"external";b:0;s:14:"replace_spaces";b:0;s:9:"path_case";s:4:"none";s:15:"trim_whitespace";b:0;s:3:"alt";s:0:"";s:3:"rel";s:0:"";s:10:"link_class";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:6:"target";s:0:"";s:5:"nl2br";b:0;s:10:"max_length";i:0;s:13:"word_boundary";b:1;s:8:"ellipsis";b:1;s:9:"more_link";b:0;s:14:"more_link_text";s:0:"";s:14:"more_link_path";s:0:"";s:10:"strip_tags";b:0;s:4:"trim";b:0;s:13:"preserve_tags";s:0:"";s:4:"html";b:0;}s:12:"element_type";s:0:"";s:13:"element_class";s:27:"media-library-item__content";s:18:"element_label_type";s:0:"";s:19:"element_label_class";s:0:"";s:19:"element_label_colon";b:0;s:20:"element_wrapper_type";s:0:"";s:21:"element_wrapper_class";s:0:"";s:23:"element_default_classes";b:1;s:5:"empty";s:0:"";s:10:"hide_empty";b:0;s:10:"empty_zero";b:0;s:16:"hide_alter_empty";b:1;s:9:"view_mode";s:13:"media_library";s:11:"entity_type";s:5:"media";s:9:"plugin_id";s:15:"rendered_entity";}}s:7:"filters";a:3:{s:6:"status";a:16:{s:2:"id";s:6:"status";s:5:"table";s:16:"media_field_data";s:5:"field";s:6:"status";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:1:"=";s:5:"value";s:1:"1";s:5:"group";i:1;s:7:"exposed";b:1;s:6:"expose";a:12:{s:11:"operator_id";s:0:"";s:5:"label";s:17:"Publishing status";s:11:"description";N;s:12:"use_operator";b:0;s:8:"operator";s:9:"status_op";s:10:"identifier";s:6:"status";s:8:"required";b:1;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:1:{s:13:"authenticated";s:13:"authenticated";}s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:1;s:10:"group_info";a:10:{s:5:"label";s:9:"Published";s:11:"description";s:0:"";s:10:"identifier";s:6:"status";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:2:{i:1;a:3:{s:5:"title";s:9:"Published";s:8:"operator";s:1:"=";s:5:"value";s:1:"1";}i:2;a:3:{s:5:"title";s:11:"Unpublished";s:8:"operator";s:1:"=";s:5:"value";s:1:"0";}}}s:9:"plugin_id";s:7:"boolean";s:11:"entity_type";s:5:"media";s:12:"entity_field";s:6:"status";}s:4:"name";a:16:{s:2:"id";s:4:"name";s:5:"table";s:16:"media_field_data";s:5:"field";s:4:"name";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:8:"contains";s:5:"value";s:0:"";s:5:"group";i:1;s:7:"exposed";b:1;s:6:"expose";a:12:{s:11:"operator_id";s:7:"name_op";s:5:"label";s:4:"Name";s:11:"description";s:0:"";s:12:"use_operator";b:0;s:8:"operator";s:7:"name_op";s:10:"identifier";s:4:"name";s:8:"required";b:0;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:3:{s:13:"authenticated";s:13:"authenticated";s:9:"anonymous";s:1:"0";s:13:"administrator";s:1:"0";}s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:0;s:10:"group_info";a:10:{s:5:"label";s:0:"";s:11:"description";s:0:"";s:10:"identifier";s:0:"";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:0:{}}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:4:"name";s:9:"plugin_id";s:6:"string";}s:6:"bundle";a:16:{s:2:"id";s:6:"bundle";s:5:"table";s:16:"media_field_data";s:5:"field";s:6:"bundle";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:2:"in";s:5:"value";a:0:{}s:5:"group";i:1;s:7:"exposed";b:1;s:6:"expose";a:13:{s:11:"operator_id";s:9:"bundle_op";s:5:"label";s:10:"Media type";s:11:"description";s:0:"";s:12:"use_operator";b:0;s:8:"operator";s:9:"bundle_op";s:10:"identifier";s:4:"type";s:8:"required";b:0;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:3:{s:13:"authenticated";s:13:"authenticated";s:9:"anonymous";s:1:"0";s:13:"administrator";s:1:"0";}s:6:"reduce";b:0;s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:0;s:10:"group_info";a:10:{s:5:"label";s:10:"Media type";s:11:"description";N;s:10:"identifier";s:6:"bundle";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:3:{i:1;a:0:{}i:2;a:0:{}i:3;a:0:{}}}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:6:"bundle";s:9:"plugin_id";s:6:"bundle";}}s:5:"sorts";a:3:{s:7:"created";a:13:{s:2:"id";s:7:"created";s:5:"table";s:16:"media_field_data";s:5:"field";s:7:"created";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"order";s:4:"DESC";s:7:"exposed";b:1;s:6:"expose";a:1:{s:5:"label";s:12:"Newest first";}s:11:"granularity";s:6:"second";s:11:"entity_type";s:5:"media";s:12:"entity_field";s:7:"created";s:9:"plugin_id";s:4:"date";}s:4:"name";a:12:{s:2:"id";s:4:"name";s:5:"table";s:16:"media_field_data";s:5:"field";s:4:"name";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"order";s:3:"ASC";s:7:"exposed";b:1;s:6:"expose";a:1:{s:5:"label";s:10:"Name (A-Z)";}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:4:"name";s:9:"plugin_id";s:8:"standard";}s:6:"name_1";a:12:{s:2:"id";s:6:"name_1";s:5:"table";s:16:"media_field_data";s:5:"field";s:4:"name";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"order";s:4:"DESC";s:7:"exposed";b:1;s:6:"expose";a:1:{s:5:"label";s:10:"Name (Z-A)";}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:4:"name";s:9:"plugin_id";s:8:"standard";}}s:5:"title";s:5:"Media";s:6:"header";a:0:{}s:6:"footer";a:0:{}s:5:"empty";a:1:{s:16:"area_text_custom";a:10:{s:2:"id";s:16:"area_text_custom";s:5:"table";s:5:"views";s:5:"field";s:16:"area_text_custom";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"empty";b:1;s:8:"tokenize";b:0;s:7:"content";s:19:"No media available.";s:9:"plugin_id";s:11:"text_custom";}}s:13:"relationships";a:0:{}s:17:"display_extenders";a:0:{}s:8:"use_ajax";b:1;s:9:"css_class";s:40:"media-library-view js-media-library-view";}s:14:"cache_metadata";a:3:{s:7:"max-age";i:0;s:8:"contexts";a:5:{i:0;s:28:"languages:language_interface";i:1;s:3:"url";i:2;s:14:"url.query_args";i:3;s:22:"url.query_args:sort_by";i:4;s:16:"user.permissions";}s:4:"tags";a:0:{}}}s:4:"page";a:6:{s:14:"display_plugin";s:4:"page";s:2:"id";s:4:"page";s:13:"display_title";s:4:"Page";s:8:"position";i:1;s:15:"display_options";a:3:{s:17:"display_extenders";a:0:{}s:4:"path";s:19:"admin/content/media";s:4:"menu";a:8:{s:4:"type";s:3:"tab";s:5:"title";s:5:"Media";s:11:"description";s:49:"Allows users to browse and administer media items";s:8:"expanded";b:0;s:6:"parent";s:20:"system.admin_content";s:6:"weight";i:5;s:7:"context";s:1:"0";s:9:"menu_name";s:5:"admin";}}s:14:"cache_metadata";a:3:{s:7:"max-age";i:0;s:8:"contexts";a:5:{i:0;s:28:"languages:language_interface";i:1;s:3:"url";i:2;s:14:"url.query_args";i:3;s:22:"url.query_args:sort_by";i:4;s:16:"user.permissions";}s:4:"tags";a:0:{}}}s:6:"widget";a:6:{s:14:"display_plugin";s:4:"page";s:2:"id";s:6:"widget";s:13:"display_title";s:6:"Widget";s:8:"position";i:2;s:15:"display_options";a:11:{s:17:"display_extenders";a:0:{}s:4:"path";s:26:"admin/content/media-widget";s:6:"fields";a:2:{s:15:"rendered_entity";a:24:{s:2:"id";s:15:"rendered_entity";s:5:"table";s:5:"media";s:5:"field";s:15:"rendered_entity";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"label";s:0:"";s:7:"exclude";b:0;s:5:"alter";a:26:{s:10:"alter_text";b:0;s:4:"text";s:0:"";s:9:"make_link";b:0;s:4:"path";s:0:"";s:8:"absolute";b:0;s:8:"external";b:0;s:14:"replace_spaces";b:0;s:9:"path_case";s:4:"none";s:15:"trim_whitespace";b:0;s:3:"alt";s:0:"";s:3:"rel";s:0:"";s:10:"link_class";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:6:"target";s:0:"";s:5:"nl2br";b:0;s:10:"max_length";i:0;s:13:"word_boundary";b:1;s:8:"ellipsis";b:1;s:9:"more_link";b:0;s:14:"more_link_text";s:0:"";s:14:"more_link_path";s:0:"";s:10:"strip_tags";b:0;s:4:"trim";b:0;s:13:"preserve_tags";s:0:"";s:4:"html";b:0;}s:12:"element_type";s:0:"";s:13:"element_class";s:27:"media-library-item__content";s:18:"element_label_type";s:0:"";s:19:"element_label_class";s:0:"";s:19:"element_label_colon";b:0;s:20:"element_wrapper_type";s:0:"";s:21:"element_wrapper_class";s:0:"";s:23:"element_default_classes";b:1;s:5:"empty";s:0:"";s:10:"hide_empty";b:0;s:10:"empty_zero";b:0;s:16:"hide_alter_empty";b:1;s:9:"view_mode";s:13:"media_library";s:11:"entity_type";s:5:"media";s:9:"plugin_id";s:15:"rendered_entity";}s:25:"media_library_select_form";a:23:{s:2:"id";s:25:"media_library_select_form";s:5:"table";s:5:"media";s:5:"field";s:25:"media_library_select_form";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:5:"label";s:0:"";s:7:"exclude";b:0;s:5:"alter";a:26:{s:10:"alter_text";b:0;s:4:"text";s:0:"";s:9:"make_link";b:0;s:4:"path";s:0:"";s:8:"absolute";b:0;s:8:"external";b:0;s:14:"replace_spaces";b:0;s:9:"path_case";s:4:"none";s:15:"trim_whitespace";b:0;s:3:"alt";s:0:"";s:3:"rel";s:0:"";s:10:"link_class";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:6:"target";s:0:"";s:5:"nl2br";b:0;s:10:"max_length";i:0;s:13:"word_boundary";b:1;s:8:"ellipsis";b:1;s:9:"more_link";b:0;s:14:"more_link_text";s:0:"";s:14:"more_link_path";s:0:"";s:10:"strip_tags";b:0;s:4:"trim";b:0;s:13:"preserve_tags";s:0:"";s:4:"html";b:0;}s:12:"element_type";s:0:"";s:13:"element_class";s:0:"";s:18:"element_label_type";s:0:"";s:19:"element_label_class";s:0:"";s:19:"element_label_colon";b:0;s:20:"element_wrapper_type";s:0:"";s:21:"element_wrapper_class";s:27:"js-click-to-select-checkbox";s:23:"element_default_classes";b:1;s:5:"empty";s:0:"";s:10:"hide_empty";b:0;s:10:"empty_zero";b:0;s:16:"hide_alter_empty";b:1;s:11:"entity_type";s:5:"media";s:9:"plugin_id";s:25:"media_library_select_form";}}s:8:"defaults";a:7:{s:6:"fields";b:0;s:6:"access";b:0;s:7:"filters";b:0;s:13:"filter_groups";b:0;s:9:"arguments";b:0;s:6:"header";b:0;s:9:"css_class";b:0;}s:19:"display_description";s:0:"";s:6:"access";a:2:{s:4:"type";s:4:"perm";s:7:"options";a:1:{s:4:"perm";s:10:"view media";}}s:7:"filters";a:2:{s:6:"status";a:16:{s:2:"id";s:6:"status";s:5:"table";s:16:"media_field_data";s:5:"field";s:6:"status";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:1:"=";s:5:"value";s:1:"1";s:5:"group";i:1;s:7:"exposed";b:0;s:6:"expose";a:12:{s:11:"operator_id";s:0:"";s:5:"label";s:0:"";s:11:"description";s:0:"";s:12:"use_operator";b:0;s:8:"operator";s:0:"";s:10:"identifier";s:0:"";s:8:"required";b:0;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:1:{s:13:"authenticated";s:13:"authenticated";}s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:0;s:10:"group_info";a:10:{s:5:"label";s:0:"";s:11:"description";s:0:"";s:10:"identifier";s:0:"";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:0:{}}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:6:"status";s:9:"plugin_id";s:7:"boolean";}s:4:"name";a:16:{s:2:"id";s:4:"name";s:5:"table";s:16:"media_field_data";s:5:"field";s:4:"name";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:8:"contains";s:5:"value";s:0:"";s:5:"group";i:1;s:7:"exposed";b:1;s:6:"expose";a:12:{s:11:"operator_id";s:7:"name_op";s:5:"label";s:4:"Name";s:11:"description";s:0:"";s:12:"use_operator";b:0;s:8:"operator";s:7:"name_op";s:10:"identifier";s:4:"name";s:8:"required";b:0;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:3:{s:13:"authenticated";s:13:"authenticated";s:9:"anonymous";s:1:"0";s:13:"administrator";s:1:"0";}s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:0;s:10:"group_info";a:10:{s:5:"label";s:0:"";s:11:"description";s:0:"";s:10:"identifier";s:0:"";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:0:{}}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:4:"name";s:9:"plugin_id";s:6:"string";}}s:13:"filter_groups";a:2:{s:8:"operator";s:3:"AND";s:6:"groups";a:1:{i:1;s:3:"AND";}}s:9:"arguments";a:1:{s:6:"bundle";a:27:{s:2:"id";s:6:"bundle";s:5:"table";s:16:"media_field_data";s:5:"field";s:6:"bundle";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:14:"default_action";s:6:"ignore";s:9:"exception";a:3:{s:5:"value";s:3:"all";s:12:"title_enable";b:0;s:5:"title";s:3:"All";}s:12:"title_enable";b:0;s:5:"title";s:0:"";s:21:"default_argument_type";s:5:"fixed";s:24:"default_argument_options";a:1:{s:8:"argument";s:0:"";}s:25:"default_argument_skip_url";b:0;s:15:"summary_options";a:4:{s:9:"base_path";s:0:"";s:5:"count";b:1;s:14:"items_per_page";i:24;s:8:"override";b:0;}s:7:"summary";a:3:{s:10:"sort_order";s:3:"asc";s:17:"number_of_records";i:0;s:6:"format";s:15:"default_summary";}s:18:"specify_validation";b:0;s:8:"validate";a:2:{s:4:"type";s:4:"none";s:4:"fail";s:9:"not found";}s:16:"validate_options";a:0:{}s:8:"glossary";b:0;s:5:"limit";i:0;s:4:"case";s:4:"none";s:9:"path_case";s:4:"none";s:14:"transform_dash";b:0;s:12:"break_phrase";b:0;s:11:"entity_type";s:5:"media";s:12:"entity_field";s:6:"bundle";s:9:"plugin_id";s:6:"string";}}s:6:"header";a:2:{s:17:"display_link_grid";a:7:{s:2:"id";s:17:"display_link_grid";s:5:"table";s:5:"views";s:5:"field";s:12:"display_link";s:10:"display_id";s:6:"widget";s:5:"label";s:4:"Grid";s:9:"plugin_id";s:12:"display_link";s:5:"empty";b:1;}s:18:"display_link_table";a:7:{s:2:"id";s:18:"display_link_table";s:5:"table";s:5:"views";s:5:"field";s:12:"display_link";s:10:"display_id";s:12:"widget_table";s:5:"label";s:5:"Table";s:9:"plugin_id";s:12:"display_link";s:5:"empty";b:1;}}s:9:"css_class";s:67:"media-library-view js-media-library-view media-library-view--widget";}s:14:"cache_metadata";a:3:{s:7:"max-age";i:-1;s:8:"contexts";a:5:{i:0;s:28:"languages:language_interface";i:1;s:3:"url";i:2;s:14:"url.query_args";i:3;s:22:"url.query_args:sort_by";i:4;s:16:"user.permissions";}s:4:"tags";a:0:{}}}s:12:"widget_table";a:6:{s:14:"display_plugin";s:4:"page";s:2:"id";s:12:"widget_table";s:13:"display_title";s:14:"Widget (table)";s:8:"position";i:3;s:15:"display_options";a:12:{s:17:"display_extenders";a:0:{}s:4:"path";s:32:"admin/content/media-widget-table";s:5:"style";a:2:{s:4:"type";s:5:"table";s:7:"options";a:2:{s:9:"row_class";s:85:"media-library-item media-library-item--table js-media-library-item js-click-to-select";s:17:"default_row_class";b:1;}}s:8:"defaults";a:9:{s:5:"style";b:0;s:3:"row";b:0;s:6:"fields";b:0;s:6:"access";b:0;s:7:"filters";b:0;s:13:"filter_groups";b:0;s:9:"arguments";b:0;s:6:"header";b:0;s:9:"css_class";b:0;}s:3:"row";a:1:{s:4:"type";s:6:"fields";}s:6:"fields";a:5:{s:25:"media_library_select_form";a:9:{s:2:"id";s:25:"media_library_select_form";s:5:"label";s:0:"";s:5:"table";s:5:"media";s:5:"field";s:25:"media_library_select_form";s:12:"relationship";s:4:"none";s:11:"entity_type";s:5:"media";s:9:"plugin_id";s:25:"media_library_select_form";s:21:"element_wrapper_class";s:27:"js-click-to-select-checkbox";s:13:"element_class";s:0:"";}s:20:"thumbnail__target_id";a:10:{s:2:"id";s:20:"thumbnail__target_id";s:5:"label";s:9:"Thumbnail";s:5:"table";s:16:"media_field_data";s:5:"field";s:20:"thumbnail__target_id";s:12:"relationship";s:4:"none";s:4:"type";s:5:"image";s:11:"entity_type";s:5:"media";s:12:"entity_field";s:9:"thumbnail";s:9:"plugin_id";s:5:"field";s:8:"settings";a:2:{s:11:"image_style";s:13:"media_library";s:10:"image_link";s:0:"";}}s:4:"name";a:10:{s:2:"id";s:4:"name";s:5:"label";s:4:"Name";s:5:"table";s:16:"media_field_data";s:5:"field";s:4:"name";s:12:"relationship";s:4:"none";s:4:"type";s:6:"string";s:11:"entity_type";s:5:"media";s:12:"entity_field";s:4:"name";s:9:"plugin_id";s:5:"field";s:8:"settings";a:1:{s:14:"link_to_entity";b:0;}}s:3:"uid";a:10:{s:2:"id";s:3:"uid";s:5:"label";s:6:"Author";s:5:"table";s:20:"media_field_revision";s:5:"field";s:3:"uid";s:12:"relationship";s:4:"none";s:4:"type";s:22:"entity_reference_label";s:11:"entity_type";s:5:"media";s:12:"entity_field";s:3:"uid";s:9:"plugin_id";s:5:"field";s:8:"settings";a:1:{s:4:"link";b:1;}}s:7:"changed";a:10:{s:2:"id";s:7:"changed";s:5:"label";s:7:"Updated";s:5:"table";s:16:"media_field_data";s:5:"field";s:7:"changed";s:12:"relationship";s:4:"none";s:4:"type";s:9:"timestamp";s:11:"entity_type";s:5:"media";s:12:"entity_field";s:7:"changed";s:9:"plugin_id";s:5:"field";s:8:"settings";a:3:{s:11:"date_format";s:5:"short";s:18:"custom_date_format";s:0:"";s:8:"timezone";s:0:"";}}}s:6:"access";a:2:{s:4:"type";s:4:"perm";s:7:"options";a:1:{s:4:"perm";s:10:"view media";}}s:7:"filters";a:2:{s:6:"status";a:16:{s:2:"id";s:6:"status";s:5:"table";s:16:"media_field_data";s:5:"field";s:6:"status";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:1:"=";s:5:"value";s:1:"1";s:5:"group";i:1;s:7:"exposed";b:0;s:6:"expose";a:12:{s:11:"operator_id";s:0:"";s:5:"label";s:0:"";s:11:"description";s:0:"";s:12:"use_operator";b:0;s:8:"operator";s:0:"";s:10:"identifier";s:0:"";s:8:"required";b:0;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:1:{s:13:"authenticated";s:13:"authenticated";}s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:0;s:10:"group_info";a:10:{s:5:"label";s:0:"";s:11:"description";s:0:"";s:10:"identifier";s:0:"";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:0:{}}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:6:"status";s:9:"plugin_id";s:7:"boolean";}s:4:"name";a:16:{s:2:"id";s:4:"name";s:5:"table";s:16:"media_field_data";s:5:"field";s:4:"name";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:8:"operator";s:8:"contains";s:5:"value";s:0:"";s:5:"group";i:1;s:7:"exposed";b:1;s:6:"expose";a:12:{s:11:"operator_id";s:7:"name_op";s:5:"label";s:4:"Name";s:11:"description";s:0:"";s:12:"use_operator";b:0;s:8:"operator";s:7:"name_op";s:10:"identifier";s:4:"name";s:8:"required";b:0;s:8:"remember";b:0;s:8:"multiple";b:0;s:14:"remember_roles";a:3:{s:13:"authenticated";s:13:"authenticated";s:9:"anonymous";s:1:"0";s:13:"administrator";s:1:"0";}s:24:"operator_limit_selection";b:0;s:13:"operator_list";a:0:{}}s:10:"is_grouped";b:0;s:10:"group_info";a:10:{s:5:"label";s:0:"";s:11:"description";s:0:"";s:10:"identifier";s:0:"";s:8:"optional";b:1;s:6:"widget";s:6:"select";s:8:"multiple";b:0;s:8:"remember";b:0;s:13:"default_group";s:3:"All";s:22:"default_group_multiple";a:0:{}s:11:"group_items";a:0:{}}s:11:"entity_type";s:5:"media";s:12:"entity_field";s:4:"name";s:9:"plugin_id";s:6:"string";}}s:13:"filter_groups";a:2:{s:8:"operator";s:3:"AND";s:6:"groups";a:1:{i:1;s:3:"AND";}}s:9:"arguments";a:1:{s:6:"bundle";a:27:{s:2:"id";s:6:"bundle";s:5:"table";s:16:"media_field_data";s:5:"field";s:6:"bundle";s:12:"relationship";s:4:"none";s:10:"group_type";s:5:"group";s:11:"admin_label";s:0:"";s:14:"default_action";s:6:"ignore";s:9:"exception";a:3:{s:5:"value";s:3:"all";s:12:"title_enable";b:0;s:5:"title";s:3:"All";}s:12:"title_enable";b:0;s:5:"title";s:0:"";s:21:"default_argument_type";s:5:"fixed";s:24:"default_argument_options";a:1:{s:8:"argument";s:0:"";}s:25:"default_argument_skip_url";b:0;s:15:"summary_options";a:4:{s:9:"base_path";s:0:"";s:5:"count";b:1;s:14:"items_per_page";i:24;s:8:"override";b:0;}s:7:"summary";a:3:{s:10:"sort_order";s:3:"asc";s:17:"number_of_records";i:0;s:6:"format";s:15:"default_summary";}s:18:"specify_validation";b:0;s:8:"validate";a:2:{s:4:"type";s:4:"none";s:4:"fail";s:9:"not found";}s:16:"validate_options";a:0:{}s:8:"glossary";b:0;s:5:"limit";i:0;s:4:"case";s:4:"none";s:9:"path_case";s:4:"none";s:14:"transform_dash";b:0;s:12:"break_phrase";b:0;s:11:"entity_type";s:5:"media";s:12:"entity_field";s:6:"bundle";s:9:"plugin_id";s:6:"string";}}s:6:"header";a:2:{s:17:"display_link_grid";a:7:{s:2:"id";s:17:"display_link_grid";s:5:"table";s:5:"views";s:5:"field";s:12:"display_link";s:10:"display_id";s:6:"widget";s:5:"label";s:4:"Grid";s:9:"plugin_id";s:12:"display_link";s:5:"empty";b:1;}s:18:"display_link_table";a:7:{s:2:"id";s:18:"display_link_table";s:5:"table";s:5:"views";s:5:"field";s:12:"display_link";s:10:"display_id";s:12:"widget_table";s:5:"label";s:5:"Table";s:9:"plugin_id";s:12:"display_link";s:5:"empty";b:1;}}s:9:"css_class";s:67:"media-library-view js-media-library-view media-library-view--widget";}s:14:"cache_metadata";a:3:{s:7:"max-age";i:-1;s:8:"contexts";a:6:{i:0;s:26:"languages:language_content";i:1;s:28:"languages:language_interface";i:2;s:3:"url";i:3;s:14:"url.query_args";i:4;s:22:"url.query_args:sort_by";i:5;s:16:"user.permissions";}s:4:"tags";a:0:{}}}}}',
+))
+->execute();
+
+// Insert media library key_value entries.
+$connection->insert('key_value')
+->fields(array(
+ 'collection',
+ 'name',
+ 'value',
+))
+->values(array(
+ 'collection' => 'config.entity.key_store.entity_view_display',
+ 'name' => 'uuid:67e6d857-8ecb-49f5-95e1-6b1c4306c31f',
+ 'value' => 'a:1:{i:0;s:49:"core.entity_view_display.media.file.media_library";}',
+))
+->values(array(
+ 'collection' => 'config.entity.key_store.entity_view_display',
+ 'name' => 'uuid:277ca98b-2ada-4251-ad69-aa73e72d60fe',
+ 'value' => 'a:1:{i:0;s:50:"core.entity_view_display.media.image.media_library";}',
+))
+->values(array(
+ 'collection' => 'config.entity.key_store.entity_view_mode',
+ 'name' => 'uuid:20b2f1f7-a864-4d41-a15f-32f66789f73d',
+ 'value' => 'a:1:{i:0;s:41:"core.entity_view_mode.media.media_library";}',
+))
+->values(array(
+ 'collection' => 'config.entity.key_store.view',
+ 'name' => 'uuid:3bc9cf0f-cb66-4dbe-8d7e-862cb85e5932',
+ 'value' => 'a:1:{i:0;s:24:"views.view.media_library";}',
+))
+->execute();
diff --git a/core/modules/media_library/tests/src/Functional/Update/MediaLibraryUpdateViewPageDisplayEditDeleteLinkTest.php b/core/modules/media_library/tests/src/Functional/Update/MediaLibraryUpdateViewPageDisplayEditDeleteLinkTest.php
new file mode 100644
index 000000000000..38a30a8b6a5d
--- /dev/null
+++ b/core/modules/media_library/tests/src/Functional/Update/MediaLibraryUpdateViewPageDisplayEditDeleteLinkTest.php
@@ -0,0 +1,52 @@
+databaseDumpFiles = [
+ __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.4.0.bare.standard.php.gz',
+ __DIR__ . '/../../../../../media/tests/fixtures/update/drupal-8.4.0-media_installed.php',
+ __DIR__ . '/../../../fixtures/update/drupal-8.7.2-media_library_installed.php',
+ ];
+ }
+
+ /**
+ * Tests that the media library view config is updated.
+ *
+ * @see media_library_update_8703()
+ */
+ public function testMediaLibraryViewsConfig() {
+ $config = $this->config('views.view.media_library');
+ $this->assertNull($config->get('display.page.display_options.defaults.fields'));
+ $this->assertNull($config->get('display.page.display_options.fields.name'));
+ $this->assertNull($config->get('display.page.display_options.fields.edit_media'));
+ $this->assertNull($config->get('display.page.display_options.fields.delete_media'));
+
+ $this->runUpdates();
+
+ $config = $this->config('views.view.media_library');
+ $this->assertFalse($config->get('display.page.display_options.defaults.fields'));
+ $this->assertSame('field', $config->get('display.page.display_options.fields.name.plugin_id'));
+ $this->assertSame('name', $config->get('display.page.display_options.fields.name.entity_field'));
+ $this->assertSame('entity_link_edit', $config->get('display.page.display_options.fields.edit_media.plugin_id'));
+ $this->assertSame('entity_link_delete', $config->get('display.page.display_options.fields.delete_media.plugin_id'));
+ // Check if the rendered entity is last in the field.
+ $fields = $config->get('display.page.display_options.fields');
+ end($fields);
+ $this->assertSame('rendered_entity', key($fields));
+ }
+
+}
diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php
index cbefde5417d9..d4601eef0f2f 100644
--- a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php
+++ b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php
@@ -78,6 +78,7 @@ class MediaLibraryTest extends WebDriverTestBase {
'edit own basic_page content',
'create basic_page content',
'create media',
+ 'update any media',
'delete any media',
'view media',
'administer node form display',
@@ -106,6 +107,12 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->pageTextContains('Dog');
$assert_session->pageTextContains('Turtle');
+ // Verify that the media name does not contain a link.
+ $assert_session->elementNotExists('css', '.media-library-item__name a');
+ // Verify that there are links to edit and delete media items.
+ $assert_session->elementExists('css', '.media-library-item .media-library-item__edit');
+ $assert_session->elementExists('css', '.media-library-item .media-library-item__remove');
+
// Test that users can filter by type.
$page->selectFieldOption('Media type', 'Type One');
$page->pressButton('Apply filters');
@@ -429,7 +436,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->assertWaitOnAjaxRequest();
$assert_session->pageTextContains('Add or select media');
$this->assertFalse($assert_session->elementExists('css', '.media-library-select-all')->isVisible());
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert that the media type menu is available when more than 1 type is
// configured for the field.
@@ -440,7 +447,16 @@ class MediaLibraryTest extends WebDriverTestBase {
$this->assertFalse($menu->hasLink('Type Two'));
$this->assertTrue($menu->hasLink('Type Three'));
$this->assertFalse($menu->hasLink('Type Four'));
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->assertWaitOnAjaxRequest();
+
+ // Assert that there are no links in the media library view.
+ $assert_session->elementExists('css', '.media-library-open-button[name^="field_unlimited_media"]')->click();
+ $assert_session->assertWaitOnAjaxRequest();
+ $assert_session->elementNotExists('css', '.media-library-item__name a');
+ $assert_session->elementNotExists('css', '.media-library-view .media-library-item__edit');
+ $assert_session->elementNotExists('css', '.media-library-view .media-library-item__remove');
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
$assert_session->assertWaitOnAjaxRequest();
// Assert that the media type menu is available when the target_bundles
@@ -454,7 +470,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$this->assertTrue($menu->hasLink('Type Three'));
$this->assertTrue($menu->hasLink('Type Four'));
$this->assertTrue($menu->hasLink('Type Five'));
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert that the media type menu is not available when only 1 type is
// configured for the field.
@@ -469,7 +485,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->hiddenFieldValueEquals('media-library-modal-selection', '4');
$assert_session->elementTextContains('css', '.media-library-selected-count', '1 of 1 item selected');
$assert_session->elementNotExists('css', '.media-library-menu');
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert the menu links can be sorted through the widget configuration.
$assert_session->elementExists('css', '.media-library-open-button[name^="field_twin_media"]')->click();
@@ -499,7 +515,7 @@ class MediaLibraryTest extends WebDriverTestBase {
return $link->getText();
}, $page->findAll('css', '.media-library-menu a'));
$this->assertSame($link_titles, ['Show Type One media (selected)', 'Show Type Three media', 'Show Type Four media', 'Show Type Two media']);
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert the announcements for media type navigation in the media library.
$assert_session->elementExists('css', '.media-library-open-button[name^="field_unlimited_media"]')->click();
@@ -514,7 +530,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->elementExists('named', ['link', 'Type Three'])->keyPress(32);
$assert_session->assertWaitOnAjaxRequest();
$this->assertNotEmpty($assert_session->waitForText('Showing Type Three media.'));
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert media is only visible on the tab for the related media type.
$assert_session->elementExists('css', '.media-library-open-button[name^="field_unlimited_media"]')->click();
@@ -529,7 +545,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->pageTextNotContains('Dog');
$assert_session->pageTextNotContains('Bear');
$assert_session->pageTextNotContains('Turtle');
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert the exposed name filter of the view.
$assert_session->elementExists('css', '.media-library-open-button[name^="field_unlimited_media"]')->click();
@@ -545,7 +561,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->assertWaitOnAjaxRequest();
$assert_session->pageTextContains('Dog');
$assert_session->pageTextContains('Bear');
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert the media library contains header links to switch between the grid
// and table display.
@@ -618,6 +634,11 @@ class MediaLibraryTest extends WebDriverTestBase {
$assert_session->assertWaitOnAjaxRequest();
// Assert the focus is set back on the open button of the media field.
$this->assertJsCondition('jQuery("#field_twin_media-media-library-wrapper .js-media-library-open-button").is(":focus")');
+ // Assert the weight field can be focused via a mouse click.
+ $assert_session->elementExists('named', ['button', 'Show media item weights'])->click();
+ $assert_session->elementExists('css', '#field_twin_media-media-library-wrapper .media-library-item__weight')->click();
+ $assert_session->elementExists('css', '#field_twin_media-media-library-wrapper .js-media-library-widget-toggle-weight')->click();
+ // Remove the selected item.
$assert_session->elementAttributeContains('css', '.media-library-item__remove', 'aria-label', 'Remove Dog');
$assert_session->elementExists('css', '.media-library-item__remove')->click();
$this->assertNotEmpty($assert_session->waitForText('Removed Dog.'));
@@ -791,7 +812,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$this->assertFalse($checkboxes[2]->isChecked());
$this->assertFalse($checkboxes[3]->isChecked());
// Close the dialog, reopen it and assert not is selected again.
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
$assert_session->elementExists('css', '.media-library-open-button[name^="field_unlimited_media"]')->click();
$assert_session->assertWaitOnAjaxRequest();
$checkboxes = $page->findAll('css', '.media-library-view .js-click-to-select-checkbox input');
@@ -800,7 +821,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$this->assertFalse($checkboxes[1]->isChecked());
$this->assertFalse($checkboxes[2]->isChecked());
$this->assertFalse($checkboxes[3]->isChecked());
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Finally, save the form.
$assert_session->elementExists('css', '.js-media-library-widget-toggle-weight')->click();
@@ -1217,7 +1238,7 @@ class MediaLibraryTest extends WebDriverTestBase {
$this->assertJsCondition('jQuery("#media-library-add-form-wrapper :tabbable").is(":focus")');
$assert_session->elementNotExists('css', '.media-library-add-form__fields');
$assert_session->elementExists('css', '.media-library-menu');
- $page->find('css', '.ui-dialog-titlebar-close')->click();
+ $assert_session->elementExists('css', '.ui-dialog-titlebar-close')->click();
// Assert uploading multiple files.
$assert_session->elementExists('css', '.media-library-open-button[name^="field_unlimited_media"]')->click();