mw.rcfilters.Controller.prototype.initialize = function ( filterStructure, namespaceStructure, tagList ) {
var parsedSavedQueries,
displayConfig = mw.config.get( 'StructuredChangeFiltersDisplayConfig' ),
+ defaultSavedQueryExists = mw.config.get( 'wgStructuredChangeFiltersDefaultSavedQueryExists' ),
controller = this,
views = {},
items = [],
separator: ';',
fullCoverage: true,
filters: items
+ },
+ {
+ name: 'invertGroup',
+ type: 'boolean',
+ hidden: true,
+ filters: [ {
+ name: 'invert',
+ 'default': '0'
+ } ]
} ]
};
}
// Defaults should only be applied on load (if necessary)
// or on request
this.initializing = true;
- if (
- !mw.user.isAnon() && this.savedQueriesModel.getDefault() &&
- !this.uriProcessor.doesQueryContainRecognizedParams( uri.query )
- ) {
- // We have defaults from a saved query.
- // We will load them straight-forward (as if
- // they were clicked in the menu) so we trigger
- // a full ajax request and change of URL
+
+ if ( defaultSavedQueryExists ) {
+ // This came from the server, meaning that we have a default
+ // saved query, but the server could not load it, probably because
+ // it was pre-conversion to the new format.
+ // We need to load this query again
this.applySavedQuery( this.savedQueriesModel.getDefault() );
} else {
// There are either recognized parameters in the URL
*/
mw.rcfilters.Controller.prototype.clearFilter = function ( filterName ) {
var filterItem = this.filtersModel.getItemByName( filterName ),
- isHighlighted = filterItem.isHighlighted();
+ isHighlighted = filterItem.isHighlighted(),
+ isSelected = filterItem.isSelected();
- if ( filterItem.isSelected() || isHighlighted ) {
+ if ( isSelected || isHighlighted ) {
this.filtersModel.clearHighlightColor( filterName );
this.filtersModel.toggleFilterSelected( filterName, false );
- this.updateChangesList();
+
+ if ( isSelected ) {
+ // Only update the changes list if the filter changed
+ // its selection state. If it only changed its highlight
+ // then don't reload
+ this.updateChangesList();
+ }
+
this.filtersModel.reassessFilterInteractions( filterItem );
// Log filter grouping
params: $.extend(
true,
{
- invert: String( Number( this.filtersModel.areNamespacesInverted() ) ),
highlight: String( Number( this.filtersModel.isHighlightEnabled() ) )
},
this.filtersModel.getParametersFromFilters( selectedState )
)
);
- // Update namespace inverted property
- this.filtersModel.toggleInvertedNamespaces( !!Number( data.params.invert ) );
-
// Update highlight state
this.filtersModel.toggleHighlight( !!Number( data.params.highlight ) );
this.filtersModel.getItems().forEach( function ( filterItem ) {
params: $.extend(
true,
{
- highlight: String( Number( this.filtersModel.isHighlightEnabled() ) ),
- invert: String( Number( this.filtersModel.areNamespacesInverted() ) )
+ highlight: String( Number( this.filtersModel.isHighlightEnabled() ) )
},
this.filtersModel.getParametersFromFilters( selectedState )
),
return $.extend( true, {},
this.filtersModel.getParametersFromFilters( savedFilters ),
data.highlights,
- { highlight: data.params.highlight, invert: data.params.invert }
+ { highlight: data.params.highlight }
);
}
return this.filtersModel.getDefaultParams();