43a301f0f954900451beca832c624ee6e043bc25
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / ui / mw.rcfilters.ui.FilterTagItemWidget.js
1 ( function ( mw ) {
2 /**
3 * Extend OOUI's FilterTagItemWidget to also display a popup on hover.
4 *
5 * @class
6 * @extends mw.rcfilters.ui.TagItemWidget
7 *
8 * @constructor
9 * @param {mw.rcfilters.Controller} controller
10 * @param {mw.rcfilters.dm.FilterItem} invertModel
11 * @param {mw.rcfilters.dm.FilterItem} model Item model
12 * @param {Object} config Configuration object
13 */
14 mw.rcfilters.ui.FilterTagItemWidget = function MwRcfiltersUiFilterTagItemWidget( controller, invertModel, model, config ) {
15 config = config || {};
16
17 mw.rcfilters.ui.FilterTagItemWidget.parent.call( this, controller, invertModel, model, config );
18
19 this.$element
20 .addClass( 'mw-rcfilters-ui-filterTagItemWidget' );
21 };
22
23 /* Initialization */
24
25 OO.inheritClass( mw.rcfilters.ui.FilterTagItemWidget, mw.rcfilters.ui.TagItemWidget );
26
27 /* Methods */
28
29 /**
30 * @inheritdoc
31 */
32 mw.rcfilters.ui.FilterTagItemWidget.prototype.setCurrentMuteState = function () {
33 this.setFlags( {
34 muted: (
35 !this.model.isSelected() ||
36 this.model.isIncluded() ||
37 this.model.isFullyCovered()
38 ),
39 invalid: this.model.isSelected() && this.model.isConflicted()
40 } );
41 };
42 }( mediaWiki, jQuery ) );