/**
  * {@inheritdoc}
  */
 protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account)
 {
     if ($operation == 'delete') {
         $field_storage_entity = $entity->getFieldStorageDefinition();
         if ($field_storage_entity->isLocked()) {
             return AccessResult::forbidden()->addCacheableDependency($field_storage_entity);
         } else {
             return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->getTargetEntityTypeId() . ' fields')->addCacheableDependency($field_storage_entity);
         }
     }
     return AccessResult::allowedIfHasPermission($account, 'administer ' . $entity->getTargetEntityTypeId() . ' fields');
 }
예제 #2
0
  /**
   * {@inheritdoc}
   */
  public function cloneEntity(EntityInterface $field_config, EntityInterface $cloned_field_config, $properties = []) {
    /** @var \Drupal\field\Entity\FieldConfig $field_config */
    /** @var \Drupal\field\Entity\FieldConfig $cloned_field_config */
    /** @var \Drupal\field\Entity\FieldStorageConfig $cloned_field_storage */

    if ((!isset($properties['skip_storage']) || !$properties['skip_storage'])) {
      $cloned_field_storage = $field_config->getFieldStorageDefinition()->createDuplicate();
      $cloned_field_storage->set('field_name', $properties['id']);
      $cloned_field_storage->set('id', $properties['id'] . '.' . $cloned_field_storage->getTargetEntityTypeId());
      $cloned_field_storage->save();
    }
    unset($properties['skip_storage']);

    $properties['field_name'] = $properties['id'];
    $properties['id'] = $cloned_field_config->getTargetEntityTypeId() . '.' . $cloned_field_config->getTargetBundle() . '.' . $properties['id'];
    return parent::cloneEntity($field_config, $cloned_field_config, $properties);
  }
 /**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $field_storage)
 {
     if ($field_storage->isLocked()) {
         $row['class'] = array('menu-disabled');
         $row['data']['id'] = $this->t('@field_name (Locked)', array('@field_name' => $field_storage->getName()));
     } else {
         $row['data']['id'] = $field_storage->getName();
     }
     $field_type = $this->fieldTypes[$field_storage->getType()];
     $row['data']['type'] = $this->t('@type (module: @module)', array('@type' => $field_type['label'], '@module' => $field_type['provider']));
     $usage = array();
     foreach ($field_storage->getBundles() as $bundle) {
         $entity_type_id = $field_storage->getTargetEntityTypeId();
         if ($route_info = FieldUI::getOverviewRouteInfo($entity_type_id, $bundle)) {
             $usage[] = \Drupal::l($this->bundles[$entity_type_id][$bundle]['label'], $route_info);
         } else {
             $usage[] = $this->bundles[$entity_type_id][$bundle]['label'];
         }
     }
     $usage_escaped = '';
     $separator = '';
     foreach ($usage as $usage_item) {
         $usage_escaped .= $separator . SafeMarkup::escape($usage_item);
         $separator = ', ';
     }
     $row['data']['usage'] = SafeMarkup::set($usage_escaped);
     return $row;
 }
예제 #4
0
  /**
   * {@inheritdoc}
   */
  public function buildRow(EntityInterface $entity) {
    $row = [
      'data' => [
        'label' => $entity->label(),
        'target_type' => $this->entityManager->getDefinition($entity->getTargetEntityTypeId())->getLabel(),
        'handler' => $entity->getHandlerPlugin()->getPluginDefinition()['title'],
        'items' => $this->getQueueItemsStatus($entity),
      ] + parent::buildRow($entity),
      'title' => $this->t('Machine name: @name', array('@name' => $entity->id())),
    ];

    return $row;
  }
 /**
  * {@inheritdoc}
  */
 public function buildRow(EntityInterface $field_storage)
 {
     if ($field_storage->isLocked()) {
         $row['class'] = array('menu-disabled');
         $row['data']['id'] = $this->t('@field_name (Locked)', array('@field_name' => $field_storage->getName()));
     } else {
         $row['data']['id'] = $field_storage->getName();
     }
     $field_type = $this->fieldTypes[$field_storage->getType()];
     $row['data']['type'] = $this->t('@type (module: @module)', array('@type' => $field_type['label'], '@module' => $field_type['provider']));
     $usage = array();
     foreach ($field_storage->getBundles() as $bundle) {
         $entity_type_id = $field_storage->getTargetEntityTypeId();
         if ($route_info = FieldUI::getOverviewRouteInfo($entity_type_id, $bundle)) {
             $usage[] = \Drupal::l($this->bundles[$entity_type_id][$bundle]['label'], $route_info);
         } else {
             $usage[] = $this->bundles[$entity_type_id][$bundle]['label'];
         }
     }
     $row['data']['usage']['data'] = ['#theme' => 'item_list', '#items' => $usage, '#context' => ['list_style' => 'comma-list']];
     return $row;
 }