RCFilters: refactor highlight state
[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.FiltersViewModel} filtersViewModel
11 * @param {mw.rcfilters.dm.FilterItem} invertModel
12 * @param {mw.rcfilters.dm.FilterItem} itemModel Item model
13 * @param {Object} config Configuration object
14 */
15 mw.rcfilters.ui.FilterTagItemWidget = function MwRcfiltersUiFilterTagItemWidget(
16 controller, filtersViewModel, invertModel, itemModel, config
17 ) {
18 config = config || {};
19
20 mw.rcfilters.ui.FilterTagItemWidget.parent.call( this, controller, filtersViewModel, invertModel, itemModel, config );
21
22 this.$element
23 .addClass( 'mw-rcfilters-ui-filterTagItemWidget' );
24 };
25
26 /* Initialization */
27
28 OO.inheritClass( mw.rcfilters.ui.FilterTagItemWidget, mw.rcfilters.ui.TagItemWidget );
29
30 /* Methods */
31
32 /**
33 * @inheritdoc
34 */
35 mw.rcfilters.ui.FilterTagItemWidget.prototype.setCurrentMuteState = function () {
36 this.setFlags( {
37 muted: (
38 !this.itemModel.isSelected() ||
39 this.itemModel.isIncluded() ||
40 this.itemModel.isFullyCovered()
41 ),
42 invalid: this.itemModel.isSelected() && this.itemModel.isConflicted()
43 } );
44 };
45 }( mediaWiki, jQuery ) );