diff --git a/src/Plugin/Field/FieldFormatter/JwplayerFormatter.php b/src/Plugin/Field/FieldFormatter/JwplayerFormatter.php index 95e2119..3820c17 100644 --- a/src/Plugin/Field/FieldFormatter/JwplayerFormatter.php +++ b/src/Plugin/Field/FieldFormatter/JwplayerFormatter.php @@ -54,7 +54,7 @@ class JwplayerFormatter extends FormatterBase { '#title' => t('Select preset'), '#type' => 'select', '#empty_option' => t('- No preset selected -'), - '#default_value' => $this->getSetting('jwplayer_preset'), + '#default_value' => $this->getSetting('jwplayer_preset') ?: 'none', '#options' => $options, ]; $element['links'] = [ @@ -71,7 +71,7 @@ class JwplayerFormatter extends FormatterBase { ], ]; - if ($this->getSetting('jwplayer_preset')) { + if ($this->getSetting('jwplayer_preset') && $this->getSetting('jwplayer_preset') != 'none') { $element['links']['#links'][] = [ 'url' => Url::fromRoute('entity.jw_player.edit_form', ['jw_player' => $this->getSetting('jwplayer_preset')]), 'title' => t('Manage selected preset'), @@ -112,7 +112,7 @@ class JwplayerFormatter extends FormatterBase { '#default_value' => $this->getSetting('preview_image_style') ? $this->getSetting('preview_image_style') : '', '#states' => [ 'invisible' => [ - array(':input[name="fields[field_video][settings_edit_form][settings][preview_image_field]"]' => ['value' => '']), + array(':input[name="fields[' . $this->fieldDefinition->getName() . '][settings_edit_form][settings][preview_image_field]"]' => ['value' => '']), ], ], ]; diff --git a/src/Tests/JwPlayer7ConfigurationTest.php b/src/Tests/JwPlayer7ConfigurationTest.php index 4319900..4cbcd0b 100644 --- a/src/Tests/JwPlayer7ConfigurationTest.php +++ b/src/Tests/JwPlayer7ConfigurationTest.php @@ -100,6 +100,7 @@ class JwPlayer7ConfigurationTest extends WebTestBase { $this->drupalPostAjaxForm(NULL, NULL, 'field_video_settings_edit'); // Set the image field as preview of the jw player video. $edit = [ + 'fields[field_video][settings_edit_form][settings][jwplayer_preset]' => 'test_preset', 'fields[field_video][settings_edit_form][settings][preview_image_field]' => 'node:jw_player|field_image_preview', 'fields[field_video][settings_edit_form][settings][preview_image_style]' => 'medium', ]; diff --git a/src/Tests/JwPlayerConfigurationTest.php b/src/Tests/JwPlayerConfigurationTest.php index d1a9ada..2a3bfa0 100644 --- a/src/Tests/JwPlayerConfigurationTest.php +++ b/src/Tests/JwPlayerConfigurationTest.php @@ -94,7 +94,10 @@ class JwPlayerConfigurationTest extends WebTestBase { static::fieldUIAddNewField('admin/structure/types/manage/jw_player', 'video', 'Video', 'file', array(), array('settings[file_extensions]' => 'mp4')); $this->drupalPostForm('admin/structure/types/manage/jw_player/display', array('fields[field_video][type]' => 'jwplayer_formatter'), t('Save')); $this->drupalPostAjaxForm(NULL, NULL, 'field_video_settings_edit'); - $this->drupalPostForm(NULL, NULL, t('Update')); + $edit = [ + 'fields[field_video][settings_edit_form][settings][jwplayer_preset]' => 'test_preset', + ]; + $this->drupalPostForm(NULL, $edit, t('Update')); $this->drupalPostForm(NULL, NULL, t('Save')); // Make sure JW preset is correct. $this->assertText('Preset: test_preset');