You are here

function monitoring_mail_form_monitoring_settings_alter in Monitoring 8

Implements hook_form_FORM_ID_alter().

File

modules/monitoring_mail/monitoring_mail.module, line 154
Monitoring Mail bootstrap file.

Code

function monitoring_mail_form_monitoring_settings_alter(&$form, FormStateInterface $form_state) {
  $config = \Drupal::config('monitoring_mail.settings');

  // Notification mail recipient.
  $form['mail'] = [
    '#type' => 'fieldset',
    '#title' => t('Mail notifications'),
    '#description' => t('Notify on sensor status change.'),
  ];
  $form['mail']['mail'] = [
    '#type' => 'email',
    '#title' => t('Mail recipient'),
    '#maxlength' => 255,
    '#default_value' => $config
      ->get('mail'),
  ];

  // Show warning if there is no logging.
  if (\Drupal::config('monitoring.settings')
    ->get('sensor_call_logging') == 'none') {

    // If logging is disabled, we can't track changes. A mail is not triggered.
    $form['mail']['message'] = [
      '#type' => 'container',
      '#markup' => t('With logging disabled, mails are not triggered.'),
      '#attributes' => [
        'class' => [
          'messages messages--warning',
        ],
      ],
    ];
  }

  // Severity checkboxes.
  $options = SensorResult::getStatusLabels();
  $form['mail']['severities'] = [
    '#type' => 'checkboxes',
    '#default_value' => (array) $config
      ->get('severities'),
    '#options' => $options,
    '#title' => t('Mail on status change from / to'),
    '#description' => t('A backtrace is logged for all severities that are checked.'),
  ];
  $form['#submit'][] = 'monitoring_mail_form_monitoring_settings_submit';
}