Commit fbe93225 authored by catch's avatar catch

Issue #2111823 by amateescu, dawehner: Convert field_ui / Entity local tasks to YAML definitions.

parent e86305a0
...@@ -225,16 +225,11 @@ class EntityType extends Plugin { ...@@ -225,16 +225,11 @@ class EntityType extends Plugin {
public $bundle_keys; public $bundle_keys;
/** /**
* The base router path for the entity type's field administration page. * The name of the entity type which provides bundles.
*
* If the entity type has a bundle, include {bundle} in the path.
*
* For example, the node entity type specifies
* "admin/structure/types/manage/{bundle}" as its base field admin path.
* *
* @var string (optional) * @var string (optional)
*/ */
public $route_base_path; public $bundle_entity_type = 'bundle';
/** /**
* Link templates using the URI template syntax. * Link templates using the URI template syntax.
......
...@@ -301,9 +301,9 @@ public function getAdminPath($entity_type, $bundle) { ...@@ -301,9 +301,9 @@ public function getAdminPath($entity_type, $bundle) {
$admin_path = ''; $admin_path = '';
$entity_info = $this->getDefinition($entity_type); $entity_info = $this->getDefinition($entity_type);
// Check for an entity type's admin base path. // Check for an entity type's admin base path.
if (isset($entity_info['route_base_path'])) { if (isset($entity_info['links']['admin-form'])) {
// Replace any dynamic 'bundle' portion of the path with the actual bundle. $route_parameters[$entity_info['bundle_entity_type']] = $bundle;
$admin_path = str_replace('{bundle}', $bundle, $entity_info['route_base_path']); $admin_path = \Drupal::urlGenerator()->getPathFromRoute($entity_info['links']['admin-form'], $route_parameters);
} }
return $admin_path; return $admin_path;
...@@ -313,10 +313,11 @@ public function getAdminPath($entity_type, $bundle) { ...@@ -313,10 +313,11 @@ public function getAdminPath($entity_type, $bundle) {
* {@inheritdoc} * {@inheritdoc}
*/ */
public function getAdminRouteInfo($entity_type, $bundle) { public function getAdminRouteInfo($entity_type, $bundle) {
$entity_info = $this->getDefinition($entity_type);
return array( return array(
'route_name' => "field_ui.overview_$entity_type", 'route_name' => "field_ui.overview_$entity_type",
'route_parameters' => array( 'route_parameters' => array(
'bundle' => $bundle, $entity_info['bundle_entity_type'] => $bundle,
) )
); );
} }
......
...@@ -164,6 +164,11 @@ public function getViewBuilder($entity_type); ...@@ -164,6 +164,11 @@ public function getViewBuilder($entity_type);
* *
* @return string * @return string
* The administration path for an entity type bundle, if it exists. * The administration path for an entity type bundle, if it exists.
*
* @deprecated since version 8.0
* System paths should not be used - use route names and parameters.
*
* @see self::getAdminRouteInfo()
*/ */
public function getAdminPath($entity_type, $bundle); public function getAdminPath($entity_type, $bundle);
......
...@@ -36,10 +36,10 @@ ...@@ -36,10 +36,10 @@
* admin_permission = "administer blocks", * admin_permission = "administer blocks",
* base_table = "custom_block", * base_table = "custom_block",
* revision_table = "custom_block_revision", * revision_table = "custom_block_revision",
* route_base_path = "admin/structure/block/custom-blocks/manage/{bundle}",
* links = { * links = {
* "canonical" = "custom_block.edit", * "canonical" = "custom_block.edit",
* "edit-form" = "custom_block.edit" * "edit-form" = "custom_block.edit",
* "admin-form" = "custom_block.type_edit"
* }, * },
* fieldable = TRUE, * fieldable = TRUE,
* translatable = TRUE, * translatable = TRUE,
...@@ -52,7 +52,8 @@ ...@@ -52,7 +52,8 @@
* }, * },
* bundle_keys = { * bundle_keys = {
* "bundle" = "type" * "bundle" = "type"
* } * },
* bundle_entity_type = "custom_block_type"
* ) * )
*/ */
class CustomBlock extends ContentEntityBase implements CustomBlockInterface { class CustomBlock extends ContentEntityBase implements CustomBlockInterface {
......
...@@ -36,7 +36,6 @@ ...@@ -36,7 +36,6 @@
* fieldable = TRUE, * fieldable = TRUE,
* translatable = TRUE, * translatable = TRUE,
* render_cache = FALSE, * render_cache = FALSE,
* route_base_path = "admin/structure/comments/manage/{bundle}",
* entity_keys = { * entity_keys = {
* "id" = "cid", * "id" = "cid",
* "bundle" = "field_id", * "bundle" = "field_id",
...@@ -48,7 +47,8 @@ ...@@ -48,7 +47,8 @@
* }, * },
* links = { * links = {
* "canonical" = "comment.permalink", * "canonical" = "comment.permalink",
* "edit-form" = "comment.edit_page" * "edit-form" = "comment.edit_page",
* "admin-form" = "comment.bundle"
* } * }
* ) * )
*/ */
......
...@@ -229,11 +229,11 @@ function testCommentFunctionality() { ...@@ -229,11 +229,11 @@ function testCommentFunctionality() {
)); ));
$this->drupalLogin($limited_user); $this->drupalLogin($limited_user);
// Test that default field exists. // Test that default field exists.
$this->drupalGet('admin/structure/entity-test/manage/entity_test/fields'); $this->drupalGet('entity_test/structure/entity_test/fields');
$this->assertText(t('Comment settings')); $this->assertText(t('Comment settings'));
$this->assertLinkByHref('admin/structure/entity-test/manage/entity_test/fields/entity_test.entity_test.comment'); $this->assertLinkByHref('entity_test/structure/entity_test/fields/entity_test.entity_test.comment');
// Test widget hidden option is not visible when there's no comments. // Test widget hidden option is not visible when there's no comments.
$this->drupalGet('admin/structure/entity-test/manage/entity_test/entity-test/fields/entity_test.entity_test.comment'); $this->drupalGet('entity_test/structure/entity_test/entity-test/fields/entity_test.entity_test.comment');
$this->assertNoField('edit-default-value-input-comment-und-0-status-0'); $this->assertNoField('edit-default-value-input-comment-und-0-status-0');
$this->drupalLogin($this->admin_user); $this->drupalLogin($this->admin_user);
...@@ -343,20 +343,20 @@ function testCommentFunctionality() { ...@@ -343,20 +343,20 @@ function testCommentFunctionality() {
'administer entity_test content', 'administer entity_test content',
)); ));
$this->drupalLogin($limited_user); $this->drupalLogin($limited_user);
$this->drupalGet('admin/structure/entity-test/manage/entity_test/fields/entity_test.entity_test.comment'); $this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.comment');
$this->assertNoFieldChecked('edit-default-value-input-comment-0-status-0'); $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-0');
$this->assertNoFieldChecked('edit-default-value-input-comment-0-status-1'); $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-1');
$this->assertFieldChecked('edit-default-value-input-comment-0-status-2'); $this->assertFieldChecked('edit-default-value-input-comment-0-status-2');
// Test comment option change in field settings. // Test comment option change in field settings.
$edit = array('default_value_input[comment][0][status]' => COMMENT_CLOSED); $edit = array('default_value_input[comment][0][status]' => COMMENT_CLOSED);
$this->drupalPostForm(NULL, $edit, t('Save settings')); $this->drupalPostForm(NULL, $edit, t('Save settings'));
$this->drupalGet('admin/structure/entity-test/manage/entity_test/fields/entity_test.entity_test.comment'); $this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.comment');
$this->assertNoFieldChecked('edit-default-value-input-comment-0-status-0'); $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-0');
$this->assertFieldChecked('edit-default-value-input-comment-0-status-1'); $this->assertFieldChecked('edit-default-value-input-comment-0-status-1');
$this->assertNoFieldChecked('edit-default-value-input-comment-0-status-2'); $this->assertNoFieldChecked('edit-default-value-input-comment-0-status-2');
// Add a new comment field. // Add a new comment field.
$this->drupalGet('admin/structure/entity-test/manage/entity_test/fields'); $this->drupalGet('entity_test/structure/entity_test/fields');
$edit = array( $edit = array(
'fields[_add_new_field][label]' => 'Foobar', 'fields[_add_new_field][label]' => 'Foobar',
'fields[_add_new_field][field_name]' => 'foobar', 'fields[_add_new_field][field_name]' => 'foobar',
......
...@@ -23,13 +23,10 @@ class ConfigFieldInstanceMapper extends ConfigEntityMapper { ...@@ -23,13 +23,10 @@ class ConfigFieldInstanceMapper extends ConfigEntityMapper {
*/ */
public function getBaseRouteParameters() { public function getBaseRouteParameters() {
$parameters = parent::getBaseRouteParameters(); $parameters = parent::getBaseRouteParameters();
// @todo All core content entity path placeholders can be fully filled in $base_entity_info = $this->entityManager->getDefinition($this->pluginDefinition['base_entity_type']);
// with an additional {bundle} value in their paths, but a more
// predictable solution would be ideal. See
// https://drupal.org/node/2134871
// @todo Field instances have no method to return the bundle the instance is // @todo Field instances have no method to return the bundle the instance is
// attached to. See https://drupal.org/node/2134861 // attached to. See https://drupal.org/node/2134861
$parameters['bundle'] = $this->entity->bundle; $parameters[$base_entity_info['bundle_entity_type']] = $this->entity->bundle;
return $parameters; return $parameters;
} }
......
contact.category_edit:
title: 'Edit'
route_name: contact.category_edit
tab_root_id: contact.category_edit
...@@ -67,10 +67,6 @@ function contact_menu() { ...@@ -67,10 +67,6 @@ function contact_menu() {
'title' => 'Edit contact category', 'title' => 'Edit contact category',
'route_name' => 'contact.category_edit', 'route_name' => 'contact.category_edit',
); );
$items['admin/structure/contact/manage/%contact_category/edit'] = array(
'title' => 'Edit',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items['contact'] = array( $items['contact'] = array(
'title' => 'Contact', 'title' => 'Contact',
......
...@@ -26,10 +26,13 @@ ...@@ -26,10 +26,13 @@
* entity_keys = { * entity_keys = {
* "bundle" = "category" * "bundle" = "category"
* }, * },
* route_base_path = "admin/structure/contact/manage/{bundle}", * bundle_entity_type = "contact_category",
* fieldable = TRUE, * fieldable = TRUE,
* bundle_keys = { * bundle_keys = {
* "bundle" = "id" * "bundle" = "id"
* },
* links = {
* "admin-form" = "contact.category_edit"
* } * }
* ) * )
*/ */
......
...@@ -2,3 +2,6 @@ field_ui.list: ...@@ -2,3 +2,6 @@ field_ui.list:
title: Entities title: Entities
route_name: field_ui.list route_name: field_ui.list
tab_root_id: field_ui.list tab_root_id: field_ui.list
field_ui.fields:
class: \Drupal\Core\Menu\LocalTaskDefault
derivative: \Drupal\field_ui\Plugin\Derivative\FieldUiLocalTask
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\EntityInterface;
use Drupal\entity\EntityViewModeInterface; use Drupal\entity\EntityViewModeInterface;
use Drupal\field_ui\Plugin\Derivative\FieldUiLocalTask;
/** /**
* Implements hook_help(). * Implements hook_help().
...@@ -61,94 +62,6 @@ function field_ui_menu() { ...@@ -61,94 +62,6 @@ function field_ui_menu() {
'type' => MENU_NORMAL_ITEM, 'type' => MENU_NORMAL_ITEM,
); );
// Create tabs for all possible bundles.
foreach (entity_get_info() as $entity_type => $entity_info) {
if ($entity_info['fieldable'] && isset($entity_info['route_base_path'])) {
// Extract path information from the entity type.
$path = $entity_info['route_base_path'];
$default_path = preg_replace('/{' . DRUPAL_PHP_FUNCTION_PATTERN . '}/', '%', $path);
// This is the position of the %field_ui_instance placeholder in the
// items below.
$field_position = count(explode('/', $path)) + 1;
$items["$path/fields"] = array(
'title' => 'Manage fields',
'type' => MENU_LOCAL_TASK,
'route_name' => "field_ui.overview_$entity_type",
'weight' => 1,
);
$items["$path/fields/%"] = array(
'title callback' => 'entity_page_label',
'title arguments' => array($field_position),
'route_name' => "field_ui.instance_edit_$entity_type",
);
$items["$default_path/fields/%/edit"] = array(
'title' => 'Edit',
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items["$path/fields/%/field"] = array(
'title' => 'Field settings',
'type' => MENU_LOCAL_TASK,
'route_name' => "field_ui.field_edit_$entity_type",
);
$items["$path/fields/%/delete"] = array(
'title' => 'Delete',
'type' => MENU_VISIBLE_IN_BREADCRUMB,
'route_name' => "field_ui.delete_$entity_type",
'weight' => 10,
);
// 'Manage form display' tab.
$items["$path/form-display"] = array(
'title' => 'Manage form display',
'type' => MENU_LOCAL_TASK,
'route_name' => "field_ui.form_display_overview_$entity_type",
'weight' => 2,
);
// 'Manage display' tab.
$items["$path/display"] = array(
'title' => 'Manage display',
'type' => MENU_LOCAL_TASK,
'route_name' => "field_ui.display_overview_$entity_type",
'weight' => 3,
);
// View and form modes secondary tabs.
// The same base $path for the menu item (with a placeholder) can be
// used for all bundles of a given entity type; but depending on
// administrator settings, each bundle has a different set of view
// modes available for customisation. So we define menu items for all
// view modes, and use a route requirement to determine which ones are
// actually visible for a given bundle.
$items["$default_path/form-display/default"] = array(
'title' => t('Default'),
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$items["$default_path/display/default"] = array(
'title' => t('Default'),
'type' => MENU_DEFAULT_LOCAL_TASK,
);
$weight = 0;
foreach (entity_get_form_modes($entity_type) as $form_mode => $form_mode_info) {
$items["$path/form-display/$form_mode"] = array(
'title' => $form_mode_info['label'],
'type' => MENU_LOCAL_TASK,
'weight' => $weight++,
'route_name' => "field_ui.form_display_overview_$entity_type" . '_' . $form_mode,
);
}
$weight = 0;
foreach (entity_get_view_modes($entity_type) as $view_mode => $view_mode_info) {
$items["$path/display/$view_mode"] = array(
'title' => $view_mode_info['label'],
'type' => MENU_LOCAL_TASK,
'weight' => $weight++,
'route_name' => "field_ui.display_overview_$entity_type" . '_' . $view_mode,
);
}
}
}
return $items; return $items;
} }
...@@ -334,12 +247,7 @@ function field_ui_entity_operation_alter(array &$operations, EntityInterface $en ...@@ -334,12 +247,7 @@ function field_ui_entity_operation_alter(array &$operations, EntityInterface $en
*/ */
function field_ui_form_node_type_form_submit($form, &$form_state) { function field_ui_form_node_type_form_submit($form, &$form_state) {
if ($form_state['triggering_element']['#parents'][0] === 'save_continue') { if ($form_state['triggering_element']['#parents'][0] === 'save_continue') {
$form_state['redirect_route'] = array( $form_state['redirect_route'] = \Drupal::entityManager()->getAdminRouteInfo('node', $form_state['values']['type']);
'route_name' => 'field_ui.overview_node',
'route_parameters' => array(
'bundle' => $form_state['values']['type'],
),
);
} }
} }
...@@ -462,3 +370,11 @@ function theme_field_ui_table($variables) { ...@@ -462,3 +370,11 @@ function theme_field_ui_table($variables) {
return drupal_render($table); return drupal_render($table);
} }
/**
* Implements hook_local_tasks_alter().
*/
function field_ui_local_tasks_alter(&$local_tasks) {
$container = \Drupal::getContainer();
$local_task = FieldUiLocalTask::create($container, 'field_ui.fields');
$local_task->alterLocalTasks($local_tasks);
}
services: services:
field_ui.subscriber: field_ui.subscriber:
class: Drupal\field_ui\Routing\RouteSubscriber class: Drupal\field_ui\Routing\RouteSubscriber
arguments: ['@entity.manager'] arguments: ['@entity.manager', '@router.route_provider']
tags: tags:
- { name: event_subscriber } - { name: event_subscriber }
access_check.field_ui.view_mode: access_check.field_ui.view_mode:
class: Drupal\field_ui\Access\ViewModeAccessCheck class: Drupal\field_ui\Access\ViewModeAccessCheck
arguments: ['@entity.manager']
tags: tags:
- { name: access_check } - { name: access_check }
access_check.field_ui.form_mode: access_check.field_ui.form_mode:
class: Drupal\field_ui\Access\FormModeAccessCheck class: Drupal\field_ui\Access\FormModeAccessCheck
arguments: ['@entity.manager']
tags: tags:
- { name: access_check } - { name: access_check }
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
namespace Drupal\field_ui\Access; namespace Drupal\field_ui\Access;
use Drupal\Core\Access\StaticAccessCheckInterface; use Drupal\Core\Access\StaticAccessCheckInterface;
use Drupal\Core\Entity\EntityManagerInterface;
use Drupal\Core\Session\AccountInterface; use Drupal\Core\Session\AccountInterface;
use Symfony\Component\Routing\Route; use Symfony\Component\Routing\Route;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
...@@ -17,6 +18,23 @@ ...@@ -17,6 +18,23 @@
*/ */
class FormModeAccessCheck implements StaticAccessCheckInterface { class FormModeAccessCheck implements StaticAccessCheckInterface {
/**
* The entity manager.
*
* @var \Drupal\Core\Entity\EntityManagerInterface
*/
protected $entityManager;
/**
* Creates a new FormModeAccessCheck.
*
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
* The entity manager.
*/
public function __construct(EntityManagerInterface $entity_manager) {
$this->entityManager = $entity_manager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
...@@ -29,17 +47,19 @@ public function appliesTo() { ...@@ -29,17 +47,19 @@ public function appliesTo() {
*/ */
public function access(Route $route, Request $request, AccountInterface $account) { public function access(Route $route, Request $request, AccountInterface $account) {
if ($entity_type = $request->attributes->get('entity_type')) { if ($entity_type = $request->attributes->get('entity_type')) {
$bundle = $request->attributes->get('bundle'); $form_mode = $request->attributes->get('form_mode_name');
$form_mode = $request->attributes->get('mode');
if ($form_mode == 'default') { if (!($bundle = $request->attributes->get('bundle'))) {
$visibility = TRUE; $entity_info = $this->entityManager->getDefinition($entity_type);
$bundle = $request->attributes->get('_raw_variables')->get($entity_info['bundle_entity_type']);
} }
elseif ($entity_form_display = entity_load('entity_form_display', $entity_type . '.' . $bundle . '.' . $form_mode)) {
$visibility = $entity_form_display->status(); $visibility = FALSE;
if (!$form_mode || $form_mode == 'default') {
$visibility = TRUE;
} }
else { elseif ($entity_display = $this->entityManager->getStorageController('entity_form_display')->load($entity_type . '.' . $bundle . '.' . $form_mode)) {
$visibility = FALSE; $visibility = $entity_display->status();
} }
if ($visibility) { if ($visibility) {
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
namespace Drupal\field_ui\Access; namespace Drupal\field_ui\Access;
use Drupal\Core\Access\StaticAccessCheckInterface; use Drupal\Core\Access\StaticAccessCheckInterface;
use Drupal\Core\Entity\EntityManagerInterface;
use Drupal\Core\Session\AccountInterface; use Drupal\Core\Session\AccountInterface;
use Symfony\Component\Routing\Route; use Symfony\Component\Routing\Route;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
...@@ -17,6 +18,23 @@ ...@@ -17,6 +18,23 @@
*/ */
class ViewModeAccessCheck implements StaticAccessCheckInterface { class ViewModeAccessCheck implements StaticAccessCheckInterface {
/**
* The entity manager.
*
* @var \Drupal\Core\Entity\EntityManagerInterface
*/
protected $entityManager;
/**
* Creates a new ViewModeAccessCheck.
*
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
* The entity manager.
*/
public function __construct(EntityManagerInterface $entity_manager) {
$this->entityManager = $entity_manager;
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
...@@ -29,18 +47,20 @@ public function appliesTo() { ...@@ -29,18 +47,20 @@ public function appliesTo() {
*/ */
public function access(Route $route, Request $request, AccountInterface $account) { public function access(Route $route, Request $request, AccountInterface $account) {
if ($entity_type = $request->attributes->get('entity_type')) { if ($entity_type = $request->attributes->get('entity_type')) {
$bundle = $request->attributes->get('bundle'); $view_mode = $request->attributes->get('view_mode_name');
$view_mode = $request->attributes->get('mode');
if ($view_mode == 'default') { if (!($bundle = $request->attributes->get('bundle'))) {
$entity_info = $this->entityManager->getDefinition($entity_type);
$bundle = $request->attributes->get('_raw_variables')->get($entity_info['bundle_entity_type']);
}
$visibility = FALSE;
if (!$view_mode || $view_mode == 'default') {
$visibility = TRUE; $visibility = TRUE;
} }
elseif ($entity_display = entity_load('entity_display', $entity_type . '.' . $bundle . '.' . $view_mode)) { elseif ($entity_display = $this->entityManager->getStorageController('entity_display')->load($entity_type . '.' . $bundle . '.' . $view_mode)) {
$visibility = $entity_display->status(); $visibility = $entity_display->status();
} }
else {
$visibility = FALSE;
}
if ($visibility) { if ($visibility) {
$permission = $route->getRequirement('_field_ui_view_mode_access'); $permission = $route->getRequirement('_field_ui_view_mode_access');
......
...@@ -35,6 +35,17 @@ public function getFormId() { ...@@ -35,6 +35,17 @@ public function getFormId() {
return 'field_ui_display_overview_form'; return 'field_ui_display_overview_form';
} }
/**
* {@inheritdoc}
*/
public function buildForm(array $form, array &$form_state, $entity_type = NULL, $bundle = NULL) {
if ($this->getRequest()->attributes->has('view_mode_name')) {
$this->mode = $this->getRequest()->attributes->get('view_mode_name');
}
return parent::buildForm($form, $form_state, $entity_type, $bundle);
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
......
...@@ -82,10 +82,12 @@ public function getRegions() { ...@@ -82,10 +82,12 @@ public function getRegions() {
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public function buildForm(array $form, array &$form_state, $entity_type = NULL, $bundle = NULL, $mode = NULL) { public function buildForm(array $form, array &$form_state, $entity_type = NULL, $bundle = NULL) {
parent::buildForm($form, $form_state, $entity_type, $bundle); parent::buildForm($form, $form_state, $entity_type, $bundle);
$this->mode = (isset($mode) ? $mode : 'default'); if (empty($this->mode)) {
$this->mode = 'default';
}
// Gather type information. // Gather type information.
$instances = field_info_instances($this->entity_type, $this->bundle); $instances = field_info_instances($this->entity_type, $this->bundle);
......
...@@ -79,12 +79,7 @@ public function submit(array $form, array &$form_state) { ...@@ -79,12 +79,7 @@ public function submit(array $form, array &$form_state) {
drupal_set_message($this->t('There was a problem removing the %field from the %type content type.', array('%field' => $this->entity->label(), '%type' => $bundle_label)), 'error'); drupal_set_message($this->t('There was a problem removing the %field from the %type content type.', array('%field' => $this->entity->label(), '%type' => $bundle_label)), 'error');
} }
$form_state['redirect_route'] = array( $form_state['redirect_route'] = $this->entityManager->getAdminRouteInfo($this->entity->entity_type, $this->entity->bundle);
'route_name' => 'field_ui.overview_' . $this->entity->entity_type,
'route_parameters' => array(
'bundle' => $this->entity->bundle,
)
);
// Fields are purged on cron. However field module prevents disabling modules // Fields are purged on cron. However field module prevents disabling modules
// when field types they provided are used in a field until it is fully // when field types they provided are used in a field until it is fully
......
...@@ -206,12 +206,7 @@ public function submitForm(array &$form, array &$form_state) { ...@@ -206,12 +206,7 @@ public function submitForm(array &$form, array &$form_state) {
$form_state['redirect'] = $next_destination; $form_state['redirect'] = $next_destination;
} }
else { else {
$form_state['redirect_route'] = array( $form_state['redirect_route'] = $this->entityManager->getAdminRouteInfo($this->instance->entity_type, $this->instance->bundle);
'route_name' => 'field_ui.overview_' . $this->instance->entity_type,
'route_parameters' => array(
'bundle' => $this->instance->bundle,
)
);
} }
} }
catch (\Exception $e) { catch (\Exception $e) {
......
...@@ -193,12 +193,7 @@ public function submitForm(array &$form, array &$form_state) { ...@@ -193,12 +193,7 @@ public function submitForm(array &$form, array &$form_state) {
$form_state['redirect'] = $next_destination; $form_state['redirect'] = $next_destination;
} }