MappedObjectList.php in Salesforce Suite 5.0.x
File
modules/salesforce_mapping_ui/src/MappedObjectList.php
View source
<?php
namespace Drupal\salesforce_mapping_ui;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Entity\EntityListBuilder;
use Drupal\Core\Entity\EntityStorageInterface;
use Drupal\Core\Routing\UrlGeneratorInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class MappedObjectList extends EntityListBuilder {
protected $urlGenerator;
protected $entityIds;
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container
->get('entity_type.manager')
->getStorage($entity_type
->id()), $container
->get('url_generator'));
}
public function __construct(EntityTypeInterface $entity_type, EntityStorageInterface $storage, UrlGeneratorInterface $url_generator) {
parent::__construct($entity_type, $storage);
$this->urlGenerator = $url_generator;
}
public function render() {
$build['description'] = [
'#markup' => $this
->t('Manage the fields on the <a href="@adminlink">Mappings</a>.', [
'@adminlink' => $this->urlGenerator
->generateFromRoute('entity.salesforce_mapping.list'),
]),
];
$build['table'] = parent::render();
return $build;
}
public function buildHeader() {
$header['id'] = [
'data' => $this
->t('ID'),
'class' => [
RESPONSIVE_PRIORITY_LOW,
],
];
$header['mapped_entity'] = $this
->t('Entity');
$header['salesforce_link'] = $this
->t('Salesforce Record');
$header['mapping'] = [
'data' => $this
->t('Mapping'),
'class' => [
RESPONSIVE_PRIORITY_MEDIUM,
],
];
$header['changed'] = [
'data' => $this
->t('Last Updated'),
'class' => [
RESPONSIVE_PRIORITY_LOW,
],
];
return $header + parent::buildHeader();
}
public function buildRow(EntityInterface $entity) {
$row['id'] = $entity
->id();
$row['mapped_entity']['data'] = $entity->drupal_entity
->first()
->view();
$row['salesforce_link']['data'] = $entity->salesforce_link
->first()
->view();
$row['mapping']['data'] = $entity->salesforce_mapping
->first()
->view();
$row['changed'] = \Drupal::service('date.formatter')
->format($entity->changed->value);
return $row + parent::buildRow($entity);
}
public function getOperations(EntityInterface $entity) {
$operations['view'] = [
'title' => $this
->t('View'),
'weight' => -100,
'url' => $entity
->toUrl(),
];
$operations += parent::getDefaultOperations($entity);
return $operations;
}
public function setEntityIds(array $ids) {
$this->entityIds = $ids;
return $this;
}
protected function getEntityIds() {
if (!empty($this->entityIds)) {
return $this->entityIds;
}
return parent::getEntityIds();
}
}