diff --git a/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php b/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php index 967dce880a..8a33c76ed8 100644 --- a/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php +++ b/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php @@ -131,6 +131,9 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen foreach ($transitions as $transition) { $transition_to_state = $transition->to(); $transition_labels[$transition_to_state->id()] = $transition_to_state->label(); + if ($default->id() === $transition_to_state->id()) { + $default_value = $default->id(); + } } $element += [ diff --git a/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php b/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php index bb9e92d6ea..c31a98e194 100644 --- a/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php +++ b/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php @@ -107,6 +107,10 @@ public function testModerationForm() { 'moderation_state[0][state]' => 'published', ], t('Save')); + // Check widget default value. + $this->drupalGet($edit_path); + $this->assertFieldByName('moderation_state[0][state]', 'published', 'The moderation default value is set correctly.'); + // The published view should not have a moderation form, because it is the // live revision. $this->drupalGet($canonical_path);