Issue #3055516 by oknate, dasginganinja, Skymen, rgpublic, Wim Leers, seanB, phenaproxima, tstoeckler: Notice: Undefined index: target_bundles when new reference media field created
parent
9d9fd0ab50
commit
c6a7ce5a13
|
@ -146,7 +146,9 @@ class MediaLibraryWidget extends WidgetBase implements ContainerFactoryPluginInt
|
||||||
|
|
||||||
// Get the configured media types from the field storage.
|
// Get the configured media types from the field storage.
|
||||||
$handler_settings = $this->getFieldSetting('handler_settings');
|
$handler_settings = $this->getFieldSetting('handler_settings');
|
||||||
$allowed_media_type_ids = $handler_settings['target_bundles'];
|
// The target bundles will be blank when saving field storage settings,
|
||||||
|
// when first adding a media reference field.
|
||||||
|
$allowed_media_type_ids = isset($handler_settings['target_bundles']) ? $handler_settings['target_bundles'] : NULL;
|
||||||
|
|
||||||
// When there are no allowed media types, return the empty array.
|
// When there are no allowed media types, return the empty array.
|
||||||
if ($allowed_media_type_ids === []) {
|
if ($allowed_media_type_ids === []) {
|
||||||
|
|
|
@ -1582,4 +1582,36 @@ class MediaLibraryTest extends WebDriverTestBase {
|
||||||
$assert_session->elementExists('css', '.media-library-menu');
|
$assert_session->elementExists('css', '.media-library-menu');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests field UI integration for media library widget.
|
||||||
|
*/
|
||||||
|
public function testFieldUiIntegration() {
|
||||||
|
$page = $this->getSession()->getPage();
|
||||||
|
$assert_session = $this->assertSession();
|
||||||
|
$this->drupalCreateContentType(['type' => 'article']);
|
||||||
|
$user = $this->drupalCreateUser([
|
||||||
|
'access administration pages',
|
||||||
|
'administer node fields',
|
||||||
|
'administer node form display',
|
||||||
|
]);
|
||||||
|
$this->drupalLogin($user);
|
||||||
|
|
||||||
|
$this->drupalGet('/admin/structure/types/manage/article/fields/add-field');
|
||||||
|
$page->selectFieldOption('new_storage_type', 'field_ui:entity_reference:media');
|
||||||
|
$this->assertTrue($assert_session->waitForField('label'));
|
||||||
|
$page->fillField('label', 'Shatner');
|
||||||
|
$this->assertTrue($assert_session->waitForText('field_shatner'));
|
||||||
|
$page->pressButton('Save and continue');
|
||||||
|
$page->pressButton('Save field settings');
|
||||||
|
$assert_session->pageTextNotContains('Undefined index: target_bundles');
|
||||||
|
$page->checkField('settings[handler_settings][target_bundles][type_one]');
|
||||||
|
$assert_session->assertWaitOnAjaxRequest();
|
||||||
|
$page->checkField('settings[handler_settings][target_bundles][type_two]');
|
||||||
|
$assert_session->assertWaitOnAjaxRequest();
|
||||||
|
$page->checkField('settings[handler_settings][target_bundles][type_three]');
|
||||||
|
$assert_session->assertWaitOnAjaxRequest();
|
||||||
|
$page->pressButton('Save settings');
|
||||||
|
$assert_session->pageTextContains('Saved Shatner configuration.');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue