Skip to content

Commit

Permalink
Multi facet selection - Record last user state
Browse files Browse the repository at this point in the history
  • Loading branch information
rominail committed Nov 25, 2024
1 parent f5b128c commit aaf958e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions themes/bootstrap3/js/facets.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
const activation_event = 'facet-selection-begin';
const deactivation_event = 'facet-selection-cancel';
const apply_event = 'facet-selection-done';
const localStorageVariableName = 'multiFacetsSelection';

/**
* Normalize a filter value
Expand Down Expand Up @@ -297,6 +298,10 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
toggleSelectedFacetStyle(elem);
}

function saveUserSelectionLastState(state) {
localStorage.setItem(localStorageVariableName, state);
}

function toggleMultiFacetsSelection(enable) {
if (typeof enable !== 'undefined') {
isMultiFacetsSelectionActivated = enable;
Expand All @@ -313,6 +318,7 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
toggleSelectedFacetStyle(elem);
}
}
saveUserSelectionLastState(isMultiFacetsSelectionActivated);
const event = isMultiFacetsSelectionActivated ? activation_event : deactivation_event;
VuFind.emit(event);
}
Expand All @@ -338,6 +344,7 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
const activationElem = context.querySelector('.js-user-selection-multi-filters');
if (activationElem) {
activationElem.addEventListener('change', function multiFacetSelectionChange() { toggleMultiFacetsSelection(this.checked); } );
toggleMultiFacetsSelection(localStorage.getItem(localStorageVariableName) === 'true');
}
// Listener on apply filters button
const applyElem = context.querySelector('.js-apply-multi-facets-selection');
Expand Down
7 changes: 7 additions & 0 deletions themes/bootstrap5/js/facets.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
const activation_event = 'facet-selection-begin';
const deactivation_event = 'facet-selection-cancel';
const apply_event = 'facet-selection-done';
const localStorageVariableName = 'multiFacetsSelection';

/**
* Normalize a filter value
Expand Down Expand Up @@ -297,6 +298,10 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
toggleSelectedFacetStyle(elem);
}

function saveUserSelectionLastState(state) {
localStorage.setItem(localStorageVariableName, state);
}

function toggleMultiFacetsSelection(enable) {
if (typeof enable !== 'undefined') {
isMultiFacetsSelectionActivated = enable;
Expand All @@ -313,6 +318,7 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
toggleSelectedFacetStyle(elem);
}
}
saveUserSelectionLastState(isMultiFacetsSelectionActivated);
const event = isMultiFacetsSelectionActivated ? activation_event : deactivation_event;
VuFind.emit(event);
}
Expand All @@ -338,6 +344,7 @@ VuFind.register('multiFacetsSelection', function multiFacetsSelection() {
const activationElem = context.querySelector('.js-user-selection-multi-filters');
if (activationElem) {
activationElem.addEventListener('change', function multiFacetSelectionChange() { toggleMultiFacetsSelection(this.checked); } );
toggleMultiFacetsSelection(localStorage.getItem(localStorageVariableName) === 'true');
}
// Listener on apply filters button
const applyElem = context.querySelector('.js-apply-multi-facets-selection');
Expand Down

0 comments on commit aaf958e

Please sign in to comment.