You are here

protected function ThunderNodeForm::actions in Thunder 8.3

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.4 modules/thunder_article/src/Form/ThunderNodeForm.php \Drupal\thunder_article\Form\ThunderNodeForm::actions()
  4. 6.2.x 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 129

Class

ThunderNodeForm
Base for handler for node add/edit forms.

Namespace

Drupal\thunder_article\Form

Code

protected function actions($entity) {
  $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 [];
  }
  $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;
}