You are here

public function CronConfigForm::buildForm in Commerce Stock 8

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 ConfigFormBase::buildForm

File

modules/local_storage/src/Form/CronConfigForm.php, line 37

Class

CronConfigForm
Class CronConfigForm.

Namespace

Drupal\commerce_stock_local\Form

Code

public function buildForm(array $form, FormStateInterface $form_state) {
  $cron_config = $this
    ->config('commerce_stock_local.cron');
  $trns_config = $this
    ->config('commerce_stock_local.transactions');

  // Transaction handling.
  $form['transactions'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Transaction handling'),
    '#collapsible' => FALSE,
    '#collapsed' => FALSE,
  ];
  $form['transactions']['aggregation_mode'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Stock aggregation mode'),
    '#options' => [
      'cron' => 'Cron',
      'real-time' => 'Real-time',
    ],
    //'#description' => $this->t('@todo.'),
    '#default_value' => $trns_config
      ->get('transactions_aggregation_mode'),
  ];
  $form['transactions']['transactions_retention'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Transactions retention'),
    '#options' => [
      'keep' => 'Keep all',
      'delete' => 'Delete unused',
    ],
    '#description' => $this
      ->t('Warning: If you set to "Delete unused" you will have no log of your transactions.'),
    '#default_value' => $trns_config
      ->get('transactions_retention'),
  ];

  // Cron configurations.
  $form['cron'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Legacy settings'),
    '#collapsible' => FALSE,
    '#collapsed' => FALSE,
  ];
  $form['cron']['cron_run_mode'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('Cron run mode'),
    '#options' => [
      'optimal' => 'Optimal',
      'legacy' => 'Legacy/Full',
    ],
    '#description' => $this
      ->t('Optimal - will only update the stats of products with new transactions. Legacy/Full - is the old way of updating stats and will go through all products regardless of their changed state.'),
    '#default_value' => $cron_config
      ->get('cron_run_mode'),
  ];
  $form['cron']['update_interval'] = [
    '#type' => 'number',
    '#title' => $this
      ->t('Update interval'),
    '#description' => $this
      ->t('The number of seconds to wait between each cron operation. Set to Zero to run each time cron runs.'),
    '#default_value' => $cron_config
      ->get('update_interval'),
    '#weight' => '0',
  ];

  // Cron legacy settings.
  $form['cron']['legacy'] = [
    '#type' => 'fieldset',
    '#title' => $this
      ->t('Legacy settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  ];
  $form['cron']['legacy']['update_batch_size'] = [
    '#type' => 'number',
    '#title' => $this
      ->t('Update batch size'),
    '#default_value' => $cron_config
      ->get('update_batch_size'),
    '#weight' => '0',
  ];
  $form['cron']['legacy']['update_batch_size'] = [
    '#type' => 'number',
    '#title' => $this
      ->t('Update batch size'),
    '#default_value' => $cron_config
      ->get('update_batch_size'),
    '#weight' => '0',
  ];
  $form['cron']['legacy']['reset_update_last_id'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Reset Last processed ID'),
    '#description' => $this
      ->t('This will cause cron to start from the first product.'),
    '#default_value' => FALSE,
  ];
  return parent::buildForm($form, $form_state);
}