From 0c0dd6733474f31dcb48ecff489e7682c40d86ad Mon Sep 17 00:00:00 2001 From: Nigel Banks Date: Thu, 29 Jul 2021 14:59:28 +0100 Subject: [PATCH] Allow page view derived Advanced Search blocks on any page (#843) * Allow page view derived Advanced Search blocks on any page Allows the Advanced Search block to be used on pages where its corresponding view is not present. Now it will redirect to the route associated with the view it was generated from. This is not valid for Advanced Search blocks that are derived from non-page based views, as there is no known location in which to redirect the query. * Fix for undefined index warning. * Documented Exposed form style settings requirement for Advanced Search. --- modules/islandora_advanced_search/README.md | 21 ++++++++ .../docs/basic-input.png | Bin 0 -> 87119 bytes .../js/islandora_advanced_search.form.js | 23 +++++--- .../src/AdvancedSearchQuery.php | 15 +++++- .../src/Form/AdvancedSearchForm.php | 51 ++++++++++++++++-- .../src/Plugin/Block/AdvancedSearchBlock.php | 2 +- 6 files changed, 96 insertions(+), 16 deletions(-) create mode 100644 modules/islandora_advanced_search/docs/basic-input.png diff --git a/modules/islandora_advanced_search/README.md b/modules/islandora_advanced_search/README.md index b1f73a50..71eb6c53 100644 --- a/modules/islandora_advanced_search/README.md +++ b/modules/islandora_advanced_search/README.md @@ -7,6 +7,7 @@ - [Configuring Solr](#configuring-solr) - [Configure Collection Search](#configure-collection-search) - [Configure Views](#configure-views) + - [Exposed Form](#exposed-form) - [Collection Search](#collection-search) - [Paging](#paging) - [Sorting](#sorting) @@ -96,6 +97,21 @@ the [Drupal Documentation](https://www.drupal.org/docs/8/core/modules/views), as well as the [Search API Documentation](https://www.drupal.org/docs/contributed-modules/search-api). +### Exposed Form + +Solr views allow the user to configure an exposed form (_optionally as a +block_). This form / block is **different** from the +[Advanced Search Block](#advanced-search-block). This module does not make any +changes to the form, but this form can cause the Advanced Search Block to not +function if configured incorrectly. + +The Advanced Search Block requires that if present the Exposed forms +`Exposed form style` is set to `Basic` rather than `Input Required`. As +`Input Required` will prevent any search from occurring unless the user puts an +additional query in the Exposed form as well. + +![Form Style](./docs/basic-input.png) + ### Collection Search That being said it will be typical that you require the following @@ -194,6 +210,11 @@ checkbox. ![image](./docs/advanced_search_block_settings.png) +> N.B. Be aware that the Search views [Exposed Form](#exposed-form) can have an +> affect on the function of the +> [Advanced Search Block](#advanced-search-block). Please refer to that section +> to learn more. + ## Documentation Further documentation for this module is available on the diff --git a/modules/islandora_advanced_search/docs/basic-input.png b/modules/islandora_advanced_search/docs/basic-input.png new file mode 100644 index 0000000000000000000000000000000000000000..758c2e83f23fedb9b8de083a1e8eb6bf21d91268 GIT binary patch literal 87119 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 NQc(j@B7gtMe*j|+*UA6@ literal 0 HcmV?d00001 diff --git a/modules/islandora_advanced_search/js/islandora_advanced_search.form.js b/modules/islandora_advanced_search/js/islandora_advanced_search.form.js index 7b068bb4..f81b3509 100644 --- a/modules/islandora_advanced_search/js/islandora_advanced_search.form.js +++ b/modules/islandora_advanced_search/js/islandora_advanced_search.form.js @@ -7,7 +7,8 @@ // Gets current parameters minus ones provided by the form. function getParams(query_parameter, recurse_parameter) { - var params = Drupal.Views.parseQueryString(window.location.href); + const url_search_params = new URLSearchParams(window.location.search); + const params = Object.fromEntries(url_search_params.entries()); // Remove Advanced Search Query Parameters. const param_match = "query\\[\\d+\\]\\[.+\\]".replace("query", query_parameter); const param_regex = new RegExp(param_match, "g"); @@ -97,13 +98,19 @@ // // Logic server side / client side should match to generate the // appropriate URL with javascript enabled or disable. - $form.submit(function (e) { - e.preventDefault(); - e.stopPropagation(); - const inputs = $form.serializeArray(); - const href = url(inputs, settings.islandora_advanced_search_form); - window.history.pushState(null, document.title, href); - }); + // + // If a route is set for the view display that this form is derived + // from, and we are not on the same page as that route, rely on the + // normal submit which will redirect to the appropriate page. + if (!settings.islandora_advanced_search_form.redirect) { + $form.submit(function (e) { + e.preventDefault(); + e.stopPropagation(); + const inputs = $form.serializeArray(); + const href = url(inputs, settings.islandora_advanced_search_form); + window.history.pushState(null, document.title, href); + }); + } // Reset should trigger refresh of AJAX Blocks / Views. $form.find('input[data-drupal-selector = "edit-reset"]').mousedown(function (e) { const inputs = []; diff --git a/modules/islandora_advanced_search/src/AdvancedSearchQuery.php b/modules/islandora_advanced_search/src/AdvancedSearchQuery.php index 45fe3ee0..f3083b32 100644 --- a/modules/islandora_advanced_search/src/AdvancedSearchQuery.php +++ b/modules/islandora_advanced_search/src/AdvancedSearchQuery.php @@ -3,6 +3,8 @@ namespace Drupal\islandora_advanced_search; use Drupal\block\Entity\Block; +use Drupal\Core\EventSubscriber\MainContentViewSubscriber; +use Drupal\Core\Form\FormBuilderInterface; use Drupal\Core\Url; use Drupal\islandora_advanced_search\Form\SettingsForm; use Drupal\islandora_advanced_search\Plugin\Block\AdvancedSearchBlock; @@ -223,9 +225,18 @@ class AdvancedSearchQuery { * @return \Drupal\Core\Url * Url for the given request combined with search query parameters. */ - public function toUrl(Request $request, array $terms, bool $recurse) { - $url = Url::createFromRequest($request); + public function toUrl(Request $request, array $terms, bool $recurse, $route = NULL) { $query_params = $request->query->all(); + if ($route) { + $url = Url::fromRoute($route); + // The form that built the url may use AJAX, but we are redirecting to a + // new page, so it should be disabled. + unset($query_params[FormBuilderInterface::AJAX_FORM_REQUEST]); + unset($query_params[MainContentViewSubscriber::WRAPPER_FORMAT]); + } + else { + $url = Url::createFromRequest($request); + } unset($query_params[$this->queryParameter]); foreach ($terms as $term) { $query_params[$this->queryParameter][] = $term->toQueryParams(); diff --git a/modules/islandora_advanced_search/src/Form/AdvancedSearchForm.php b/modules/islandora_advanced_search/src/Form/AdvancedSearchForm.php index 7b0c6683..c00ce566 100644 --- a/modules/islandora_advanced_search/src/Form/AdvancedSearchForm.php +++ b/modules/islandora_advanced_search/src/Form/AdvancedSearchForm.php @@ -5,10 +5,15 @@ namespace Drupal\islandora_advanced_search\Form; use Drupal\Component\Utility\Html; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; +use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\islandora_advanced_search\AdvancedSearchQuery; use Drupal\islandora_advanced_search\AdvancedSearchQueryTerm; use Drupal\islandora_advanced_search\GetConfigTrait; +use Drupal\views\DisplayPluginCollection; +use Drupal\views\Entity\View; +use Drupal\views\Plugin\views\display\PathPluginBase; +use Drupal\views\Views; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Request; @@ -46,11 +51,19 @@ class AdvancedSearchForm extends FormBase { */ protected $request; + /** + * The current route match. + * + * @var \Drupal\Core\Routing\RouteMatchInterface + */ + protected $currentRouteMatch; + /** * Class constructor. */ - public function __construct(Request $request) { + public function __construct(Request $request, RouteMatchInterface $current_route_match) { $this->request = $request; + $this->currentRouteMatch = $current_route_match; } /** @@ -58,7 +71,8 @@ class AdvancedSearchForm extends FormBase { */ public static function create(ContainerInterface $container) { return new static( - $container->get('request_stack')->getMasterRequest() + $container->get('request_stack')->getMasterRequest(), + $container->get('current_route_match') ); } @@ -186,13 +200,39 @@ class AdvancedSearchForm extends FormBase { return [$recursive, $term_values]; } + /** + * Gets the route name for the view display used to derive this forms block. + * + * @return string|null + * The route name for the view display that was used to create this + * forms block. + */ + protected function getRouteName(FormStateInterface $form_state) { + $view = $form_state->get('view'); + $display = $form_state->get('display'); + $display_handlers = new DisplayPluginCollection($view->getExecutable(), Views::pluginManager('display')); + $display_handler = $display_handlers->get($display['id']); + if ($display_handler instanceof PathPluginBase) { + return $display_handler->getRouteName(); + } + return NULL; + } + /** * {@inheritdoc} */ - public function buildForm(array $form, FormStateInterface $form_state, array $fields = [], string $context_filter = NULL) { + public function buildForm(array $form, FormStateInterface $form_state, View $view = NULL, array $display = [], array $fields = [], string $context_filter = NULL) { + // Keep reference to view and display as the submit handler may use them + // to redirect the user to the search page. + $form_state->set('view', $view); + $form_state->set('display', $display); + $route_name = $this->getRouteName($form_state); + $requires_redirect = $route_name ? $this->currentRouteMatch->getRouteName() !== $route_name : FALSE; + $form['#attached']['library'][] = 'islandora_advanced_search/advanced.search.form'; $form['#attached']['drupalSettings']['islandora_advanced_search_form'] = [ 'id' => Html::getId($this->getFormId()), + 'redirect' => $requires_redirect, 'query_parameter' => AdvancedSearchQuery::getQueryParameter(), 'recurse_parameter' => AdvancedSearchQuery::getRecurseParameter(), 'mapping' => [ @@ -352,9 +392,10 @@ class AdvancedSearchForm extends FormBase { $terms[] = AdvancedSearchQueryTerm::fromUserInput($term); } $terms = array_filter($terms); - $recurse = filter_var($values['recursive'], FILTER_VALIDATE_BOOLEAN); + $recurse = filter_var(isset($values['recursive']) ? $values['recursive'] : FALSE, FILTER_VALIDATE_BOOLEAN); + $route = $this->getRouteName($form_state); $advanced_search_query = new AdvancedSearchQuery(); - return $advanced_search_query->toUrl($this->request, $terms, $recurse); + return $advanced_search_query->toUrl($this->request, $terms, $recurse, $route); } /** diff --git a/modules/islandora_advanced_search/src/Plugin/Block/AdvancedSearchBlock.php b/modules/islandora_advanced_search/src/Plugin/Block/AdvancedSearchBlock.php index 19e6a290..c5f5adb8 100644 --- a/modules/islandora_advanced_search/src/Plugin/Block/AdvancedSearchBlock.php +++ b/modules/islandora_advanced_search/src/Plugin/Block/AdvancedSearchBlock.php @@ -371,7 +371,7 @@ class AdvancedSearchBlock extends BlockBase implements ContainerFactoryPluginInt foreach ($this->configuration[self::SETTING_FIELDS] as $identifier) { $configured_fields[$identifier] = $fields[$identifier]; } - return $this->formBuilder->getForm('Drupal\islandora_advanced_search\Form\AdvancedSearchForm', $configured_fields, $this->configuration[self::SETTING_CONTEXTUAL_FILTER]); + return $this->formBuilder->getForm('Drupal\islandora_advanced_search\Form\AdvancedSearchForm', $this->view, $this->display, $configured_fields, $this->configuration[self::SETTING_CONTEXTUAL_FILTER]); } /**