Merge "ApiQueryInfo: fix query limits for testactions"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / ui / mw.rcfilters.ui.DatePopupWidget.js
1 ( function ( mw ) {
2 /**
3 * Widget defining the popup to choose date for the results
4 *
5 * @extends OO.ui.Widget
6 *
7 * @constructor
8 * @param {mw.rcfilters.dm.FilterGroup} model Group model for 'days'
9 * @param {Object} [config] Configuration object
10 */
11 mw.rcfilters.ui.DatePopupWidget = function MwRcfiltersUiDatePopupWidget( model, config ) {
12 config = config || {};
13
14 // Parent
15 mw.rcfilters.ui.ChangesLimitPopupWidget.parent.call( this, config );
16 // Mixin constructors
17 OO.ui.mixin.LabelElement.call( this, config );
18
19 this.model = model;
20
21 this.hoursValuePicker = new mw.rcfilters.ui.ValuePickerWidget(
22 this.model,
23 {
24 classes: [ 'mw-rcfilters-ui-datePopupWidget-hours' ],
25 label: mw.msg( 'rcfilters-hours-title' ),
26 itemFilter: function ( itemModel ) { return Number( itemModel.getParamName() ) < 1; }
27 }
28 );
29 this.daysValuePicker = new mw.rcfilters.ui.ValuePickerWidget(
30 this.model,
31 {
32 classes: [ 'mw-rcfilters-ui-datePopupWidget-days' ],
33 label: mw.msg( 'rcfilters-days-title' ),
34 itemFilter: function ( itemModel ) { return Number( itemModel.getParamName() ) >= 1; }
35 }
36 );
37
38 // Events
39 this.hoursValuePicker.connect( this, { choose: [ 'emit', 'days' ] } );
40 this.daysValuePicker.connect( this, { choose: [ 'emit', 'days' ] } );
41
42 // Initialize
43 this.$element
44 .addClass( 'mw-rcfilters-ui-datePopupWidget' )
45 .append(
46 this.$label
47 .addClass( 'mw-rcfilters-ui-datePopupWidget-title' ),
48 this.hoursValuePicker.$element,
49 this.daysValuePicker.$element
50 );
51 };
52
53 /* Initialization */
54
55 OO.inheritClass( mw.rcfilters.ui.DatePopupWidget, OO.ui.Widget );
56 OO.mixinClass( mw.rcfilters.ui.DatePopupWidget, OO.ui.mixin.LabelElement );
57
58 /* Events */
59
60 /**
61 * @event days
62 * @param {string} name Item name
63 *
64 * A days item was chosen
65 */
66 }( mediaWiki ) );