class CronJobListBuilder in Ultimate Cron 8.2
Defines a class to build a listing of cron jobs.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Config\Entity\DraggableListBuilder implements FormInterface
- class \Drupal\ultimate_cron\CronJobListBuilder
- class \Drupal\Core\Config\Entity\DraggableListBuilder implements FormInterface
- class \Drupal\Core\Config\Entity\ConfigEntityListBuilder
- class \Drupal\Core\Entity\EntityListBuilder implements EntityHandlerInterface, EntityListBuilderInterface uses MessengerTrait, RedirectDestinationTrait
Expanded class hierarchy of CronJobListBuilder
See also
\Drupal\ultimate_cron\Entity\CronJob
File
- src/
CronJobListBuilder.php, line 13
Namespace
Drupal\ultimate_cronView source
class CronJobListBuilder extends DraggableListBuilder {
/**
* {@inheritdoc}
*/
public function getFormId() {
return 'ultimate_cron_job_list';
}
/**
* {@inheritdoc}
*/
public function buildHeader() {
$header = array();
$header['label'] = array(
'data' => t('Title'),
);
$header['module'] = array(
'data' => t('Module'),
);
$header['scheduled'] = array(
'data' => t('Scheduled'),
);
$header['started'] = array(
'data' => t('Last Run'),
);
$header['duration'] = array(
'data' => t('Duration'),
);
$header['status'] = array(
'data' => t('Status'),
);
return $header + parent::buildHeader();
}
/**
* {@inheritdoc}
*/
public function buildRow(EntityInterface $entity) {
/* @var \Drupal\ultimate_cron\CronJobInterface $entity */
$icon = drupal_get_path('module', 'ultimate_cron') . '/icons/hourglass.png';
$behind_icon = [
'#prefix' => ' ',
'#theme' => 'image',
'#uri' => file_create_url($icon),
'#title' => t('Job is behind schedule!'),
];
$log_entry = $entity
->loadLatestLogEntry();
$row['label'] = $entity
->label();
$row['module']['#markup'] = $entity
->getModuleName();
$row['module']['#wrapper_attributes']['title'] = $entity
->getModuleDescription();
$row['scheduled']['label']['#markup'] = $entity
->getPlugin('scheduler')
->formatLabel($entity);
if ($entity
->isScheduled()) {
$row['scheduled']['behind'] = $behind_icon;
}
// If the start time is 0, the jobs have never been run.
$row['started']['#markup'] = $log_entry->start_time ? \Drupal::service('date.formatter')
->format($log_entry->start_time, "short") : $this
->t('Never');
// Display duration
$progress = $entity
->isLocked() ? $entity
->formatProgress() : '';
$row['duration'] = [
'#markup' => '<span class="duration-time" data-src="' . $log_entry
->getDuration() . '">' . $log_entry
->formatDuration() . '</span> <span class="duration-progress">' . $progress . '</span>',
'#wrapper_attributes' => [
'title' => $log_entry
->formatEndTime(),
],
];
if (!$entity
->isValid()) {
$row['status']['#markup'] = $this
->t('Missing');
}
elseif (!$entity
->status()) {
$row['status']['#markup'] = $this
->t('Disabled');
}
else {
// Get the status from the launcher when running, otherwise use the last
// log entry.
if ($entity
->isLocked() && $log_entry->lid == $entity
->isLocked()) {
list($status, $title) = $entity
->getPlugin('launcher')
->formatRunning($entity);
}
elseif ($log_entry->start_time && !$log_entry->end_time) {
list($status, $title) = $entity
->getPlugin('launcher')
->formatUnfinished($entity);
}
else {
list($status, $title) = $log_entry
->formatSeverity();
$title = $log_entry->message ? $log_entry->message : $title;
}
$row['status'] = $status;
$row['status']['#wrapper_attributes']['title'] = $title;
}
$row += parent::buildRow($entity);
$row['weight']['#delta'] = 50;
return $row;
}
/**
* {@inheritdoc}
*/
public function getDefaultOperations(EntityInterface $entity) {
$operations = parent::getDefaultOperations($entity);
if ($entity
->status() && $entity
->isValid()) {
if (!$entity
->isLocked()) {
$operations += [
'run' => [
'title' => t('Run'),
'weight' => 9,
'url' => $entity
->toUrl('run'),
],
];
}
else {
$operations += [
'unlock' => [
'title' => t('Unlock'),
'weight' => 9,
'url' => $entity
->toUrl('unlock'),
],
];
}
}
$operations += [
'logs' => [
'title' => t('Logs'),
'weight' => 10,
'url' => $entity
->toUrl('logs'),
],
];
// Invalid jobs can not be enabled nor disabled.
if (!$entity
->isValid()) {
unset($operations['disable']);
unset($operations['enable']);
}
return $operations;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ConfigEntityListBuilder:: |
public | function |
Loads entities of this type from storage for listing. Overrides EntityListBuilder:: |
7 |
CronJobListBuilder:: |
public | function |
Builds the header row for the entity listing. Overrides DraggableListBuilder:: |
|
CronJobListBuilder:: |
public | function |
Builds a row for an entity in the entity listing. Overrides DraggableListBuilder:: |
|
CronJobListBuilder:: |
public | function |
Gets this list's default operations. Overrides ConfigEntityListBuilder:: |
|
CronJobListBuilder:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DraggableListBuilder:: |
protected | property | The entities being listed. | 1 |
DraggableListBuilder:: |
protected | property | The key to use for the form element containing the entities. | 3 |
DraggableListBuilder:: |
protected | property | The form builder. | |
DraggableListBuilder:: |
protected | property |
The number of entities to list per page, or FALSE to list all entities. Overrides EntityListBuilder:: |
|
DraggableListBuilder:: |
protected | property | Name of the entity's weight field or FALSE if no field is provided. | |
DraggableListBuilder:: |
public | function |
Form constructor. Overrides FormInterface:: |
4 |
DraggableListBuilder:: |
protected | function | Returns the form builder. | |
DraggableListBuilder:: |
public | function |
Builds the entity listing as renderable array for table.html.twig. Overrides EntityListBuilder:: |
1 |
DraggableListBuilder:: |
public | function |
Form submission handler. Overrides FormInterface:: |
5 |
DraggableListBuilder:: |
public | function |
Form validation handler. Overrides FormInterface:: |
2 |
DraggableListBuilder:: |
public | function |
Constructs a new EntityListBuilder object. Overrides EntityListBuilder:: |
5 |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityListBuilder:: |
protected | property | Information about the entity type. | |
EntityListBuilder:: |
protected | property | The entity type ID. | |
EntityListBuilder:: |
protected | property | The entity storage class. | 1 |
EntityListBuilder:: |
public | function | Builds a renderable list of operation links for the entity. | 2 |
EntityListBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
20 |
EntityListBuilder:: |
protected | function | Ensures that a destination is present on the given URL. | |
EntityListBuilder:: |
protected | function | Loads entity IDs using a pager sorted by the entity id. | 4 |
EntityListBuilder:: |
protected | function | Gets the label of an entity. | |
EntityListBuilder:: |
public | function |
Provides an array of information to build a list of operation links. Overrides EntityListBuilderInterface:: |
2 |
EntityListBuilder:: |
public | function |
Gets the entity storage. Overrides EntityListBuilderInterface:: |
|
EntityListBuilder:: |
protected | function | Gets the title of the page. | 1 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |