You are here

class SkinListBuilder in Skinr 8.2

Returns responses for devel module routes.

Hierarchy

Expanded class hierarchy of SkinListBuilder

File

skinr_ui/src/Controller/SkinListBuilder.php, line 16
Contains \Drupal\skinr_ui\Controller\SkinListBuilder.

Namespace

Drupal\skinr_ui\Controller
View source
class SkinListBuilder extends ConfigEntityListBuilder {

  /**
   * {@inheritdoc}
   */
  public function buildHeader() {
    $header['id'] = array(
      'data' => $this
        ->t('Machine name'),
      'class' => array(
        'skinr-ui-name',
      ),
    );
    $header['element_type'] = array(
      'data' => $this
        ->t('Type'),
      'class' => array(
        'skinr-ui-type',
      ),
    );
    $header['element'] = array(
      'data' => $this
        ->t('Element'),
      'class' => array(
        'skinr-ui-element',
      ),
    );
    $header['theme'] = array(
      'data' => $this
        ->t('Theme'),
      'class' => array(
        'skinr-ui-theme',
      ),
    );
    $header['label'] = array(
      'data' => $this
        ->t('Skin'),
      'class' => array(
        'skinr-ui-skin',
      ),
    );

    // $header['storage'] = array(
    //   'data' => $this->t('Storage'),
    //   'class' => array('skinr-ui-storage'),
    // );
    $header['status'] = array(
      'data' => $this
        ->t('Status'),
      'class' => array(
        'skinr-ui-status',
      ),
    );
    return $header + parent::buildHeader();
  }

  /**
   * {@inheritdoc}
   */
  public function buildRow(EntityInterface $entity) {
    $row['label'] = array(
      'data' => $this
        ->getLabel($entity),
    );
    $row['element_type'] = array(
      'data' => $entity
        ->elementTypeLabel(),
      'class' => array(
        'skin-table-filter-text-source',
      ),
    );
    $row['element'] = array(
      'data' => $entity
        ->elementLabel(),
      'class' => array(
        'skin-table-filter-text-source',
      ),
    );
    $row['theme'] = array(
      'data' => $entity
        ->themeLabel(),
      'class' => array(
        'skin-table-filter-text-source',
      ),
    );
    $row['skin'] = array(
      'data' => $entity
        ->skinLabel(),
      'class' => array(
        'skin-table-filter-text-source',
      ),
    );

    // $row['storage'] = $entity->getStorage();
    $row['status'] = $entity
      ->status() ? t('Enabled') : t('Disabled');
    return $row + parent::buildRow($entity);
  }

  /**
   * {@inheritdoc}
   */
  public function getDefaultOperations(EntityInterface $entity) {

    /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $entity */
    $operations = parent::getDefaultOperations($entity);

    // Override edit link.
    // @todo
    if (isset($operations['edit'])) {

      // dpm($operations['edit']);
    }
    return $operations;
  }

  /**
   * {@inheritdoc}
   */
  public function render() {
    $entities = $this
      ->load();
    $list['#type'] = 'container';
    $list['#attributes']['id'] = 'skin-entity-list';
    $list['#attached']['library'][] = 'core/drupal.ajax';
    $list['#attached']['library'][] = 'skinr_ui/skinr_ui.listing';
    $form['filters'] = array(
      '#type' => 'container',
      '#attributes' => array(
        'class' => array(
          'table-filter',
          'js-show',
        ),
      ),
    );
    $list['filters']['text'] = array(
      '#type' => 'search',
      '#title' => $this
        ->t('Filter'),
      '#title_display' => 'invisible',
      '#size' => 40,
      '#placeholder' => $this
        ->t('Filter by view name or description'),
      '#attributes' => array(
        'class' => array(
          'skin-filter-text',
        ),
        'data-table' => '.skin-listing-table',
        'autocomplete' => 'off',
        'title' => $this
          ->t('Enter a part of the skin name or description to filter by.'),
      ),
    );
    $list['enabled']['heading']['#markup'] = '<h2>' . $this
      ->t('Enabled', array(), array(
      'context' => 'Plural',
    )) . '</h2>';
    $list['disabled']['heading']['#markup'] = '<h2>' . $this
      ->t('Disabled', array(), array(
      'context' => 'Plural',
    )) . '</h2>';
    foreach (array(
      'enabled',
      'disabled',
    ) as $status) {
      $list[$status]['#type'] = 'container';
      $list[$status]['#attributes'] = array(
        'class' => array(
          'skin-list-section',
          $status,
        ),
      );
      $list[$status]['table'] = array(
        '#type' => 'table',
        '#attributes' => array(
          'class' => array(
            'skin-listing-table',
          ),
        ),
        '#header' => $this
          ->buildHeader(),
        '#rows' => array(),
      );
      foreach ($entities as $entity) {
        if ($entity
          ->status() != ($status == 'enabled' ? TRUE : FALSE)) {
          continue;
        }
        $list[$status]['table']['#rows'][$entity
          ->id()] = $this
          ->buildRow($entity);
      }
    }

    // @todo Use a placeholder for the entity label if this is abstracted to
    // other entity types.
    $list['enabled']['table']['#empty'] = $this
      ->t('There are no enabled skins.');
    $list['disabled']['table']['#empty'] = $this
      ->t('There are no disabled skins.');
    return $list;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ConfigEntityListBuilder::load public function Loads entities of this type from storage for listing. Overrides EntityListBuilder::load 7
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::__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.
SkinListBuilder::buildHeader public function Builds the header row for the entity listing. Overrides EntityListBuilder::buildHeader
SkinListBuilder::buildRow public function Builds a row for an entity in the entity listing. Overrides EntityListBuilder::buildRow
SkinListBuilder::getDefaultOperations public function Gets this list's default operations. Overrides ConfigEntityListBuilder::getDefaultOperations
SkinListBuilder::render public function Builds the entity listing as renderable array for table.html.twig. Overrides EntityListBuilder::render
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.