Version 1
[yaffs-website] / web / modules / contrib / devel / webprofiler / src / Form / ProfilesFilterForm.php
diff --git a/web/modules/contrib/devel/webprofiler/src/Form/ProfilesFilterForm.php b/web/modules/contrib/devel/webprofiler/src/Form/ProfilesFilterForm.php
new file mode 100644 (file)
index 0000000..88d85ee
--- /dev/null
@@ -0,0 +1,86 @@
+<?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);
+  }
+}