jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/382635 )

Change subject: RCFilters UI: In the highlight code, use .data() the way it was 
meant to be used
......................................................................


RCFilters UI: In the highlight code, use .data() the way it was meant to be used

Use .data( 'highlightedFilters' ) instead of .attr( 'data-highlightedFilters' ),
and make the value an array rather than a string that we have to convert
back and forth every time. We have to use .attr() for data-color because it's
used by CSS, but data-highlightedFilters isn't used by anything else.

Using an array makes the code much simpler. Also add the class
mw-rcfilters-highlighted to every highlighted item, so we can find
them back easily and don't have to use $( '[data-highlightedFilters]' )
(attribute selectors are slow, and this wouldn't work with .data() anyway).

Bonus: use the comma-separator message

Change-Id: I04de7f8fb74d60fb23ef47bf50bacfeb176a55b1
---
M 
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
1 file changed, 25 insertions(+), 17 deletions(-)

Approvals:
  Sbisson: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
index ea32e36..83e68a5 100644
--- 
a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
+++ 
b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js
@@ -427,30 +427,35 @@
 
                        // Add highlight class to all highlighted list items
                        $elements
-                               .addClass( 'mw-rcfilters-highlight-color-' + 
filterItem.getHighlightColor() );
+                               .addClass(
+                                       'mw-rcfilters-highlighted ' +
+                                       'mw-rcfilters-highlight-color-' + 
filterItem.getHighlightColor()
+                               );
 
+                       // Track the filters for each item in .data( 
'highlightedFilters' )
                        $elements.each( function () {
-                               var filterString = $( this ).attr( 
'data-highlightedFilters' ) || '',
-                                       filters = filterString ? 
filterString.split( '|' ) : [];
-
+                               var filters = $( this ).data( 
'highlightedFilters' );
+                               if ( !filters ) {
+                                       filters = [];
+                                       $( this ).data( 'highlightedFilters', 
filters );
+                               }
                                if ( filters.indexOf( filterItem.getLabel() ) 
=== -1 ) {
                                        filters.push( filterItem.getLabel() );
                                }
-
-                               $( this )
-                                       .attr( 'data-highlightedFilters', 
filters.join( '|' ) );
                        } );
                }.bind( this ) );
-               // Apply a title for relevant filters
-               this.$element.find( '[data-highlightedFilters]' ).each( 
function () {
-                       var filterString = $( this ).attr( 
'data-highlightedFilters' ) || '',
-                               filters = filterString ? filterString.split( 
'|' ) : [];
+               // Apply a title to each highlighted item, with a list of 
filters
+               this.$element.find( '.mw-rcfilters-highlighted' ).each( 
function () {
+                       var filters = $( this ).data( 'highlightedFilters' );
 
-                       if ( filterString ) {
-                               $( this ).attr( 'title', mw.msg( 
'rcfilters-highlighted-filters-list', filters.join( ', ' ) ) );
+                       if ( filters && filters.length ) {
+                               $( this ).attr( 'title', mw.msg(
+                                       'rcfilters-highlighted-filters-list',
+                                       filters.join( mw.msg( 'comma-separator' 
) )
+                               ) );
                        }
-               } );
 
+               } );
                if ( this.inEnhancedMode() ) {
                        this.updateEnhancedParentHighlight();
                }
@@ -465,12 +470,15 @@
        mw.rcfilters.ui.ChangesListWrapperWidget.prototype.clearHighlight = 
function () {
                // Remove highlight classes
                mw.rcfilters.HighlightColors.forEach( function ( color ) {
-                       this.$element.find( '.mw-rcfilters-highlight-color-' + 
color ).removeClass( 'mw-rcfilters-highlight-color-' + color );
+                       this.$element
+                               .find( '.mw-rcfilters-highlight-color-' + color 
)
+                               .removeClass( 'mw-rcfilters-highlight-color-' + 
color );
                }.bind( this ) );
 
-               this.$element.find( '[data-highlightedFilters]' )
+               this.$element.find( '.mw-rcfilters-highlighted' )
                        .removeAttr( 'title' )
-                       .removeAttr( 'data-highlightedFilters' );
+                       .removeData( 'highlightedFilters' )
+                       .removeClass( 'mw-rcfilters-highlighted' );
 
                // Remove grey from enhanced rows
                this.$element.find( 
'.mw-rcfilters-ui-changesListWrapperWidget-enhanced-grey' )

-- 
To view, visit https://gerrit.wikimedia.org/r/382635
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I04de7f8fb74d60fb23ef47bf50bacfeb176a55b1
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Mooeypoo <[email protected]>
Gerrit-Reviewer: Sbisson <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to