You are here

public function Select2Boxes::buildConfigurationForm in Select2 Boxes 8

File

modules/select2_bef/src/Plugin/better_exposed_filters/filter/Select2Boxes.php, line 49

Class

Select2Boxes
Default widget implementation.

Namespace

Drupal\select2_bef\Plugin\better_exposed_filters\filter

Code

public function buildConfigurationForm(array $form, FormStateInterface $form_state) {

  /** @var \Drupal\views\Plugin\views\filter\FilterPluginBase $filter */
  $filter = $this->handler;
  $filter_id = $this
    ->getExposedFilterFieldId();
  $form = parent::buildConfigurationForm($form, $form_state);
  if (empty($filter->options['expose']['multiple'])) {
    $form['advanced']['limited_search'] = [
      '#type' => 'checkbox',
      '#title' => $this
        ->t('Limit search box visibility by list length'),
      '#default_value' => !empty($this->configuration['advanced']['limited_search']),
      '#weight' => 10,
    ];
    $form['advanced']['minimum_search_length'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Minimum list length'),
      '#default_value' => $this->configuration['advanced']['minimum_search_length'],
      '#weight' => 11,
      '#states' => [
        'visible' => [
          [
            ':input[name="exposed_form_options[bef][filter][' . $filter_id . '][configuration][advanced][limited_search]"]' => [
              'checked' => TRUE,
            ],
          ],
        ],
      ],
    ];
  }

  // Include the flags icons if available.
  $this
    ->addIncludeIconsOption($form, $filter);
  return $form;
}