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