* @cfg {jQuery} [$overlay] A jQuery object serving as overlay for popups
*/
mw.rcfilters.ui.FilterWrapperWidget = function MwRcfiltersUiFilterWrapperWidget( controller, model, savedQueriesModel, config ) {
+ var $bottom;
config = config || {};
// Parent
{ $overlay: this.$overlay }
);
- this.viewToggle = new OO.ui.ButtonSelectWidget( {
- classes: [ 'mw-rcfilters-ui-filterWrapperWidget-viewToggleButtons' ],
- items: [
- new OO.ui.ButtonOptionWidget( {
- data: 'namespaces',
- label: mw.msg( 'namespaces' ),
- icon: 'article',
- classes: [ 'mw-rcfilters-ui-filterWrapperWidget-viewToggleButtons-namespaces' ]
- } ),
- new OO.ui.ButtonOptionWidget( {
- data: 'tags',
- label: mw.msg( 'rcfilters-view-tags' ),
- icon: 'tag',
- classes: [ 'mw-rcfilters-ui-filterWrapperWidget-viewToggleButtons-tags' ]
- } )
- ]
- } );
-
- // Events
- this.model.connect( this, { update: 'onModelUpdate' } );
- this.viewToggle.connect( this, { select: 'onViewToggleSelect' } );
+ this.liveUpdateButton = new mw.rcfilters.ui.LiveUpdateButtonWidget(
+ this.controller
+ );
// Initialize
this.$element
}
+ $bottom = $( '<div>' )
+ .addClass( 'mw-rcfilters-ui-filterWrapperWidget-bottom' );
+
+ if ( mw.config.get( 'wgStructuredChangeFiltersEnableLiveUpdate' ) ) {
+ $bottom.append( this.liveUpdateButton.$element );
+ }
+
this.$element.append(
this.filterTagWidget.$element,
- this.viewToggle.$element
+ $bottom
);
- this.viewToggle.toggle( !!mw.config.get( 'wgStructuredChangeFiltersEnableExperimentalViews' ) );
};
/* Initialization */
OO.inheritClass( mw.rcfilters.ui.FilterWrapperWidget, OO.ui.Widget );
OO.mixinClass( mw.rcfilters.ui.FilterWrapperWidget, OO.ui.mixin.PendingElement );
-
- /* Methods */
-
- /**
- * Respond to model update event
- */
- mw.rcfilters.ui.FilterWrapperWidget.prototype.onModelUpdate = function () {
- // Synchronize the state of the toggle buttons with the current view
- this.viewToggle.selectItemByData( this.model.getCurrentView() );
- };
-
- /**
- * Respond to namespace toggle button click
- *
- * @param {OO.ui.ButtonWidget} buttonWidget The button that was clicked
- */
- mw.rcfilters.ui.FilterWrapperWidget.prototype.onViewToggleSelect = function ( buttonWidget ) {
- if ( buttonWidget ) {
- this.controller.switchView( buttonWidget.getData() );
- this.filterTagWidget.focus();
- }
- };
-
}( mediaWiki ) );