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' ] } );
38 .addClass( 'mw-rcfilters-ui-changesLimitPopupWidget' )
40 this.valuePicker
.$element
,
41 new OO
.ui
.FieldsetLayout( {
42 label
: mw
.msg( 'rcfilters-grouping-title' ),
44 new OO
.ui
.FieldLayout(
45 this.groupByPageCheckbox
,
48 label
: mw
.msg( 'rcfilters-group-results-by-page' )
58 OO
.inheritClass( mw
.rcfilters
.ui
.ChangesLimitPopupWidget
, OO
.ui
.Widget
);
64 * @param {string} name Item name
66 * A limit item was chosen
71 * @param {boolean} isGrouped The results are grouped by page
73 * Results are grouped by page
77 * Respond to group by page model update
79 mw
.rcfilters
.ui
.ChangesLimitPopupWidget
.prototype.onGroupByPageModelUpdate = function () {
80 this.groupByPageCheckbox
.setSelected( this.groupByPageItemModel
.isSelected() );