X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.rcfilters%2Fui%2Fmw.rcfilters.ui.TagItemWidget.js;h=cc314ac66aed703f49a95c3832c0182e6291155e;hp=bf75149706e890aa5aaab1a52457adcd47702ba3;hb=a8379682a46a428320c88702c800a6107c015137;hpb=7471e1db1b613d035f981f489f8683a177acff7e diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js index bf75149706..cc314ac66a 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js @@ -8,21 +8,22 @@ * * @constructor * @param {mw.rcfilters.Controller} controller + * @param {mw.rcfilters.dm.FilterItem} invertModel * @param {mw.rcfilters.dm.FilterItem} model Item model * @param {Object} config Configuration object * @cfg {jQuery} [$overlay] A jQuery object serving as overlay for popups */ - mw.rcfilters.ui.TagItemWidget = function MwRcfiltersUiTagItemWidget( controller, model, config ) { + mw.rcfilters.ui.TagItemWidget = function MwRcfiltersUiTagItemWidget( controller, invertModel, model, config ) { // Configuration initialization config = config || {}; this.controller = controller; + this.invertModel = invertModel; this.model = model; this.selected = false; mw.rcfilters.ui.TagItemWidget.parent.call( this, $.extend( { - data: this.model.getName(), - label: $( '
' ).html( this.model.getPrefixedLabel() ).contents() + data: this.model.getName() }, config ) ); this.$overlay = config.$overlay || this.$element; @@ -48,8 +49,12 @@ this.$highlight = $( '
' ) .addClass( 'mw-rcfilters-ui-tagItemWidget-highlight' ); + // Add title attribute with the item label to 'x' button + this.closeButton.setTitle( mw.msg( 'rcfilters-tag-remove', this.model.getLabel() ) ); + // Events - this.model.connect( this, { update: 'onModelUpdate' } ); + this.invertModel.connect( this, { update: 'updateUiBasedOnState' } ); + this.model.connect( this, { update: 'updateUiBasedOnState' } ); // Initialization this.$overlay.append( this.popup.$element ); @@ -60,8 +65,7 @@ .on( 'mouseenter', this.onMouseEnter.bind( this ) ) .on( 'mouseleave', this.onMouseLeave.bind( this ) ); - this.setCurrentMuteState(); - this.setHighlightColor(); + this.updateUiBasedOnState(); }; /* Initialization */ @@ -74,11 +78,11 @@ /** * Respond to model update event */ - mw.rcfilters.ui.TagItemWidget.prototype.onModelUpdate = function () { + mw.rcfilters.ui.TagItemWidget.prototype.updateUiBasedOnState = function () { this.setCurrentMuteState(); // Update label if needed - this.setLabel( $( '
' ).html( this.model.getPrefixedLabel() ).contents() ); + this.setLabel( $( '
' ).html( this.model.getPrefixedLabel( this.invertModel.isSelected() ) ).contents() ); this.setHighlightColor(); };