Unverified Commit b5b3949b authored by larowlan's avatar larowlan

Issue #2928256 by marcoscano, seanB: Users shouldn't be able to change the...

Issue #2928256 by marcoscano, seanB: Users shouldn't be able to change the media source plugin after the media type is created
parent de9e2d70
......@@ -118,14 +118,23 @@ public function form(array $form, FormStateInterface $form_state) {
'#attributes' => ['id' => 'source-dependent'],
];
if ($source) {
$source_description = $this->t('<em>The media source cannot be changed after the media type is created.</em>');
}
else {
$source_description = $this->t('Media source that is responsible for additional logic related to this media type.');
}
$form['source_dependent']['source'] = [
'#type' => 'select',
'#title' => $this->t('Media source'),
'#default_value' => $source ? $source->getPluginId() : NULL,
'#options' => $options,
'#description' => $this->t('Media source that is responsible for additional logic related to this media type.'),
'#description' => $source_description,
'#ajax' => ['callback' => '::ajaxHandlerData'],
'#required' => TRUE,
// Once the media type is created, its source plugin cannot be changed
// anymore.
'#disabled' => !empty($source),
];
if (!$source) {
......
......@@ -49,6 +49,10 @@ public function testMediaTypeCreationFormWithDefaultField() {
$this->drupalGet("admin/structure/media/manage/{$mediaTypeMachineName}");
$assert_session->pageTextContains('Test source field is used to store the essential information about the media item.');
// Check that the plugin cannot be changed after it is set on type creation.
$assert_session->fieldDisabled('Media source');
$assert_session->pageTextContains('The media source cannot be changed after the media type is created.');
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment