Loading src/EventLogStorage.php +1 −2 Original line number Diff line number Diff line Loading @@ -54,8 +54,7 @@ class EventLogStorage { $query->condition('description', '%' . $db->escapeLike($getData['keyword']) . '%', 'LIKE'); } if (!empty($getData['user'])) { $getUid = substr($getData['user'], strrpos($getData['user'], '(') + 1, -1); $query->condition('uid', $getUid); $query->condition('uid', $getData['user']); } $result = $pager->execute(); Loading src/OverviewForm.php +66 −12 Original line number Diff line number Diff line Loading @@ -10,12 +10,20 @@ use Drupal\Core\Ajax\AjaxResponse; use Drupal\Core\Ajax\HtmlCommand; use Drupal\Core\Link; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\user\Entity\User; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Configure user settings for this site. */ class OverviewForm extends FormBase { /** * @var array * The form filters */ private $filters = []; /** * The user storage. * Loading Loading @@ -149,15 +157,6 @@ class OverviewForm extends FormBase { '#value' => $this->t('Filter'), ]; if (!empty($form_state->getUserInput())) { $form['filters']['reset'] = [ '#type' => 'submit', '#value' => $this->t('Reset'), '#limit_validation_errors' => [], '#submit' => ['::resetForm'], ]; } $header = [ [ 'data' => $this->t('Updated'), Loading @@ -174,9 +173,17 @@ class OverviewForm extends FormBase { ['data' => $this->t('Name'), 'field' => 'ref_char'], ]; $formData = (!empty($form_state->getUserInput())) ? $form_state->getUserInput() : []; $limit = 20; $result = EventLogStorage::getSearchData($formData, $header, $limit); $this->getFiltersFromUrl($form); $result = EventLogStorage::getSearchData($this->filters, $header, 20); if (!empty($this->filters)) { $form['filters']['reset'] = [ '#type' => 'submit', '#value' => $this->t('Reset'), '#limit_validation_errors' => [], '#submit' => ['::resetForm'], ]; } $rows = []; foreach ($result as $record) { Loading Loading @@ -205,7 +212,9 @@ class OverviewForm extends FormBase { // Finally add the pager. $build['pager'] = [ '#type' => 'pager', '#parameters' => $this->filters ]; $form['results'] = $build; return $form; Loading @@ -217,6 +226,7 @@ class OverviewForm extends FormBase { public function submitForm(array &$form, FormStateInterface $form_state) { $form_state->disableRedirect(); $form_state->setRebuild(); $this->setFilters($form_state); } /** Loading @@ -233,6 +243,50 @@ class OverviewForm extends FormBase { public function resetForm(array &$form, FormStateInterface $form_state) { $form_state->setRedirect('<current>'); $form_state->setValues([]); $this->filters = []; } /** * Retrieves form filters from the URL. * * @param array $form * An associative array containing the structure of the form. */ public function getFiltersFromUrl(&$form) { $url_params = \Drupal::request()->query->all(); if (!empty($url_params)) { unset($url_params['page']); $this->filters = $url_params; foreach ($this->filters as $field => $value) { if ($field === "user") { $user = User::load($value); $form['filters'][$field]['#default_value'] = $user; } else { $form['filters'][$field]['#default_value'] = $value; } } } } /** * Stores form filters in the URL. * * @param \Drupal\Core\Form\FormStateInterface $form_state * The current state of the form. */ public function setFilters(FormStateInterface $form_state) { $this->filters = []; $values = $form_state->getValues(); foreach($values as $field => $value) { if ($field === 'submit') { break; } elseif (isset($value) && $value !== "") { $this->filters[$field] = $value; } } \Drupal::request()->query->replace($this->filters); } /** Loading Loading
src/EventLogStorage.php +1 −2 Original line number Diff line number Diff line Loading @@ -54,8 +54,7 @@ class EventLogStorage { $query->condition('description', '%' . $db->escapeLike($getData['keyword']) . '%', 'LIKE'); } if (!empty($getData['user'])) { $getUid = substr($getData['user'], strrpos($getData['user'], '(') + 1, -1); $query->condition('uid', $getUid); $query->condition('uid', $getData['user']); } $result = $pager->execute(); Loading
src/OverviewForm.php +66 −12 Original line number Diff line number Diff line Loading @@ -10,12 +10,20 @@ use Drupal\Core\Ajax\AjaxResponse; use Drupal\Core\Ajax\HtmlCommand; use Drupal\Core\Link; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\user\Entity\User; use Symfony\Component\DependencyInjection\ContainerInterface; /** * Configure user settings for this site. */ class OverviewForm extends FormBase { /** * @var array * The form filters */ private $filters = []; /** * The user storage. * Loading Loading @@ -149,15 +157,6 @@ class OverviewForm extends FormBase { '#value' => $this->t('Filter'), ]; if (!empty($form_state->getUserInput())) { $form['filters']['reset'] = [ '#type' => 'submit', '#value' => $this->t('Reset'), '#limit_validation_errors' => [], '#submit' => ['::resetForm'], ]; } $header = [ [ 'data' => $this->t('Updated'), Loading @@ -174,9 +173,17 @@ class OverviewForm extends FormBase { ['data' => $this->t('Name'), 'field' => 'ref_char'], ]; $formData = (!empty($form_state->getUserInput())) ? $form_state->getUserInput() : []; $limit = 20; $result = EventLogStorage::getSearchData($formData, $header, $limit); $this->getFiltersFromUrl($form); $result = EventLogStorage::getSearchData($this->filters, $header, 20); if (!empty($this->filters)) { $form['filters']['reset'] = [ '#type' => 'submit', '#value' => $this->t('Reset'), '#limit_validation_errors' => [], '#submit' => ['::resetForm'], ]; } $rows = []; foreach ($result as $record) { Loading Loading @@ -205,7 +212,9 @@ class OverviewForm extends FormBase { // Finally add the pager. $build['pager'] = [ '#type' => 'pager', '#parameters' => $this->filters ]; $form['results'] = $build; return $form; Loading @@ -217,6 +226,7 @@ class OverviewForm extends FormBase { public function submitForm(array &$form, FormStateInterface $form_state) { $form_state->disableRedirect(); $form_state->setRebuild(); $this->setFilters($form_state); } /** Loading @@ -233,6 +243,50 @@ class OverviewForm extends FormBase { public function resetForm(array &$form, FormStateInterface $form_state) { $form_state->setRedirect('<current>'); $form_state->setValues([]); $this->filters = []; } /** * Retrieves form filters from the URL. * * @param array $form * An associative array containing the structure of the form. */ public function getFiltersFromUrl(&$form) { $url_params = \Drupal::request()->query->all(); if (!empty($url_params)) { unset($url_params['page']); $this->filters = $url_params; foreach ($this->filters as $field => $value) { if ($field === "user") { $user = User::load($value); $form['filters'][$field]['#default_value'] = $user; } else { $form['filters'][$field]['#default_value'] = $value; } } } } /** * Stores form filters in the URL. * * @param \Drupal\Core\Form\FormStateInterface $form_state * The current state of the form. */ public function setFilters(FormStateInterface $form_state) { $this->filters = []; $values = $form_state->getValues(); foreach($values as $field => $value) { if ($field === 'submit') { break; } elseif (isset($value) && $value !== "") { $this->filters[$field] = $value; } } \Drupal::request()->query->replace($this->filters); } /** Loading