3 * Widget defining the popup to choose number of results
5 * @extends OO.ui.Widget
8 * @param {mw.rcfilters.dm.FilterGroup} limitModel Group model for 'limit'
9 * @param {mw.rcfilters.dm.FilterItem} groupByPageItemModel Group model for 'limit'
10 * @param {Object} [config] Configuration object
12 mw
.rcfilters
.ui
.ChangesLimitPopupWidget
= function MwRcfiltersUiChangesLimitPopupWidget( limitModel
, groupByPageItemModel
, config
) {
13 config
= config
|| {};
16 mw
.rcfilters
.ui
.ChangesLimitPopupWidget
.parent
.call( this, config
);
18 this.limitModel
= limitModel
;
19 this.groupByPageItemModel
= groupByPageItemModel
;
21 this.valuePicker
= new mw
.rcfilters
.ui
.ValuePickerWidget(
24 label
: mw
.msg( 'rcfilters-limit-title' )
28 this.groupByPageCheckbox
= new OO
.ui
.CheckboxInputWidget( {
29 selected
: this.groupByPageItemModel
.isSelected()
33 this.valuePicker
.connect( this, { choose
: [ 'emit', 'limit' ] } );
34 this.groupByPageCheckbox
.connect( this, { change
: [ 'emit', 'groupByPage' ] } );
35 this.groupByPageItemModel
.connect( this, { update
: 'onGroupByPageModelUpdate' } );
39 .addClass( 'mw-rcfilters-ui-changesLimitPopupWidget' )
41 this.valuePicker
.$element
,
42 new OO
.ui
.FieldsetLayout( {
43 label
: mw
.msg( 'rcfilters-grouping-title' ),
45 new OO
.ui
.FieldLayout(
46 this.groupByPageCheckbox
,
49 label
: mw
.msg( 'rcfilters-group-results-by-page' )
59 OO
.inheritClass( mw
.rcfilters
.ui
.ChangesLimitPopupWidget
, OO
.ui
.Widget
);
65 * @param {string} name Item name
67 * A limit item was chosen
72 * @param {boolean} isGrouped The results are grouped by page
74 * Results are grouped by page
78 * Respond to group by page model update
80 mw
.rcfilters
.ui
.ChangesLimitPopupWidget
.prototype.onGroupByPageModelUpdate = function () {
81 this.groupByPageCheckbox
.setSelected( this.groupByPageItemModel
.isSelected() );