diff --git a/core/modules/taxonomy/src/TermForm.php b/core/modules/taxonomy/src/TermForm.php index e252d8e073e2718d0a24751a3e196e6b552aff63..73f6e4d11e1d61198cce6d76b2774bfda99854bd 100644 --- a/core/modules/taxonomy/src/TermForm.php +++ b/core/modules/taxonomy/src/TermForm.php @@ -63,15 +63,19 @@ public function form(array $form, FormStateInterface $form_state) { $options[$item->tid] = str_repeat('-', $item->depth) . $item->name; } } - - $form['relations']['parent'] = [ - '#type' => 'select', - '#title' => $this->t('Parent terms'), - '#options' => $options, - '#default_value' => $parent, - '#multiple' => TRUE, - ]; } + else { + $options = ['<' . $this->t('root') . '>']; + $parent = [0]; + } + + $form['relations']['parent'] = [ + '#type' => 'select', + '#title' => $this->t('Parent terms'), + '#options' => $options, + '#default_value' => $parent, + '#multiple' => TRUE, + ]; $form['relations']['weight'] = [ '#type' => 'textfield', diff --git a/core/modules/taxonomy/tests/src/Functional/TermTest.php b/core/modules/taxonomy/tests/src/Functional/TermTest.php index d325cb1c4185288c1da4847b636c9f1dc92bebfe..0bf4118ee9f044e8ee09355566cb59a21127538e 100644 --- a/core/modules/taxonomy/tests/src/Functional/TermTest.php +++ b/core/modules/taxonomy/tests/src/Functional/TermTest.php @@ -432,6 +432,31 @@ public function testTermInterface() { $this->assertSession()->pageTextNotContains('Save and go to list'); } + /** + * Test UI with override_selector TRUE. + */ + public function testTermSaveOverrideSelector() { + $this->config('taxonomy.settings')->set('override_selector', TRUE)->save(); + + // Create a Term. + $edit = [ + 'name[0][value]' => $this->randomMachineName(12), + 'description[0][value]' => $this->randomMachineName(100), + ]; + // Create the term to edit. + $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add'); + $this->submitForm($edit, 'Save'); + $terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadByProperties([ + 'name' => $edit['name[0][value]'], + ]); + $term = reset($terms); + $this->assertNotNull($term, 'Term found in database.'); + + // The term appears on the vocab list page. + $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview'); + $this->assertSession()->pageTextContains($term->getName()); + } + /** * Save, edit and delete a term using the user interface. */