You are here

ProfilesFilterForm.php in Devel 8

File

webprofiler/src/Form/ProfilesFilterForm.php
View source
<?php

namespace Drupal\webprofiler\Form;

use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Url;

/**
 * Class ProfilesFilterForm
 */
class ProfilesFilterForm extends FormBase {

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'webprofiler_profiles_filter';
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state) {
    $form['ip'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('IP'),
      '#size' => 30,
      '#default_value' => $this
        ->getRequest()->query
        ->get('ip'),
      '#prefix' => '<div class="form--inline clearfix">',
    ];
    $form['url'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Url'),
      '#size' => 30,
      '#default_value' => $this
        ->getRequest()->query
        ->get('url'),
    ];
    $form['method'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Method'),
      '#options' => [
        'GET' => 'GET',
        'POST' => 'POST',
      ],
      '#default_value' => $this
        ->getRequest()->query
        ->get('method'),
    ];
    $limits = [
      10,
      50,
      100,
    ];
    $form['limit'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Limit'),
      '#options' => array_combine($limits, $limits),
      '#default_value' => $this
        ->getRequest()->query
        ->get('limit'),
    ];
    $form['actions'] = [
      '#type' => 'actions',
    ];
    $form['actions']['filter'] = [
      '#type' => 'submit',
      '#value' => t('Filter'),
      '#attributes' => [
        'class' => [
          'button--primary',
        ],
      ],
      '#suffix' => '</div>',
    ];
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {
    $ip = $form_state
      ->getValue('ip');

    // ['values']['ip'];
    $url = $form_state
      ->getValue('url');
    $method = $form_state
      ->getValue('method');
    $limit = $form_state
      ->getValue('limit');
    $url = new Url('webprofiler.admin_list', [], [
      'query' => [
        'ip' => $ip,
        'url' => $url,
        'method' => $method,
        'limit' => $limit,
      ],
    ]);
    $form_state
      ->setRedirectUrl($url);
  }

}

Classes

Namesort descending Description
ProfilesFilterForm Class ProfilesFilterForm