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