diff options
Diffstat (limited to 'www/wiki/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DatePopupWidget.js')
-rw-r--r-- | www/wiki/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DatePopupWidget.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/www/wiki/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DatePopupWidget.js b/www/wiki/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DatePopupWidget.js new file mode 100644 index 00000000..2014ef75 --- /dev/null +++ b/www/wiki/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DatePopupWidget.js @@ -0,0 +1,66 @@ +( function ( mw ) { + /** + * Widget defining the popup to choose date for the results + * + * @extends OO.ui.Widget + * + * @constructor + * @param {mw.rcfilters.dm.FilterGroup} model Group model for 'days' + * @param {Object} [config] Configuration object + */ + mw.rcfilters.ui.DatePopupWidget = function MwRcfiltersUiDatePopupWidget( model, config ) { + config = config || {}; + + // Parent + mw.rcfilters.ui.ChangesLimitPopupWidget.parent.call( this, config ); + // Mixin constructors + OO.ui.mixin.LabelElement.call( this, config ); + + this.model = model; + + this.hoursValuePicker = new mw.rcfilters.ui.ValuePickerWidget( + this.model, + { + classes: [ 'mw-rcfilters-ui-datePopupWidget-hours' ], + label: mw.msg( 'rcfilters-hours-title' ), + itemFilter: function ( itemModel ) { return Number( itemModel.getParamName() ) < 1; } + } + ); + this.daysValuePicker = new mw.rcfilters.ui.ValuePickerWidget( + this.model, + { + classes: [ 'mw-rcfilters-ui-datePopupWidget-days' ], + label: mw.msg( 'rcfilters-days-title' ), + itemFilter: function ( itemModel ) { return Number( itemModel.getParamName() ) >= 1; } + } + ); + + // Events + this.hoursValuePicker.connect( this, { choose: [ 'emit', 'days' ] } ); + this.daysValuePicker.connect( this, { choose: [ 'emit', 'days' ] } ); + + // Initialize + this.$element + .addClass( 'mw-rcfilters-ui-datePopupWidget' ) + .append( + this.$label + .addClass( 'mw-rcfilters-ui-datePopupWidget-title' ), + this.hoursValuePicker.$element, + this.daysValuePicker.$element + ); + }; + + /* Initialization */ + + OO.inheritClass( mw.rcfilters.ui.DatePopupWidget, OO.ui.Widget ); + OO.mixinClass( mw.rcfilters.ui.DatePopupWidget, OO.ui.mixin.LabelElement ); + + /* Events */ + + /** + * @event days + * @param {string} name Item name + * + * A days item was chosen + */ +}( mediaWiki ) ); |