quadstat-8.x-1.x-dev/modules/views_filter_autosubmit/src/Plugin/views/exposed_form/Autosubmit.php
modules/views_filter_autosubmit/src/Plugin/views/exposed_form/Autosubmit.php
<?php /** * @file * Contains Drupal\views_filter_autosubmit\Plugin\views\exposed_form\Autosubmit. */ namespace Drupal\views_filter_autosubmit\Plugin\views\exposed_form; use Drupal\Core\Form\FormStateInterface; use Drupal\views\Plugin\views\exposed_form\ExposedFormPluginBase; use Drupal\views\Views; /** * Extends the exposed form to provide an autosubmit functionality. * * @ingroup views_exposed_form_plugins * * @ViewsExposedForm( * id = "autosubmit", * title = @Translation("Autosubmit"), * help = @Translation("Exposed form with autosubmit.") * ) */ class Autosubmit extends ExposedFormPluginBase { /** * {@inheritdoc}. */ protected function defineOptions() { return parent::defineOptions(); $options['autosubmit_hide'] = array('default' => TRUE); return $options; } /** * {@inheritdoc}. */ public function buildOptionsForm(&$form, FormStateInterface $form_state) { parent::buildOptionsForm($form, $form_state); $form['autosubmit_hide'] = array( '#type' => 'checkbox', '#title' => t('Hide submit button'), '#description' => t('Hide submit button if javascript is enabled.'), '#default_value' => $this->options['autosubmit_hide'], ); } /** * {@inheritdoc}. */ public function exposedFormAlter(&$form, FormStateInterface $form_state) { // Apply autosubmit values. $form = array_merge_recursive($form, array('#attributes' => array('class' => array('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'; } } }