class WorkflowTransitionListController in Workflow 8
Defines a controller to list Transition on entity's Workflow history tab.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Entity\Controller\EntityListController
- class \Drupal\workflow\Controller\WorkflowTransitionListController implements ContainerInjectionInterface
- class \Drupal\Core\Entity\Controller\EntityListController
Expanded class hierarchy of WorkflowTransitionListController
File
- src/
Controller/ WorkflowTransitionListController.php, line 18
Namespace
Drupal\workflow\ControllerView source
class WorkflowTransitionListController extends EntityListController implements ContainerInjectionInterface {
/**
* The date formatter service.
*
* @var \Drupal\Core\Datetime\DateFormatter
*/
protected $dateFormatter;
/**
* The module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* The renderer service.
*
* @var \Drupal\Core\Render\RendererInterface
*/
protected $renderer;
/**
* Constructs an object.
*
* @param \Drupal\Core\Datetime\DateFormatter $date_formatter
* The date formatter service.
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* The module handler service.
* @param \Drupal\Core\Render\RendererInterface $renderer
* The renderer service.
*/
public function __construct(DateFormatter $date_formatter, ModuleHandlerInterface $module_handler, RendererInterface $renderer) {
// These parameters are taken from some random other controller.
$this->dateFormatter = $date_formatter;
$this->moduleHandler = $module_handler;
$this->renderer = $renderer;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('date.formatter'), $container
->get('module_handler'), $container
->get('renderer'));
}
/**
* Shows a list of an entity's state transitions, but only if WorkflowHistoryAccess::access() allows it.
*
* @param \Drupal\Core\Entity\EntityInterface $node
* A node object.
*
* @return array
* An array as expected by drupal_render().
*/
public function historyOverview(EntityInterface $node = NULL) {
$form = [];
// @todo D8: make Workflow History tab happen for every entity_type.
// For workflow_tab_page with multiple workflows, use a separate view. See [#2217291].
// @see workflow.routing.yml, workflow.links.task.yml, WorkflowTransitionListController.
// workflow_debug(__FILE__, __FUNCTION__, __LINE__); // @todo D8: test this snippet.
// ATM it only works for Nodes and Terms.
// This is a hack. The Route should always pass an object.
// On view tab, $entity is object,
// On workflow tab, $entity is id().
// Get the entity for this form.
if (!($entity = workflow_url_get_entity($node))) {
return $form;
}
/*
* Get derived data from parameters.
*/
if (!($field_name = workflow_get_field_name($entity, workflow_url_get_field_name()))) {
return $form;
}
/*
* Step 1: generate the Transition Form.
*/
// Add the WorkflowTransitionForm to the page.
$form = WorkflowManager::getWorkflowTransitionForm($entity, $field_name, []);
/*
* Step 2: generate the Transition History List.
*/
$view = NULL;
if ($this->moduleHandler
->moduleExists('views')) {
$view = Views::getView('workflow_entity_history');
if (is_object($view) && $view->storage
->status()) {
// Add the history list from configured Views display.
$args = [
$entity
->id(),
];
$view
->setArguments($args);
$view
->setDisplay('workflow_history_tab');
$view
->preExecute();
$view
->execute();
$form['table'] = $view
->buildRenderable();
}
}
if (!is_object($view)) {
// @deprecated. Use the Views display above.
// Add the history list from programmed WorkflowTransitionListController.
$entity_type = 'workflow_transition';
$list_builder = $this
->entityTypeManager()
->getListBuilder($entity_type);
// Add the Node explicitly, since $list_builder expects a Transition.
$list_builder->workflow_entity = $entity;
$form += $list_builder
->render();
}
/*
* Finally: sort the elements (overriding their weight).
*/
$form['actions']['#weight'] = 100;
$form['table']['#weight'] = 201;
return $form;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
EntityListController:: |
public | function | Provides the listing page for any entity type. | 2 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
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. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. | |
WorkflowTransitionListController:: |
protected | property | The date formatter service. | |
WorkflowTransitionListController:: |
protected | property |
The module handler service. Overrides ControllerBase:: |
|
WorkflowTransitionListController:: |
protected | property | The renderer service. | |
WorkflowTransitionListController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
WorkflowTransitionListController:: |
public | function | Shows a list of an entity's state transitions, but only if WorkflowHistoryAccess::access() allows it. | |
WorkflowTransitionListController:: |
public | function | Constructs an object. |