diff --git a/page_manager.routing.yml b/page_manager.routing.yml index 1695f48..b695507 100644 --- a/page_manager.routing.yml +++ b/page_manager.routing.yml @@ -118,7 +118,7 @@ page_manager.display_variant_select: requirements: _entity_access: page.update -page_manager.display_variant_add: +entity.page_variant.add_form: path: '/admin/structure/page_manager/manage/{page}/add/{display_variant_id}' defaults: _entity_form: 'page_variant.add' @@ -126,7 +126,23 @@ page_manager.display_variant_add: requirements: # @todo: why doesn't this work? #_entity_access: page.update - _permission: 'administer site configuration' + _permission: 'administer pages' + +entity.page_variant.edit_form: + path: '/admin/structure/page_manager/variant/{page_variant}' + defaults: + _entity_form: 'page_variant.edit' + _title: 'Edit page variant' + requirements: + _entity_access: page_variant.update + +entity.page_variant.delete_form: + path: '/admin/structure/page_variant/variant/{page_variant}/delete' + defaults: + _entity_form: 'page_variant.delete' + _title: 'Delete page variant' + requirements: + _entity_access: page_variant.delete page_manager.display_variant_select_block: path: '/admin/structure/page_manager/variant/{page_variant}/block/select' @@ -193,29 +209,3 @@ page_manager.selection_condition_delete: _title: 'Delete selection condition' requirements: _entity_access: page.update - -#### Page variant entity routes - -entity.page_variant.collection: - path: '/admin/config/system/page_variant' - defaults: - _entity_list: 'page_variant' - _title: 'Page variants' - requirements: - _permission: 'administer site configuration' - -entity.page_variant.edit_form: - path: '/admin/config/system/page_variant/{page_variant}' - defaults: - _entity_form: 'page_variant.edit' - _title: 'Edit page variant' - requirements: - _permission: 'administer site configuration' - -entity.page_variant.delete_form: - path: '/admin/config/system/page_variant/{page_variant}/delete' - defaults: - _entity_form: 'page_variant.delete' - _title: 'Delete page variant' - requirements: - _permission: 'administer site configuration' diff --git a/src/Controller/PageManagerController.php b/src/Controller/PageManagerController.php index 25b6bec..43c3bad 100644 --- a/src/Controller/PageManagerController.php +++ b/src/Controller/PageManagerController.php @@ -206,7 +206,7 @@ class PageManagerController extends ControllerBase { foreach ($this->variantManager->getDefinitions() as $display_variant_id => $display_variant) { $build['#links'][$display_variant_id] = [ 'title' => $display_variant['admin_label'], - 'url' => Url::fromRoute('page_manager.display_variant_add', [ + 'url' => Url::fromRoute('entity.page_variant.add_form', [ 'page' => $page->id(), 'display_variant_id' => $display_variant_id, ]), diff --git a/src/Controller/PageVariantListBuilder.php b/src/Controller/PageVariantListBuilder.php deleted file mode 100644 index 4b9e36b..0000000 --- a/src/Controller/PageVariantListBuilder.php +++ /dev/null @@ -1,36 +0,0 @@ -t('Variant'); - $header['id'] = $this->t('Machine name'); - return $header + parent::buildHeader(); - } - - /** - * {@inheritdoc} - */ - public function buildRow(EntityInterface $entity) { - $row['label'] = $this->getLabel($entity); - $row['id'] = $entity->id(); - // You probably want a few more properties here... - return $row + parent::buildRow($entity); - } - -} diff --git a/src/Entity/PageVariantEntity.php b/src/Entity/PageVariantEntity.php index d5b8b8c..5d90990 100644 --- a/src/Entity/PageVariantEntity.php +++ b/src/Entity/PageVariantEntity.php @@ -19,7 +19,6 @@ use Drupal\page_manager\PageVariantEntityInterface; * id = "page_variant", * label = @Translation("Variant"), * handlers = { - * "list_builder" = "Drupal\page_manager\Controller\PageVariantListBuilder", * "form" = { * "add" = "Drupal\page_manager\Form\PageVariantAddForm", * "edit" = "Drupal\page_manager\Form\PageVariantEditForm", @@ -34,9 +33,8 @@ use Drupal\page_manager\PageVariantEntityInterface; * "uuid" = "uuid" * }, * links = { - * "edit-form" = "/admin/config/system/page_variant/{page_variant}", - * "delete-form" = "/admin/config/system/page_variant/{page_variant}/delete", - * "collection" = "/admin/config/system/page_variant" + * "edit-form" = "/admin/structure/page_manager/variant/{page_variant}", + * "delete-form" = "/admin/structure/page_manager/variant/{page_variant}/delete", * } * ) */ diff --git a/src/Form/PageVariantDeleteForm.php b/src/Form/PageVariantDeleteForm.php index ab2cde0..4bc578b 100644 --- a/src/Form/PageVariantDeleteForm.php +++ b/src/Form/PageVariantDeleteForm.php @@ -26,7 +26,9 @@ class PageVariantDeleteForm extends EntityConfirmFormBase { * {@inheritdoc} */ public function getCancelUrl() { - return new Url('entity.page_variant.collection'); + return new Url('entity.page.edit_form', [ + 'page' => $this->entity->getPage()->id(), + ]); } /**