parsedSavedQueries,
this._getBaseState()
);
+
this.updateStateBasedOnUrl();
// Update the changes list with the existing data
highlightedItems[ item.getName() ] = highlightEnabled ?
item.getHighlightColor() : null;
} );
+ // These are filter states; highlight is stored as boolean
highlightedItems.highlight = this.filtersModel.isHighlightEnabled();
// Add item
this.filtersModel.toggleFiltersSelected( data.filters );
// Update highlight state
- this.filtersModel.toggleHighlight( !!highlights.highlight );
+ this.filtersModel.toggleHighlight( !!Number( highlights.highlight ) );
this.filtersModel.getItems().forEach( function ( filterItem ) {
var color = highlights[ filterItem.getName() ];
if ( color ) {
);
// Update highlight state
- this.filtersModel.toggleHighlight( !!parameters.highlight );
+ this.filtersModel.toggleHighlight( !!Number( parameters.highlight ) );
this.filtersModel.getItems().forEach( function ( filterItem ) {
var color = parameters[ filterItem.getName() + '_color' ];
if ( color ) {
savedParams = this.filtersModel.getParametersFromFilters( data.filters || {} );
// Translate highlights to parameters
- savedHighlights.highlight = queryHighlights.highlight;
+ savedHighlights.highlight = String( Number( queryHighlights.highlight ) );
$.each( queryHighlights, function ( filterName, color ) {
if ( filterName !== 'highlights' ) {
savedHighlights[ filterName + '_color' ] = color;
// highlight params
uri.query.highlight = Number( this.filtersModel.isHighlightEnabled() );
Object.keys( highlightParams ).forEach( function ( paramName ) {
- if ( highlightParams[ paramName ] ) {
- uri.query[ paramName ] = highlightParams[ paramName ];
- } else {
- delete uri.query[ paramName ];
- }
+ // Always have some value (either the color or null) so that
+ // if we have something in the URL that doesn't have the highlight
+ // intentionally, it can override default with highlight.
+ // Otherwise, the $.extend will always add the highlight that
+ // exists in the default even if the URL query that is being
+ // refreshed has different highlights, or has highlights enabled
+ // but no active highlights anywhere
+ uri.query[ paramName ] = highlightParams[ paramName ] ?
+ highlightParams[ paramName ] : null;
} );
return uri;