Commit e5f8cf03 authored by Samuel Mortenson's avatar Samuel Mortenson Committed by Sam Mortenson
Browse files

Issue #3268079 by samuel.mortenson: Forward/back buttons do not remove values from fields/facets

parent 00587450
Loading
Loading
Loading
Loading
+42 −34
Original line number Diff line number Diff line
@@ -106,21 +106,27 @@
  Drupal.lunrSearchPage.prototype.searchByQuery = function () {
    var parameters = this.getParameters();
    var fields = {};
    for (var key in parameters) {
      var $input = this.$form.find('[data-lunr-search-field="' + key + '"]');
      if (key !== 'search' && key !== 'page' && $input) {
    this.$form.find('[data-lunr-search-field]').each(function () {
      var key = $(this).attr('data-lunr-search-field');
      if (key in parameters) {
        fields[key] = parameters[key];
        if ($input.attr('type') === 'checkbox') {
        if ($(this).attr('type') === 'checkbox') {
          var values = parameters[key].split(' ');
          this.$form.find('[data-lunr-search-field="' + key + '"]').each(function () {
          $(this).prop('checked', values.includes($(this).val()));
          });
        }
        else {
          this.$form.find('[data-lunr-search-field="' + key + '"]').val(parameters[key]);
          $(this).val(parameters[key]);
        }
      }
      else {
        if ($(this).attr('type') === 'checkbox') {
          $(this).prop('checked', false);
        }
        else {
          $(this).val('');
        }
      }
    });
    if (Object.keys(parameters).length) {
      var search = parameters['search'] ? parameters['search'] : '';
      this.$form.find('.js-lunr-search-input').val(search);
@@ -219,7 +225,7 @@
   * Utility function for getting multiple query param values.
   *
   * @returns {object}
   *   An object mapping .
   *   An object mapping field keys to values.
   */
  Drupal.lunrSearchPage.prototype.getParameters = function () {
    if ('URLSearchParams' in window) {
@@ -230,7 +236,7 @@
      });
      return values;
    }
    return false;
    return {};
  };

  /**
@@ -319,9 +325,11 @@
      case 'loadIndexComplete':
        Drupal.lunr.pages[event.data.id].init();
        break;

      case 'searchComplete':
        Drupal.lunr.pages[event.data.id].showResults(event.data.results);
        break;

      default:
        throw new Error('Unknown message sent from lunr search worker.');
    }