You are here

class ContentModerationNotificationsListBuilder in Content Moderation Notifications 8.3

Same name and namespace in other branches
  1. 8 src/Controller/ContentModerationNotificationsListBuilder.php \Drupal\content_moderation_notifications\Controller\ContentModerationNotificationsListBuilder
  2. 8.2 src/Controller/ContentModerationNotificationsListBuilder.php \Drupal\content_moderation_notifications\Controller\ContentModerationNotificationsListBuilder

Provides a listing of content_moderation_notification entities.

List Controllers provide a list of entities in a tabular form. The base class provides most of the rendering logic for us. The key functions we need to override are buildHeader() and buildRow(). These control what columns are displayed in the table, and how each row is displayed respectively.

Drupal locates the list controller by looking for the "list" entry under "controllers" in our entity type's annotation. We define the path on which the list may be accessed in our module's *.routing.yml file. The key entry to look for is "_entity_list". In *.routing.yml, "_entity_list" specifies an entity type ID. When a user navigates to the URL for that router item, Drupal loads the annotation for that entity type. It looks for the "list" entry under "controllers" for the class to load.

@package Drupal\content_moderation_notifications\Controller

Hierarchy

Expanded class hierarchy of ContentModerationNotificationsListBuilder

File

src/Controller/ContentModerationNotificationsListBuilder.php, line 29

Namespace

Drupal\content_moderation_notifications\Controller
View source
class ContentModerationNotificationsListBuilder extends ConfigEntityListBuilder {

  /**
   * Builds the header row for the entity listing.
   *
   * @return array
   *   A render array structure of header strings.
   *
   * @see Drupal\Core\Entity\EntityListController::render()
   */
  public function buildHeader() {
    $header['label'] = $this
      ->t('Label');
    $header['workflow'] = $this
      ->t('Workflow');
    $header['status'] = $this
      ->t('Status');
    $header['transition'] = $this
      ->t('Transitions');
    $header['roles'] = $this
      ->t('Email Roles');
    $header['author'] = $this
      ->t('Email Author');
    $header['emails'] = $this
      ->t('Adhoc Emails');
    return $header + parent::buildHeader();
  }

  /**
   * Builds a row for an entity in the entity listing.
   *
   * @param \Drupal\Core\Entity\EntityInterface $entity
   *   The entity for which to build the row.
   *
   * @return array
   *   A render array of the table row for displaying the entity.
   *
   * @see Drupal\Core\Entity\EntityListController::render()
   */
  public function buildRow(EntityInterface $entity) {

    // Load the workflow @todo change to dependency injection.

    /** @var \Drupal\workflows\WorkflowInterface $workflow */
    $workflow = \Drupal::entityTypeManager()
      ->getStorage('workflow')
      ->load($entity->workflow);

    // Load the transitions in this workflow.
    $workflow_transitions = $workflow
      ->getTypePlugin()
      ->getTransitions();
    $row = [];

    // Array of transitions used in each row.
    $transition_strings = [];

    // Loop through the saved transitions.
    if ($entity->transitions) {
      $transitions = array_keys(array_filter($entity->transitions));
    }
    foreach ($transitions as $transition) {
      if (!empty($workflow_transitions[$transition])) {
        $transition_strings[] = $workflow_transitions[$transition]
          ->label();
      }
    }
    $row['label'] = $entity
      ->label();
    $row['workflow'] = $workflow
      ->label();
    $row['status'] = $entity
      ->status() ? $this
      ->t('Enabled') : $this
      ->t('Disabled');
    $row['transition'] = implode(', ', $transition_strings);
    $roles = [];
    if ($entity->roles) {
      $roles = array_keys(array_filter($entity->roles));
    }
    $row['roles'] = implode(', ', $roles);
    $row['author'] = $entity->author ? $this
      ->t('Yes') : $this
      ->t('No');
    $row['emails'] = $entity->emails;
    return $row + parent::buildRow($entity);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigEntityListBuilder::getDefaultOperations public function Gets this list's default operations. Overrides EntityListBuilder::getDefaultOperations 15
ConfigEntityListBuilder::load public function Loads entities of this type from storage for listing. Overrides EntityListBuilder::load 7
ContentModerationNotificationsListBuilder::buildHeader public function Builds the header row for the entity listing. Overrides EntityListBuilder::buildHeader
ContentModerationNotificationsListBuilder::buildRow public function Builds a row for an entity in the entity listing. Overrides EntityListBuilder::buildRow
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
EntityHandlerBase::$moduleHandler protected property The module handler to invoke hooks on. 2
EntityHandlerBase::moduleHandler protected function Gets the module handler. 2
EntityHandlerBase::setModuleHandler public function Sets the module handler for this handler.
EntityListBuilder::$entityType protected property Information about the entity type.
EntityListBuilder::$entityTypeId protected property The entity type ID.
EntityListBuilder::$limit protected property The number of entities to list per page, or FALSE to list all entities. 3
EntityListBuilder::$storage protected property The entity storage class. 1
EntityListBuilder::buildOperations public function Builds a renderable list of operation links for the entity. 2
EntityListBuilder::createInstance public static function Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface::createInstance 20
EntityListBuilder::ensureDestination protected function Ensures that a destination is present on the given URL.
EntityListBuilder::getEntityIds protected function Loads entity IDs using a pager sorted by the entity id. 4
EntityListBuilder::getLabel Deprecated protected function Gets the label of an entity.
EntityListBuilder::getOperations public function Provides an array of information to build a list of operation links. Overrides EntityListBuilderInterface::getOperations 2
EntityListBuilder::getStorage public function Gets the entity storage. Overrides EntityListBuilderInterface::getStorage
EntityListBuilder::getTitle protected function Gets the title of the page. 1
EntityListBuilder::render public function Builds the entity listing as renderable array for table.html.twig. Overrides EntityListBuilderInterface::render 16
EntityListBuilder::__construct public function Constructs a new EntityListBuilder object. 16
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
RedirectDestinationTrait::$redirectDestination protected property The redirect destination service. 1
RedirectDestinationTrait::getDestinationArray protected function Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url.
RedirectDestinationTrait::getRedirectDestination protected function Returns the redirect destination service.
RedirectDestinationTrait::setRedirectDestination public function Sets the redirect destination service.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.