Autosubmit.php in Brainstorm profile 8
File
module/custom/views_filter_autosubmit/src/Plugin/views/exposed_form/Autosubmit.php
View source
<?php
namespace Drupal\views_filter_autosubmit\Plugin\views\exposed_form;
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Plugin\views\exposed_form\ExposedFormPluginBase;
class Autosubmit extends ExposedFormPluginBase {
protected function defineOptions() {
return parent::defineOptions();
$options['autosubmit_hide'] = [
'default' => TRUE,
];
return $options;
}
public function buildOptionsForm(&$form, FormStateInterface $form_state) {
parent::buildOptionsForm($form, $form_state);
$form['autosubmit_hide'] = [
'#type' => 'checkbox',
'#title' => t('Hide submit button'),
'#description' => t('Hide submit button if javascript is enabled.'),
'#default_value' => $this->options['autosubmit_hide'],
];
}
public function exposedFormAlter(&$form, FormStateInterface $form_state) {
$form = array_merge_recursive($form, [
'#attributes' => [
'class' => [
'views-auto-submit-full-form',
],
],
]);
$form['actions']['submit']['#attributes']['class'][] = 'views-use-ajax';
$form['actions']['submit']['#attributes']['class'][] = 'views-auto-submit-click';
$form['#attached']['library'][] = 'views_filter_autosubmit/autosubmit';
if (!empty($this->options['autosubmit_hide'])) {
$form['actions']['submit']['#attributes']['class'][] = 'js-hide';
}
}
}
Classes
Name |
Description |
Autosubmit |
Extends the exposed form to provide an autosubmit functionality. |