public function MessageListForm::buildForm in RNG - Events and Registrations 8
Same name and namespace in other branches
- 8.2 src/Form/MessageListForm.php \Drupal\rng\Form\MessageListForm::buildForm()
- 3.x src/Form/MessageListForm.php \Drupal\rng\Form\MessageListForm::buildForm()
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides FormInterface::buildForm
File
- src/
Form/ MessageListForm.php, line 97
Class
- MessageListForm
- Creates message list form.
Namespace
Drupal\rng\FormCode
public function buildForm(array $form, FormStateInterface $form_state, EntityInterface $rng_event = NULL) {
$form['#rng_event'] = $rng_event;
// @todo: move trigger definitions to a discovery service.
$rng_triggers = [
'entity:registration:new' => $this
->t('Registration creation'),
'entity:registration:update' => $this
->t('Registration updated'),
'rng:custom:date' => $this
->t('Send on a date'),
];
// Actions.
$form['actions'] = [
'#type' => 'details',
'#title' => $this
->t('Operations'),
'#attributes' => [
'class' => [
'container-inline',
],
],
'#open' => TRUE,
];
$form['actions']['operation'] = [
'#title' => $this
->t('With selection'),
'#type' => 'select',
'#options' => [
'enable' => $this
->t('Enable messages'),
'disable' => $this
->t('Disable messages'),
'delete' => $this
->t('Delete messages'),
],
'#empty_option' => $this
->t(' - Select - '),
'#button_type' => 'primary',
];
$form['actions']['apply'] = [
'#type' => 'submit',
'#value' => $this
->t('Apply'),
'#button_type' => 'primary',
];
// List items.
$form['list'] = [
'#type' => 'courier_template_collection_list',
'#checkboxes' => TRUE,
'#items' => [],
];
foreach ($this
->getCommunicationRules($form['#rng_event']) as $rid => $rule) {
$trigger_id = $rule
->getTriggerID();
if ($template_collection = $this
->getTemplateCollectionForRule($rule)) {
// Add description for date conditions.
$description = NULL;
if ($component = $this
->getDateCondition($rule)) {
$condition = $component
->createInstance();
$description = $condition
->getDateFormatted();
}
$form['list']['#items'][$rule
->id()] = [
'#title' => $this
->t('@label (@status)', [
'@label' => isset($rng_triggers[$trigger_id]) ? $rng_triggers[$trigger_id] : $trigger_id,
'@status' => $rule
->isActive() ? $this
->t('active') : $this
->t('disabled'),
]),
'#description' => $description,
'#template_collection' => $template_collection,
'#operations' => $this
->getOperations($rule),
];
}
}
return $form;
}