You are here

protected function ThunderNodeForm::actions in Thunder 6.2.x

Same name and namespace in other branches
  1. 8.5 modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
  2. 8.2 modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
  3. 8.3 modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
  4. 8.4 modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
  5. 6.0.x modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
  6. 6.1.x modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
1 call to ThunderNodeForm::actions()
ThunderNodeForm::formAlter in modules/thunder_article/src/Form/ThunderNodeForm.php

File

modules/thunder_article/src/Form/ThunderNodeForm.php, line 145

Class

ThunderNodeForm
Base for handler for node add/edit forms.

Namespace

Drupal\thunder_article\Form

Code

protected function actions($entity) {

  /** @var \Drupal\Core\Entity\ContentEntityStorageInterface $storage */
  $storage = $this->entityTypeManager
    ->getStorage($entity
    ->getEntityTypeId());
  $latest_revision_id = $storage
    ->getLatestTranslationAffectedRevisionId($entity
    ->id(), $entity
    ->language()
    ->getId());
  if ($latest_revision_id == NULL || !$this->moderationInfo || !$this->moderationInfo
    ->isModeratedEntity($entity)) {
    return [];
  }
  $element = [];

  // @todo Remove after seven / thunder_admin support is dropped.
  if (in_array($this->themeManager
    ->getActiveTheme()
    ->getName(), [
    'seven',
    'thunder_admin',
  ])) {

    /** @var \Drupal\content_moderation\ContentModerationState $state */
    $state = $this->moderationInfo
      ->getWorkflowForEntity($entity)
      ->getTypePlugin()
      ->getState($entity->moderation_state->value);
    $element['status'] = [
      '#type' => 'item',
      '#markup' => $entity
        ->isNew() || !$this->moderationInfo
        ->isDefaultRevisionPublished($entity) ? $this
        ->t('of unpublished @entity_type', [
        '@entity_type' => strtolower($entity->type->entity
          ->label()),
      ]) : $this
        ->t('of published @entity_type', [
        '@entity_type' => strtolower($entity->type->entity
          ->label()),
      ]),
      '#weight' => 200,
      '#wrapper_attributes' => [
        'class' => [
          'status',
        ],
      ],
      '#access' => !$state
        ->isDefaultRevisionState(),
    ];
    $element['moderation_state_current'] = [
      '#type' => 'item',
      '#markup' => $state
        ->label(),
      '#weight' => 210,
      '#wrapper_attributes' => [
        'class' => [
          'status',
          $state
            ->id(),
        ],
      ],
    ];
  }
  if ($this->moderationInfo
    ->hasPendingRevision($entity)) {
    $route_info = Url::fromRoute('node.revision_revert_default_confirm', [
      'node' => $entity
        ->id(),
      'node_revision' => $entity
        ->getRevisionId(),
    ]);
    if ($this->request->query
      ->has('destination')) {
      $query = $route_info
        ->getOption('query');
      $query['destination'] = $this->request->query
        ->get('destination');
      $route_info
        ->setOption('query', $query);
    }
    $element['revert_to_default'] = [
      '#type' => 'link',
      '#title' => $this
        ->t('Revert to default revision'),
      '#access' => $this->nodeRevisionAccess
        ->checkAccess($entity, $this->currentUser, 'update'),
      '#weight' => 101,
      '#attributes' => [
        'class' => [
          'button',
          'button--danger',
        ],
      ],
    ];
    $element['revert_to_default']['#url'] = $route_info;
  }
  return $element;
}