diff --git a/core/modules/menu_ui/src/MenuForm.php b/core/modules/menu_ui/src/MenuForm.php index 9d8a060..85549b2 100644 --- a/core/modules/menu_ui/src/MenuForm.php +++ b/core/modules/menu_ui/src/MenuForm.php @@ -381,7 +381,7 @@ protected function buildOverviewTreeForm($tree, $delta) { if ($edit_route) { $operations['edit']['url'] = $edit_route; // Bring the user back to the menu overview. - $operations['edit']['query']['destination'] = $this->entity->getSystemPath(); + $operations['edit']['query'] = drupal_get_destination(); } else { // Fall back to the standard edit link. @@ -390,15 +390,15 @@ protected function buildOverviewTreeForm($tree, $delta) { ); } // Links can either be reset or deleted, not both. - if ($link->isResettable()) { + if ($link->isResettable()->isAllowed()) { $operations['reset'] = array( 'title' => $this->t('Reset'), 'url' => Url::fromRoute('menu_ui.link_reset', ['menu_link_plugin' => $link->getPluginId()]), ); } elseif ($delete_link = $link->getDeleteRoute()) { - $operations['delete'] = $delete_link; - $operations['delete']['query']['destination'] = $this->entity->getSystemPath(); + $operations['delete']['url'] = $delete_link; + $operations['delete']['query'] = drupal_get_destination(); $operations['delete']['title'] = $this->t('Delete'); } if ($link->isTranslatable()) { diff --git a/core/modules/menu_ui/src/Plugin/Menu/LocalAction/MenuLinkAdd.php b/core/modules/menu_ui/src/Plugin/Menu/LocalAction/MenuLinkAdd.php index 1e3ecd7..31605fd 100644 --- a/core/modules/menu_ui/src/Plugin/Menu/LocalAction/MenuLinkAdd.php +++ b/core/modules/menu_ui/src/Plugin/Menu/LocalAction/MenuLinkAdd.php @@ -21,17 +21,7 @@ class MenuLinkAdd extends LocalActionDefault { */ public function getOptions(Request $request) { $options = parent::getOptions($request); - // Append the current path as destination to the query string. - if ($request->attributes->has(RouteObjectInterface::ROUTE_NAME)) { - $route_name = $request->attributes->get(RouteObjectInterface::ROUTE_NAME); - $raw_variables = array(); - if ($request->attributes->has('_raw_variables')) { - $raw_variables = $request->attributes->get('_raw_variables')->all(); - } - // @todo Use RouteMatch instead of Request. - // https://www.drupal.org/node/2294157 - $options['query']['destination'] = \Drupal::urlGenerator()->getPathFromRoute($route_name, $raw_variables); - } + $options['query']['destination'] = drupal_get_destination()['destination']; return $options; }