Issue #3056258 by mohit_aghera, vakulrai, guilhermevp, adalbertov, ankithashetty, aleevas, anmolgoyal74, munish.kumar, paulocs, jeroendegloire, pameeela, quietone, Abhijith S, benjifisher, catch, xjm, John Cook, lokapujya: Allow redirection to vocabulary list terms page after creating a new term
parent
adb24cf8a8
commit
5cc279bac0
|
@ -95,6 +95,37 @@ class TermForm extends ContentEntityForm {
|
||||||
return parent::form($form, $form_state);
|
return parent::form($form, $form_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
protected function actions(array $form, FormStateInterface $form_state) {
|
||||||
|
$element = parent::actions($form, $form_state);
|
||||||
|
if (!$this->getRequest()->query->has('destination')) {
|
||||||
|
$element['overview'] = [
|
||||||
|
'#type' => 'submit',
|
||||||
|
'#value' => $this->t('Save and go to list'),
|
||||||
|
'#weight' => 20,
|
||||||
|
'#submit' => array_merge($element['submit']['#submit'], ['::overview']),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $element;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Form submission handler for the 'overview' action.
|
||||||
|
*
|
||||||
|
* @param array[] $form
|
||||||
|
* An associative array containing the structure of the form.
|
||||||
|
* @param \Drupal\Core\Form\FormStateInterface $form_state
|
||||||
|
* The current state of the form.
|
||||||
|
*/
|
||||||
|
public function overview(array $form, FormStateInterface $form_state): void {
|
||||||
|
$vocabulary = $this->entityTypeManager->getStorage('taxonomy_vocabulary')
|
||||||
|
->load($form_state->getValue('vid'));
|
||||||
|
$form_state->setRedirectUrl($vocabulary->toUrl('overview-form'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -407,6 +407,25 @@ class TermTest extends TaxonomyTestBase {
|
||||||
// Assert that the term no longer exists.
|
// Assert that the term no longer exists.
|
||||||
$this->drupalGet('taxonomy/term/' . $term->id());
|
$this->drupalGet('taxonomy/term/' . $term->id());
|
||||||
$this->assertSession()->statusCodeEquals(404);
|
$this->assertSession()->statusCodeEquals(404);
|
||||||
|
|
||||||
|
// Test "save and go to list" action while creating term.
|
||||||
|
// Create the term to edit.
|
||||||
|
$this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add');
|
||||||
|
$edit = [
|
||||||
|
'name[0][value]' => $this->randomMachineName(12),
|
||||||
|
'description[0][value]' => $this->randomMachineName(100),
|
||||||
|
];
|
||||||
|
|
||||||
|
// Create the term to edit.
|
||||||
|
$this->submitForm($edit, 'Save and go to list');
|
||||||
|
$this->assertSession()->statusCodeEquals(200);
|
||||||
|
$this->assertSession()->addressEquals('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview');
|
||||||
|
$this->assertSession()->pageTextContains($edit['name[0][value]']);
|
||||||
|
|
||||||
|
// Validate that "Save and go to list" doesn't exist when destination
|
||||||
|
// parameter is present.
|
||||||
|
$this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', ['query' => ['destination' => 'node/add']]);
|
||||||
|
$this->assertSession()->pageTextNotContains('Save and go to list');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue