WorkflowConfigTransitionLabelForm.php in Workflow 8
File
src/Form/WorkflowConfigTransitionLabelForm.php
View source
<?php
namespace Drupal\workflow\Form;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Form\FormStateInterface;
class WorkflowConfigTransitionLabelForm extends WorkflowConfigTransitionFormBase {
protected $entitiesKey = 'workflow_config_transition';
protected $type = 'label';
public function buildHeader() {
$header = [
'from' => $this
->t('Transition from'),
'to' => $this
->t('Transition to'),
'label_new' => $this
->t('label'),
'config_transition' => '',
];
return $header;
}
public function buildRow(EntityInterface $entity) {
$row = [];
$workflow = $this->workflow;
if ($workflow) {
$config_transition = $entity;
static $previous_from_sid = -1;
$from_state = $config_transition
->getFromState();
$to_state = $config_transition
->getToState();
$from_sid = $from_state
->id();
$skip = TRUE;
foreach ($config_transition->roles as $rid => $active) {
if ($active) {
$skip = FALSE;
}
}
if ($skip == TRUE && $from_state != $to_state) {
return $row;
}
$row['from'] = [
'#type' => 'value',
'#markup' => $previous_from_sid != $from_sid ? $from_state
->label() : '"',
];
$row['to'] = [
'#type' => 'value',
'#markup' => $to_state
->label(),
];
$row['label_new'] = [
'#type' => 'textfield',
'#default_value' => $config_transition
->get('label'),
];
$row['config_transition'] = [
'#type' => 'value',
'#value' => $config_transition,
];
$previous_from_sid = $from_sid;
}
return $row;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
foreach ($form_state
->getValue($this->entitiesKey) as $value) {
$new_label = trim($value['label_new']);
$value['config_transition']
->set('label', $new_label)
->save();
}
$this
->messenger()
->addStatus($this
->t('The transition labels have been saved.'));
}
}