Sbisson has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/382161 )
Change subject: RCFilters: Allows specifying default highlights from the server ...................................................................... RCFilters: Allows specifying default highlights from the server Bug: T172757 Change-Id: I0545b4e0222e14be99d567e7890ccf33722a5d1e --- M includes/changes/ChangesListFilter.php M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js M resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js M resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js 5 files changed, 52 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core refs/changes/61/382161/1 diff --git a/includes/changes/ChangesListFilter.php b/includes/changes/ChangesListFilter.php index 2fc1006..2546f2b 100644 --- a/includes/changes/ChangesListFilter.php +++ b/includes/changes/ChangesListFilter.php @@ -103,6 +103,12 @@ */ protected $priority; + /** + * + * @var string $defaultHighlightColor + */ + protected $defaultHighlightColor; + const RESERVED_NAME_CHAR = '_'; /** @@ -368,6 +374,7 @@ 'priority' => $this->priority, 'subset' => $this->subsetFilters, 'conflicts' => [], + 'defaultHighlightColor' => $this->defaultHighlightColor ]; $output['messageKeys'] = [ @@ -494,4 +501,11 @@ } ); } + + /** + * @param string $defaultHighlightColor + */ + public function setDefaultHighlightColor( $defaultHighlightColor ) { + $this->defaultHighlightColor = $defaultHighlightColor; + } } diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js index 309978f..57d1b41 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FilterGroup.js @@ -93,6 +93,7 @@ */ mw.rcfilters.dm.FilterGroup.prototype.initializeFilters = function ( filterDefinition, groupDefault ) { var defaultParam, + anyHighlighted, supersetMap = {}, model = this, items = []; @@ -106,7 +107,8 @@ description: filter.description || '', labelPrefixKey: model.labelPrefixKey, cssClass: filter.cssClass, - identifiers: filter.identifiers + identifiers: filter.identifiers, + defaultHighlightColor: filter.defaultHighlightColor } ); if ( filter.subset ) { @@ -188,6 +190,18 @@ this.defaultParams[ this.getName() ] = defaultParam; } + // add highlights to defaultParams + anyHighlighted = false; + this.getItems().forEach( function ( filterItem ) { + if ( filterItem.isHighlighted() ) { + anyHighlighted = true; + this.defaultParams[ filterItem.getName() + '_color' ] = filterItem.getHighlightColor(); + } + }.bind( this ) ); + if ( anyHighlighted ) { + this.defaultParams.highlight = '1'; + } + // Store default filter state based on default params this.defaultFilters = this.getFilterRepresentation( this.getDefaultParams() ); diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js index 5013c08..b03c6ad 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js @@ -410,6 +410,10 @@ this.currentView = 'default'; + if ( this.getHighlightedItems() ) { + this.toggleHighlight( true ); + } + // Finish initialization this.emit( 'initialize' ); }; @@ -726,6 +730,22 @@ }; /** + * Get an object representing the complete empty state of highlights + * + * @returns {Object} Object containing all the highlight parameters set to their negative value + */ + mw.rcfilters.dm.FiltersViewModel.prototype.getEmptyHighlightParameters = function () { + var result = {}; + + this.getItems().forEach( function ( filterItem ) { + result[ filterItem.getName() + '_color' ] = null; + } ); + result.highlight = '0'; + + return result; + }; + + /** * Extract the highlight values from given object. Since highlights are * the same for filter and parameters, it doesn't matter which one is * given; values will be returned with a full list of the highlights diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js index aa82e21..c9a3ad8 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js @@ -42,8 +42,8 @@ // Highlight this.cssClass = config.cssClass; - this.highlightColor = null; - this.highlightEnabled = false; + this.highlightColor = config.defaultHighlightColor; + this.highlightEnabled = !!config.defaultHighlightColor; }; /* Initialization */ diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js index 1894b61..c9436f4 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.UriProcessor.js @@ -300,7 +300,7 @@ */ mw.rcfilters.UriProcessor.prototype._buildEmptyParameterState = function () { var emptyParams = this.filtersModel.getParametersFromFilters( {} ), - emptyHighlights = this.filtersModel.getHighlightParameters(); + emptyHighlights = this.filtersModel.getEmptyHighlightParameters(); this.emptyParameterState = $.extend( true, -- To view, visit https://gerrit.wikimedia.org/r/382161 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I0545b4e0222e14be99d567e7890ccf33722a5d1e Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Sbisson <sbis...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits