diff --git a/README.md b/README.md index 8358874..5e82540 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Webform Better Results -This module adds some additional functionality to the standard webform results list. +This module adds some additional functionality to the standard +webform results list. - Search by Submission ID - Search entity references by name @@ -22,8 +23,10 @@ Install as you would normally install a contributed Drupal module. For further information, see [Installing Drupal Modules](https://www.drupal.org/docs/extending-drupal/installing-drupal-modules). -This overrides the existing WebformSubmissionListBuilder automatically once enabled. +This overrides the existing WebformSubmissionListBuilder automatically +once enabled. ## Contributors -This module contributed by maxwellkeeble on behalf of Students' Union UCL (UCLU). +This module contributed by maxwellkeeble on behalf of Students' +Union UCL (UCLU). diff --git a/src/WebformSubmissionBetterListBuilder.php b/src/WebformSubmissionBetterListBuilder.php index b931bb3..fd8314d 100644 --- a/src/WebformSubmissionBetterListBuilder.php +++ b/src/WebformSubmissionBetterListBuilder.php @@ -2,12 +2,8 @@ namespace Drupal\webform_better_results; -use Drupal; use Drupal\Core\Database\Database; -use Drupal\Core\Entity\Query\QueryInterface; -use Drupal\webform\WebformEntityStorageInterface; use Drupal\webform\WebformSubmissionListBuilder; -use Drupal\webform\WebformSubmissionStorageInterface; /** * Provides a list controller for webform submission entity. @@ -33,11 +29,11 @@ class WebformSubmissionBetterListBuilder extends WebformSubmissionListBuilder { * @param string $source_entity * (optional) Source entity (type:id). * - * @return QueryInterface + * @return \Drupal\Core\Entity\Query\QueryInterface * An entity query. */ protected function getQuery($keys = '', $state = '', $source_entity = '') { - /** @var WebformSubmissionStorageInterface $submission_storage */ + /** @var \Drupal\webform\WebformSubmissionStorageInterface $submission_storage */ $submission_storage = $this->getStorage(); $query = $submission_storage->getQuery(); $submission_storage->addQueryConditions($query, $this->webform, $this->sourceEntity, $this->account); @@ -45,7 +41,7 @@ class WebformSubmissionBetterListBuilder extends WebformSubmissionListBuilder { // If we are viewing all submissions, we want to exclude // any orphaned submissions. if (empty($this->webform)) { - /** @var WebformEntityStorageInterface $webform_storage */ + /** @var \Drupal\webform\WebformEntityStorageInterface $webform_storage */ $webform_storage = $this->entityTypeManager->getStorage('webform'); $query->condition('webform_id', $webform_storage->getWebformIds(), 'IN'); } @@ -117,9 +113,9 @@ class WebformSubmissionBetterListBuilder extends WebformSubmissionListBuilder { $query->condition('in_draft', (int) $this->draft); } - $queryStrings = Drupal::request()->query->all(); + $queryStrings = \Drupal::request()->query->all(); - // Filter by dates + // Filter by dates. if (isset($queryStrings['date_start']) && $value = $queryStrings['date_start']) { $value = strtotime($value); $query->condition('completed', (int) $value, '>='); @@ -129,7 +125,7 @@ class WebformSubmissionBetterListBuilder extends WebformSubmissionListBuilder { $query->condition('completed', (int) $value, '<='); } - // Filter by entity reference fields + // Filter by entity reference fields. $queryEntityReferences = []; foreach ($queryStrings as $key => $value) { if (strpos($key, 'entity_reference-') === 0) { @@ -151,7 +147,7 @@ class WebformSubmissionBetterListBuilder extends WebformSubmissionListBuilder { 'query' => $query, 'submission_storage' => $submission_storage, ]; - Drupal::moduleHandler() + \Drupal::moduleHandler() ->alter('webform_better_results_query', $data, $queryStrings, $this->webform); $query = $data['query']; $submission_storage = $data['submission_storage']; @@ -159,15 +155,18 @@ class WebformSubmissionBetterListBuilder extends WebformSubmissionListBuilder { return $query; } + /** + * {@inheritdoc} + */ public static function getEntityReferenceElements($webform) { $elements = $webform->getElementsDecodedAndFlattened(); $entityReferenceElements = []; foreach ($elements as $key => $element) { if (isset($element['#type']) && in_array($element['#type'], [ - 'webform_entity_select', - 'webform_entity_autocomplete', - 'entity_autocomplete', - ])) { + 'webform_entity_select', + 'webform_entity_autocomplete', + 'entity_autocomplete', + ])) { $entityReferenceElements[$key] = $element; } } diff --git a/webform_better_results.module b/webform_better_results.module index 06c100f..2b09399 100644 --- a/webform_better_results.module +++ b/webform_better_results.module @@ -1,10 +1,14 @@ setHandlerClass('list_builder', WebformSubmissionBetterListBuilder::class); } +/** + * {@inheritdoc} + */ function _webform_better_results_get_webform_for_results() { $webform = NULL; $webform_id = Drupal::routeMatch() - ->getRawParameter('webform'); // There must be a better way to get the webform... + // There must be a better way to get the webform... + ->getRawParameter('webform'); if ($webform_id) { $webform = Webform::load($webform_id); } else { if ($nid = Drupal::routeMatch()->getRawParameter('node')) { if ($node = Node::load($nid)) { - /** @var WebformEntityReferenceManagerInterface $entity_reference_manager */ + /** @var \Drupal\webform\Entity\WebformEntityReferenceManagerInterface $entity_reference_manager */ $entity_reference_manager = Drupal::service('webform.entity_reference_manager'); // Check that the node has a webform field that has been populated. $webform = $entity_reference_manager->getWebform($node); @@ -38,11 +46,14 @@ function _webform_better_results_get_webform_for_results() { } /** - * Add filter to results list builder per element + * Add filter to results list builder per element. * * @param mixed $form - * @param FormStateInterface $form_state + * Form. + * @param \Drupal\Core\Form\FormStateInterface $form_state + * Form State. * @param mixed $form_id + * Form ID. */ function webform_better_results_form_webform_submission_filter_form_alter(&$form, FormStateInterface $form_state, $form_id) { $webform = _webform_better_results_get_webform_for_results(); @@ -60,7 +71,7 @@ function webform_better_results_form_webform_submission_filter_form_alter(&$form $form = $data['form']; $form_state = $data['form_state']; - // Entity references + // Entity references. $entityReferenceElements = WebformSubmissionBetterListBuilder::getEntityReferenceElements($webform); foreach ($entityReferenceElements as $entityReferenceElementId => $entityReferenceElement) { $entity = NULL; @@ -74,7 +85,7 @@ function webform_better_results_form_webform_submission_filter_form_alter(&$form $form['filter']['entity_reference-' . $entityReferenceElementId] = array_merge($entityReferenceElement, [ '#type' => 'entity_autocomplete', '#title_display' => 'before', - '#title' => t($entityReferenceElement['#title']), + '#title' => $entityReferenceElement['#title'], '#attributes' => [ 'class' => ['webform_workflows_element_filter_entity_reference'], ], @@ -101,7 +112,7 @@ function webform_better_results_form_webform_submission_filter_form_alter(&$form '#title' => 'Completed on or before', ]; - // Move buttons to end + // Move buttons to end. $buttons = ['submit', 'reset']; foreach ($buttons as $button_id) { if (isset($form['filter'][$button_id])) { @@ -115,16 +126,19 @@ function webform_better_results_form_webform_submission_filter_form_alter(&$form } /** - * Add state as a query to list builder for results + * Add state as a query to list builder for results. * * @param array $form - * @param FormStateInterface $form_state + * Form. + * @param \Drupal\Core\Form\FormStateInterface $form_state + * Form state. */ function webform_better_results_webform_submission_filter_form_submit(array $form, FormStateInterface $form_state) { $redirect = $form_state->getRedirect(); $queryStrings = $redirect->getOptions()['query']; - // Allow modules to alter submission action on filter forms to add query strings: + // Allow modules to alter submission action on filter forms + // to add query strings: $data = [ 'form' => $form, 'form_state' => $form_state, @@ -135,7 +149,7 @@ function webform_better_results_webform_submission_filter_form_submit(array $for $queryStrings = $data['query']; $redirect = $data['redirect']; - // Entity references + // Entity references. $entityReferenceElements = WebformSubmissionBetterListBuilder::getEntityReferenceElements(_webform_better_results_get_webform_for_results()); foreach ($entityReferenceElements as $entityReferenceElementId => $entityReferenceElement) { if ($form_state->getValue('entity_reference-' . $entityReferenceElementId)) { @@ -157,7 +171,7 @@ function webform_better_results_webform_submission_filter_form_submit(array $for } /** - * Implements hook_(). + * Implements hook(). */ function webform_better_results_webform_admin_third_party_settings_form_alter(&$form, FormStateInterface $form_state) { /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */ @@ -183,4 +197,4 @@ function webform_better_results_webform_admin_third_party_settings_form_alter(&$ '#options' => $options, '#default_value' => $currently_selected ?: array_keys($options), ]; -} \ No newline at end of file +}