You are here

class MerciLineItemHtmlRouteProvider in MERCI (Manage Equipment Reservations, Checkout and Inventory) 8.2

Provides routes for Merci Line Item entities.

Hierarchy

Expanded class hierarchy of MerciLineItemHtmlRouteProvider

See also

Drupal\Core\Entity\Routing\AdminHtmlRouteProvider

Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider

File

modules/merci_line_item/src/MerciLineItemHtmlRouteProvider.php, line 15

Namespace

Drupal\merci_line_item
View source
class MerciLineItemHtmlRouteProvider extends AdminHtmlRouteProvider {

  /**
   * {@inheritdoc}
   */
  public function getRoutes(EntityTypeInterface $entity_type) {
    $collection = parent::getRoutes($entity_type);
    $entity_type_id = $entity_type
      ->id();
    if ($collection_route = $this
      ->getCollectionRoute($entity_type)) {
      $collection
        ->add("entity.{$entity_type_id}.collection", $collection_route);
    }
    if ($history_route = $this
      ->getHistoryRoute($entity_type)) {
      $collection
        ->add("entity.{$entity_type_id}.version_history", $history_route);
    }
    if ($revision_route = $this
      ->getRevisionRoute($entity_type)) {
      $collection
        ->add("entity.{$entity_type_id}.revision", $revision_route);
    }
    if ($revert_route = $this
      ->getRevisionRevertRoute($entity_type)) {
      $collection
        ->add("entity.{$entity_type_id}.revision_revert", $revert_route);
    }
    if ($delete_route = $this
      ->getRevisionDeleteRoute($entity_type)) {
      $collection
        ->add("entity.{$entity_type_id}.revision_delete", $delete_route);
    }
    if ($translation_route = $this
      ->getRevisionTranslationRevertRoute($entity_type)) {
      $collection
        ->add("{$entity_type_id}.revision_revert_translation_confirm", $translation_route);
    }
    if ($settings_form_route = $this
      ->getSettingsFormRoute($entity_type)) {
      $collection
        ->add("{$entity_type_id}.settings", $settings_form_route);
    }
    return $collection;
  }

  /**
   * Gets the collection route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getCollectionRoute(EntityTypeInterface $entity_type) {
    if ($entity_type
      ->hasLinkTemplate('collection') && $entity_type
      ->hasListBuilderClass()) {
      $entity_type_id = $entity_type
        ->id();
      $route = new Route($entity_type
        ->getLinkTemplate('collection'));
      $route
        ->setDefaults([
        '_entity_list' => $entity_type_id,
        '_title' => "{$entity_type->getLabel()} list",
      ])
        ->setRequirement('_permission', 'access merci line item overview')
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

  /**
   * Gets the version history route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getHistoryRoute(EntityTypeInterface $entity_type) {
    if ($entity_type
      ->hasLinkTemplate('version-history')) {
      $route = new Route($entity_type
        ->getLinkTemplate('version-history'));
      $route
        ->setDefaults([
        '_title' => "{$entity_type->getLabel()} revisions",
        '_controller' => '\\Drupal\\merci_line_item\\Controller\\MerciLineItemController::revisionOverview',
      ])
        ->setRequirement('_permission', 'access merci line item revisions')
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

  /**
   * Gets the revision route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getRevisionRoute(EntityTypeInterface $entity_type) {
    if ($entity_type
      ->hasLinkTemplate('revision')) {
      $route = new Route($entity_type
        ->getLinkTemplate('revision'));
      $route
        ->setDefaults([
        '_controller' => '\\Drupal\\merci_line_item\\Controller\\MerciLineItemController::revisionShow',
        '_title_callback' => '\\Drupal\\merci_line_item\\Controller\\MerciLineItemController::revisionPageTitle',
      ])
        ->setRequirement('_permission', 'access merci line item revisions')
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

  /**
   * Gets the revision revert route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getRevisionRevertRoute(EntityTypeInterface $entity_type) {
    if ($entity_type
      ->hasLinkTemplate('revision_revert')) {
      $route = new Route($entity_type
        ->getLinkTemplate('revision_revert'));
      $route
        ->setDefaults([
        '_form' => '\\Drupal\\merci_line_item\\Form\\MerciLineItemRevisionRevertForm',
        '_title' => 'Revert to earlier revision',
      ])
        ->setRequirement('_permission', 'revert all merci line item revisions')
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

  /**
   * Gets the revision delete route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getRevisionDeleteRoute(EntityTypeInterface $entity_type) {
    if ($entity_type
      ->hasLinkTemplate('revision_delete')) {
      $route = new Route($entity_type
        ->getLinkTemplate('revision_delete'));
      $route
        ->setDefaults([
        '_form' => '\\Drupal\\merci_line_item\\Form\\MerciLineItemRevisionDeleteForm',
        '_title' => 'Delete earlier revision',
      ])
        ->setRequirement('_permission', 'delete all merci line item revisions')
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

  /**
   * Gets the revision translation revert route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getRevisionTranslationRevertRoute(EntityTypeInterface $entity_type) {
    if ($entity_type
      ->hasLinkTemplate('translation_revert')) {
      $route = new Route($entity_type
        ->getLinkTemplate('translation_revert'));
      $route
        ->setDefaults([
        '_form' => '\\Drupal\\merci_line_item\\Form\\MerciLineItemRevisionRevertTranslationForm',
        '_title' => 'Revert to earlier revision of a translation',
      ])
        ->setRequirement('_permission', 'revert all merci line item revisions')
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

  /**
   * Gets the settings form route.
   *
   * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
   *   The entity type.
   *
   * @return \Symfony\Component\Routing\Route|null
   *   The generated route, if available.
   */
  protected function getSettingsFormRoute(EntityTypeInterface $entity_type) {
    if (!$entity_type
      ->getBundleEntityType()) {
      $route = new Route("/admin/merci/{$entity_type->id()}/settings");
      $route
        ->setDefaults([
        '_form' => 'Drupal\\merci_line_item\\Form\\MerciLineItemSettingsForm',
        '_title' => "{$entity_type->getLabel()} settings",
      ])
        ->setRequirement('_permission', $entity_type
        ->getAdminPermission())
        ->setOption('_admin_route', TRUE);
      return $route;
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AdminHtmlRouteProvider::getAddFormRoute protected function Gets the add-form route. Overrides DefaultHtmlRouteProvider::getAddFormRoute
AdminHtmlRouteProvider::getAddPageRoute protected function Gets the add page route. Overrides DefaultHtmlRouteProvider::getAddPageRoute
AdminHtmlRouteProvider::getDeleteFormRoute protected function Gets the delete-form route. Overrides DefaultHtmlRouteProvider::getDeleteFormRoute
AdminHtmlRouteProvider::getDeleteMultipleFormRoute protected function Returns the delete multiple form route. Overrides DefaultHtmlRouteProvider::getDeleteMultipleFormRoute
AdminHtmlRouteProvider::getEditFormRoute protected function Gets the edit-form route. Overrides DefaultHtmlRouteProvider::getEditFormRoute 1
DefaultHtmlRouteProvider::$entityFieldManager protected property The entity field manager.
DefaultHtmlRouteProvider::$entityTypeManager protected property The entity type manager.
DefaultHtmlRouteProvider::createInstance public static function Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface::createInstance 1
DefaultHtmlRouteProvider::getCanonicalRoute protected function Gets the canonical route. 3
DefaultHtmlRouteProvider::getEntityTypeIdKeyType protected function Gets the type of the ID key for a given entity type. 1
DefaultHtmlRouteProvider::__construct public function Constructs a new DefaultHtmlRouteProvider. 1
MerciLineItemHtmlRouteProvider::getCollectionRoute protected function Gets the collection route. Overrides DefaultHtmlRouteProvider::getCollectionRoute
MerciLineItemHtmlRouteProvider::getHistoryRoute protected function Gets the version history route.
MerciLineItemHtmlRouteProvider::getRevisionDeleteRoute protected function Gets the revision delete route.
MerciLineItemHtmlRouteProvider::getRevisionRevertRoute protected function Gets the revision revert route.
MerciLineItemHtmlRouteProvider::getRevisionRoute protected function Gets the revision route.
MerciLineItemHtmlRouteProvider::getRevisionTranslationRevertRoute protected function Gets the revision translation revert route.
MerciLineItemHtmlRouteProvider::getRoutes public function Provides routes for entities. Overrides DefaultHtmlRouteProvider::getRoutes
MerciLineItemHtmlRouteProvider::getSettingsFormRoute protected function Gets the settings form route.