3 * A button to configure highlight for a filter item
5 * @extends OO.ui.PopupButtonWidget
8 * @param {mw.rcfilters.Controller} controller RCFilters controller
9 * @param {mw.rcfilters.dm.FilterItem} model Filter item model
10 * @param {Object} [config] Configuration object
12 mw
.rcfilters
.ui
.FilterItemHighlightButton
= function MwRcfiltersUiFilterItemHighlightButton( controller
, model
, config
) {
13 config
= config
|| {};
15 this.colorPickerWidget
= new mw
.rcfilters
.ui
.HighlightColorPickerWidget( controller
, model
);
18 mw
.rcfilters
.ui
.FilterItemHighlightButton
.parent
.call( this, $.extend( {}, config
, {
26 $content
: this.colorPickerWidget
.$element
30 this.controller
= controller
;
34 this.model
.connect( this, { update
: 'onModelUpdate' } );
35 this.colorPickerWidget
.connect( this, { chooseColor
: 'onChooseColor' } );
38 .addClass( 'mw-rcfilters-ui-filterItemHighlightButton' );
43 OO
.inheritClass( mw
.rcfilters
.ui
.FilterItemHighlightButton
, OO
.ui
.PopupButtonWidget
);
48 * Respond to item model update event
50 mw
.rcfilters
.ui
.FilterItemHighlightButton
.prototype.onModelUpdate = function () {
51 var currentColor
= this.model
.getHighlightColor(),
54 this.$icon
.toggleClass(
55 'mw-rcfilters-ui-filterItemHighlightButton-circle',
59 mw
.rcfilters
.HighlightColors
.forEach( function ( c
) {
62 'mw-rcfilters-ui-filterItemHighlightButton-circle-color-' + c
,
68 mw
.rcfilters
.ui
.FilterItemHighlightButton
.prototype.onChooseColor = function () {
69 this.popup
.toggle( false );
71 }( mediaWiki
, jQuery
) );