Merge "RCFilters: Align TagItemWidget highlight in Safari"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / ui / mw.rcfilters.ui.FilterWrapperWidget.js
index 4626514..a748063 100644 (file)
@@ -14,6 +14,7 @@
         * @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 ) );