diff --git a/core/includes/form.inc b/core/includes/form.inc index 06ee164..9f41201 100644 --- a/core/includes/form.inc +++ b/core/includes/form.inc @@ -1326,6 +1326,16 @@ function drupal_redirect_form($form_state) { if (!empty($form_state['no_redirect'])) { return; } + // Check for a route-based redirection. + if (isset($form_state['redirect_route'])) { + $form_state['redirect_route'] += array( + 'route_parameters' => array(), + 'options' => array(), + ); + $form_state['redirect_route']['absolute'] = TRUE; + $url = \Drupal::urlGenerator()->generateFromRoute($form_state['redirect_route']['route_name'], $form_state['redirect_route']['route_parameters'], $form_state['redirect_route']); + return new RedirectResponse($url); + } // Only invoke a redirection if redirect value was not set to FALSE. if (!isset($form_state['redirect']) || $form_state['redirect'] !== FALSE) { if (isset($form_state['redirect'])) { diff --git a/core/modules/action/lib/Drupal/action/ActionFormControllerBase.php b/core/modules/action/lib/Drupal/action/ActionFormControllerBase.php index 2bd8573..3cf0cde 100644 --- a/core/modules/action/lib/Drupal/action/ActionFormControllerBase.php +++ b/core/modules/action/lib/Drupal/action/ActionFormControllerBase.php @@ -149,7 +149,9 @@ public function save(array $form, array &$form_state) { $this->entity->save(); drupal_set_message($this->t('The action has been successfully saved.')); - $form_state['redirect'] = 'admin/config/system/actions'; + $form_state['redirect_route'] = array( + 'route_name' => 'action.admin', + ); } } diff --git a/core/modules/action/lib/Drupal/action/Form/ActionAdminManageForm.php b/core/modules/action/lib/Drupal/action/Form/ActionAdminManageForm.php index 3b221db..e94f4ad 100644 --- a/core/modules/action/lib/Drupal/action/Form/ActionAdminManageForm.php +++ b/core/modules/action/lib/Drupal/action/Form/ActionAdminManageForm.php @@ -88,7 +88,10 @@ public function buildForm(array $form, array &$form_state) { */ public function submitForm(array &$form, array &$form_state) { if ($form_state['values']['action']) { - $form_state['redirect'] = 'admin/config/system/actions/add/' . $form_state['values']['action']; + $form_state['redirect_route'] = array( + 'route_name' => 'action.admin_add', + 'route_parameters' => array('action_id' => $form_state['values']['action']), + ); } } diff --git a/core/modules/action/lib/Drupal/action/Form/ActionDeleteForm.php b/core/modules/action/lib/Drupal/action/Form/ActionDeleteForm.php index a49a901..968b7f0 100644 --- a/core/modules/action/lib/Drupal/action/Form/ActionDeleteForm.php +++ b/core/modules/action/lib/Drupal/action/Form/ActionDeleteForm.php @@ -46,7 +46,9 @@ public function submit(array $form, array &$form_state) { watchdog('user', 'Deleted action %aid (%action)', array('%aid' => $this->entity->id(), '%action' => $this->entity->label())); drupal_set_message($this->t('Action %action was deleted', array('%action' => $this->entity->label()))); - $form_state['redirect'] = 'admin/config/system/actions'; + $form_state['redirect_route'] = array( + 'route_name' => 'action.admin', + ); } } diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php b/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php index 512ab2a..81f6018 100644 --- a/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php +++ b/core/modules/views_ui/lib/Drupal/views_ui/Form/Ajax/ReorderDisplays.php @@ -186,7 +186,11 @@ public function submitForm(array &$form, array &$form_state) { // Store in cache. $view->cacheSet(); - $form_state['redirect'] = array('admin/structure/views/view/' . $view->id() . '/edit', array('fragment' => 'views-tab-default')); + $form_state['redirect_route'] = array( + 'route_name' => 'views_ui.operation', + 'route_parameters' => array('view' => $view->id(), 'operation' => 'edit'), + 'options' => array('fragment' => 'views-tab-default'), + ); } }