diff --git a/composer.json b/composer.json index c5412d55e6e2237f11222964442a9c74773a758b..a492e3ab522f4ff2f8e0288edbb53a648f067ac4 100644 --- a/composer.json +++ b/composer.json @@ -93,7 +93,7 @@ "drupal/admin_toolbar": "1.26", "drupal/administerusersbyrole": "2.0-alpha6", "drupal/allowed_formats": "1.1", - "drupal/better_exposed_filters": "3.0-alpha4", + "drupal/better_exposed_filters": "3.0-alpha6", "drupal/bigmenu": "^1.0@alpha", "drupal/block_field": "^1.0@alpha", "drupal/block_permissions": "^1.0", diff --git a/composer.lock b/composer.lock index 585acf0c4a0ff280c4bd1666fafd96b0e73960b4..b2bf2a137c6583baf8045b88ca4f78fa396e13c3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "426e6f0320bdc4396c4421c039673f87", + "content-hash": "d22068b38fe15ec6cf412c8f1f8fcbe8", "packages": [ { "name": "alchemy/zippy", @@ -1585,17 +1585,17 @@ }, { "name": "drupal/better_exposed_filters", - "version": "3.0.0-alpha4", + "version": "3.0.0-alpha6", "source": { "type": "git", "url": "https://git.drupal.org/project/better_exposed_filters", - "reference": "8.x-3.0-alpha4" + "reference": "8.x-3.0-alpha6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-8.x-3.0-alpha4.zip", - "reference": "8.x-3.0-alpha4", - "shasum": "f42013d1fc36d45212d582e18afc59bc2c364719" + "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-8.x-3.0-alpha6.zip", + "reference": "8.x-3.0-alpha6", + "shasum": "0cd9849aa28eea822e18555107e4539d755d95ef" }, "require": { "drupal/core": "*" @@ -1606,8 +1606,8 @@ "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-3.0-alpha4", - "datestamp": "1525044484", + "version": "8.x-3.0-alpha6", + "datestamp": "1550449381", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -1622,6 +1622,10 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "chr.fritsch", + "homepage": "https://www.drupal.org/user/2103716" + }, { "name": "jkopel", "homepage": "https://www.drupal.org/user/66207" @@ -5102,7 +5106,8 @@ "homepage": "https://www.drupal.org/project/migrate_devel", "support": { "source": "http://cgit.drupalcode.org/migrate_devel" - } + }, + "time": "2017-06-25T23:46:13+00:00" }, { "name": "drupal/migrate_plus", diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 8af622c47438f09a9ec8e54a9168a46c98bee091..de40e2763a5a612f69837e3020486b2c62cc3a68 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1638,18 +1638,18 @@ }, { "name": "drupal/better_exposed_filters", - "version": "3.0.0-alpha4", - "version_normalized": "3.0.0.0-alpha4", + "version": "3.0.0-alpha6", + "version_normalized": "3.0.0.0-alpha6", "source": { "type": "git", "url": "https://git.drupal.org/project/better_exposed_filters", - "reference": "8.x-3.0-alpha4" + "reference": "8.x-3.0-alpha6" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-8.x-3.0-alpha4.zip", - "reference": "8.x-3.0-alpha4", - "shasum": "f42013d1fc36d45212d582e18afc59bc2c364719" + "url": "https://ftp.drupal.org/files/projects/better_exposed_filters-8.x-3.0-alpha6.zip", + "reference": "8.x-3.0-alpha6", + "shasum": "0cd9849aa28eea822e18555107e4539d755d95ef" }, "require": { "drupal/core": "*" @@ -1660,8 +1660,8 @@ "dev-3.x": "3.x-dev" }, "drupal": { - "version": "8.x-3.0-alpha4", - "datestamp": "1525044484", + "version": "8.x-3.0-alpha6", + "datestamp": "1550449381", "security-coverage": { "status": "not-covered", "message": "Alpha releases are not covered by Drupal security advisories." @@ -1677,6 +1677,10 @@ "GPL-2.0-or-later" ], "authors": [ + { + "name": "chr.fritsch", + "homepage": "https://www.drupal.org/user/2103716" + }, { "name": "jkopel", "homepage": "https://www.drupal.org/user/66207" diff --git a/web/modules/better_exposed_filters/better_exposed_filters.info.yml b/web/modules/better_exposed_filters/better_exposed_filters.info.yml index b5e40eb0a92416a78edb74a30408d963b8254cb9..352b3a285876bcd772b4081133c544903e6aa2d6 100644 --- a/web/modules/better_exposed_filters/better_exposed_filters.info.yml +++ b/web/modules/better_exposed_filters/better_exposed_filters.info.yml @@ -6,8 +6,8 @@ package: Views dependencies: - drupal:views -# Information added by Drupal.org packaging script on 2018-04-29 -version: '8.x-3.0-alpha4' +# Information added by Drupal.org packaging script on 2019-02-18 +version: '8.x-3.0-alpha6' core: '8.x' project: 'better_exposed_filters' -datestamp: 1525044488 +datestamp: 1550449395 diff --git a/web/modules/better_exposed_filters/better_exposed_filters.libraries.yml b/web/modules/better_exposed_filters/better_exposed_filters.libraries.yml index 18e14b486bbb2313cbaf4dc809b458638c52918a..4db82b98685304fd3eaabe74dd38ec7828c50d3f 100644 --- a/web/modules/better_exposed_filters/better_exposed_filters.libraries.yml +++ b/web/modules/better_exposed_filters/better_exposed_filters.libraries.yml @@ -6,12 +6,14 @@ general: js: js/better_exposed_filters.js: {} dependencies: + - core/drupal - core/jquery auto_submit: version: 3.x js: js/auto_submit.js: {} dependencies: + - core/drupal - core/jquery.once - core/drupal.debounce select_all_none: @@ -19,17 +21,20 @@ select_all_none: js: js/bef_select_all_none.js: {} dependencies: + - core/drupal - core/jquery sliders: version: 3.x js: js/bef_sliders.js: {} dependencies: + - core/drupal - core/jquery datepickers: version: 3.x js: js/bef_datepickers.js: {} dependencies: + - core/drupal - core/jquery - core/jquery.ui.slider diff --git a/web/modules/better_exposed_filters/src/Plugin/views/exposed_form/BetterExposedFilters.php b/web/modules/better_exposed_filters/src/Plugin/views/exposed_form/BetterExposedFilters.php index 9e52626a7e8d610338204c53a81bd8fe6afa0478..f4ce19d18c2d7e74cc5f5b4b3d94fc6a32e3b6c5 100644 --- a/web/modules/better_exposed_filters/src/Plugin/views/exposed_form/BetterExposedFilters.php +++ b/web/modules/better_exposed_filters/src/Plugin/views/exposed_form/BetterExposedFilters.php @@ -3,9 +3,9 @@ namespace Drupal\better_exposed_filters\Plugin\views\exposed_form; use Drupal\Component\Utility\Html; +use Drupal\Core\Form\FormState; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\Element; -use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\Url; use Drupal\views\Plugin\views\exposed_form\InputRequired; use Drupal\views\Plugin\views\filter\NumericFilter; @@ -116,8 +116,9 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) { * Add options for exposed sorts. */ $exposed = FALSE; + /* @var \Drupal\views\Plugin\views\HandlerBase $sort */ foreach ($this->view->display_handler->getHandlers('sort') as $label => $sort) { - if ($sort->options['exposed']) { + if ($sort->isExposed()) { $exposed = TRUE; break; } @@ -254,8 +255,9 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) { $bef_filter_intro = FALSE; // Go through each filter and add BEF options. + /* @var \Drupal\views\Plugin\views\HandlerBase $filter */ foreach ($this->view->display_handler->getHandlers('filter') as $label => $filter) { - if (!$filter->options['exposed']) { + if (!$filter->isExposed()) { continue; } @@ -521,7 +523,19 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) { '#description' => $this->t('Places this element in the secondary options portion of the exposed form.'), ); - if ($filter instanceof StringFilter) { + $filter_form = array(); + $form_state = new FormState(); + + // Let form plugins know this is for exposed widgets. + $form_state->set('exposed', TRUE); + + /** @var \Drupal\views\Plugin\views\filter\FilterPluginBase $filter */ + $filter->buildExposedForm($filter_form, $form_state); + + $supported_types = array('entity_autocomplete', 'textfield'); + + $filter_id = $filter->options['expose']['identifier']; + if (in_array($filter_form[$filter_id]['#type'], $supported_types) || in_array($filter_form[$filter_id]['value']['#type'], $supported_types)) { // Allow users to specify placeholder text. $bef_options[$label]['more_options']['placeholder_text'] = [ '#type' => 'textfield', @@ -873,13 +887,14 @@ public function exposedFormAlter(&$form, FormStateInterface $form_state) { } // Shorthand for all filters in this view. + /* @var \Drupal\views\Plugin\views\HandlerBase[] $filters */ $filters = $form_state->get('view')->display_handler->handlers['filter']; // Go through each saved option looking for Better Exposed Filter settings. foreach ($settings as $label => $options) { // Sanity check: Ensure this filter is an exposed filter. - if (empty($filters[$label]) || !$filters[$label]->options['exposed']) { + if (empty($filters[$label]) || !$filters[$label]->isExposed()) { continue; } @@ -890,7 +905,7 @@ public function exposedFormAlter(&$form, FormStateInterface $form_state) { // Check for placeholder text. if (!empty($settings[$label]['more_options']['placeholder_text'])) { // @todo: Add token replacement for placeholder text. - $form[$label]['#placeholder'] = $settings[$label]['more_options']['placeholder_text']; + $form[$field_id]['#placeholder'] = $settings[$label]['more_options']['placeholder_text']; } // Handle filter value rewrites. @@ -1209,7 +1224,9 @@ public function exposedFormAlter(&$form, FormStateInterface $form_state) { '#title' => $form['#info']["filter-$label"]['label'] ?: '', '#description' => $form['#info']["filter-$label"]['description'] ?: '', // Needed to keep styling consistent with other exposed options. - '#attributes' => array('class' => 'form-item'), + '#attributes' => [ + 'class' => ['form-item'], + ], '#value' => NULL, ], ]; @@ -1247,6 +1264,7 @@ public function exposedFormAlter(&$form, FormStateInterface $form_state) { $secondary[$identifier] = $form[$identifier]; unset($form[$identifier]); $secondary[$identifier]['#title'] = $form['#info'][$filter_info_name]['label']; + $secondary[$identifier]['#description'] = $form['#info'][$filter_info_name]['description']; unset($form['#info'][$filter_info_name]); } } @@ -1319,11 +1337,11 @@ protected function rewriteOptions(array $options, $rewriteSettings, $reorder = F if (!$reorder) { $order = array_keys($options); } - $lines = explode("\n", trim($rewriteSettings)); + $lines = preg_split("/(\r\n|\n|\r)/", trim($rewriteSettings)); foreach ($lines as $line) { list($search, $replace) = explode('|', $line); if (!empty($search)) { - $rewrites[$search] = $replace; + $rewrites[$search] = trim($replace); if ($reorder) { // Reorder options in the order they are specified in rewrites. // Collect the keys to use later. @@ -1580,8 +1598,9 @@ protected function getSettings() { ); // Go through each exposed filter and collect settings. + /* @var \Drupal\views\Plugin\views\HandlerBase $filter */ foreach ($this->view->display_handler->getHandlers('filter') as $label => $filter) { - if (!$filter->options['exposed']) { + if (!$filter->isExposed()) { continue; } diff --git a/web/modules/better_exposed_filters/templates/bef-links.html.twig b/web/modules/better_exposed_filters/templates/bef-links.html.twig index d7c796aa02385007fc87b0846edd0e972275d4ba..5b75c41cf20788495b28c4179b65c4f9440baeac 100644 --- a/web/modules/better_exposed_filters/templates/bef-links.html.twig +++ b/web/modules/better_exposed_filters/templates/bef-links.html.twig @@ -3,6 +3,7 @@ 'bef-links', ] %} +<input type="hidden" name="{{ element["#name"] }}" value="{{ element["#value"] }}" /> <div{{ attributes.addClass(classes) }}> {% set current_nesting_level = 0 %} {% for child in children %} diff --git a/web/modules/better_exposed_filters/tests/bef_test/bef_test.info.yml b/web/modules/better_exposed_filters/tests/bef_test/bef_test.info.yml index 0005b22879d1f6b3a7545fa66cc79ee751f23cce..6c45052899d87315decdf1d611fdb82ce0e40597 100644 --- a/web/modules/better_exposed_filters/tests/bef_test/bef_test.info.yml +++ b/web/modules/better_exposed_filters/tests/bef_test/bef_test.info.yml @@ -10,8 +10,8 @@ dependencies: - options - user -# Information added by Drupal.org packaging script on 2018-04-29 -version: '8.x-3.0-alpha4' +# Information added by Drupal.org packaging script on 2019-02-18 +version: '8.x-3.0-alpha6' core: '8.x' project: 'better_exposed_filters' -datestamp: 1525044488 +datestamp: 1550449395