Merge "RCFilters: Change the input icon on interaction"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 23 Jun 2017 18:35:45 +0000 (18:35 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 23 Jun 2017 18:35:45 +0000 (18:35 +0000)
1  2 
resources/Resources.php
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js

diff --combined resources/Resources.php
@@@ -1415,14 -1415,12 +1415,14 @@@ return 
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.css',
                'dependencies' => [
                        'mediawiki.action.edit.styles',
 +                      'jquery.accessKeyLabel',
                        'jquery.textSelection',
                        'jquery.byteLimit',
                        'mediawiki.api',
                ],
        ],
        'mediawiki.action.edit.styles' => [
 +              'targets' => [ 'desktop', 'mobile' ],
                'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css',
        ],
        'mediawiki.action.edit.collapsibleFooter' => [
                ],
                'dependencies' => [
                        'oojs',
 +                      'mediawiki.api',
 +                      'mediawiki.api.options',
                        'mediawiki.Uri',
                        'mediawiki.user',
                ],
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagItemWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuHeaderWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.MenuSelectWidget.js',
 +                      'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ViewSwitchWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterWrapperWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesListWrapperWidget.js',
                        'resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListWidget.js',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.TagItemWidget.less',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterMenuHeaderWidget.less',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.MenuSelectWidget.less',
 +                      'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ViewSwitchWidget.less',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.FilterWrapperWidget.less',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ChangesListWrapperWidget.less',
                        'resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.HighlightColorPickerWidget.less',
                ],
                'messages' => [
                        'rcfilters-activefilters',
 +                      'rcfilters-advancedfilters',
                        'rcfilters-quickfilters',
                        'rcfilters-quickfilters-placeholder-title',
                        'rcfilters-quickfilters-placeholder-description',
                        'oojs-ui.styles.icons-editing-styling',
                        'oojs-ui.styles.icons-interactions',
                        'oojs-ui.styles.icons-content',
+                       'oojs-ui.styles.icons-layout',
                ],
        ],
        'mediawiki.special' => [
                        'oojs-ui.styles.icons-interactions',
                        'oojs-ui.styles.icons-moderation',
                        'mediawiki.widgets.datetime',
 +                      'jquery.makeCollapsible',
                ],
                'messages' => [
                        'apisandbox-intro',
                        'apisandbox-sending-request',
                        'apisandbox-loading-results',
                        'apisandbox-results-error',
 +                      'apisandbox-results-login-suppressed',
                        'apisandbox-request-selectformat-label',
                        'apisandbox-request-format-url-label',
                        'apisandbox-request-url-label',
        'mediawiki.special.search.commonsInterwikiWidget' => [
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.search.commonsInterwikiWidget.js',
                'dependencies' => [
 +                      'mediawiki.api',
                        'mediawiki.Uri',
                        'mediawiki.jqueryMsg'
                ],
                        'resources/src/mediawiki.widgets/mw.widgets.UserInputWidget.js',
                ],
                'dependencies' => [
 +                      'mediawiki.api',
                        'oojs-ui-widgets',
                ],
                'targets' => [ 'desktop', 'mobile' ],
                        'resources/src/mediawiki.widgets/mw.widgets.UsersMultiselectWidget.js',
                ],
                'dependencies' => [
 +                      'mediawiki.api',
                        'oojs-ui-widgets',
                ],
                'targets' => [ 'desktop', 'mobile' ],
                        ],
                ],
                'dependencies' => [
 +                      'mediawiki.api',
                        'oojs-ui-core',
                ],
        ],
                                hideWhenOutOfView: false,
                                hideOnChoose: false,
                                width: 650,
 -                              $footer: $( '<div>' )
 -                                      .append(
 -                                              new OO.ui.ButtonWidget( {
 -                                                      framed: false,
 -                                                      icon: 'feedback',
 -                                                      flags: [ 'progressive' ],
 -                                                      label: mw.msg( 'rcfilters-filterlist-feedbacklink' ),
 -                                                      href: 'https://www.mediawiki.org/wiki/Help_talk:New_filters_for_edit_review'
 -                                              } ).$element
 -                                      )
 +                              footers: [
 +                                      {
 +                                              name: 'viewSelect',
 +                                              // View select menu, appears on default view only
 +                                              $element: $( '<div>' )
 +                                                      .append( new mw.rcfilters.ui.ViewSwitchWidget( this.controller, this.model ).$element ),
 +                                              views: [ 'default' ]
 +                                      },
 +                                      {
 +                                              name: 'feedback',
 +                                              // Feedback footer, appears on all views
 +                                              $element: $( '<div>' )
 +                                                      .append(
 +                                                              new OO.ui.ButtonWidget( {
 +                                                                      framed: false,
 +                                                                      icon: 'feedback',
 +                                                                      flags: [ 'progressive' ],
 +                                                                      label: mw.msg( 'rcfilters-filterlist-feedbacklink' ),
 +                                                                      href: 'https://www.mediawiki.org/wiki/Help_talk:New_filters_for_edit_review'
 +                                                              } ).$element
 +                                                      )
 +                                      }
 +                              ]
                        },
                        input: {
-                               icon: 'search',
+                               icon: 'menu',
                                placeholder: mw.msg( 'rcfilters-search-placeholder' )
                        }
                }, config ) );
                        );
                }
  
 +              if ( mw.config.get( 'wgStructuredChangeFiltersEnableExperimentalViews' ) ) {
 +                      // Add a selector at the right of the input
 +                      this.viewsSelectWidget = new OO.ui.ButtonSelectWidget( {
 +                              classes: [ 'mw-rcfilters-ui-filterTagMultiselectWidget-views-select-widget' ],
 +                              items: [
 +                                      new OO.ui.ButtonOptionWidget( {
 +                                              data: 'namespaces',
 +                                              icon: 'article',
 +                                              title: mw.msg( 'namespaces' )
 +                                      } ),
 +                                      new OO.ui.ButtonOptionWidget( {
 +                                              data: 'tags',
 +                                              icon: 'tag',
 +                                              title: mw.msg( 'rcfilters-view-tags' )
 +                                      } )
 +                              ]
 +                      } );
 +
 +                      // Rearrange the UI so the select widget is at the right of the input
 +                      this.$element.append(
 +                              $( '<div>' )
 +                                      .addClass( 'mw-rcfilters-ui-table' )
 +                                      .append(
 +                                              $( '<div>' )
 +                                                      .addClass( 'mw-rcfilters-ui-row' )
 +                                                      .append(
 +                                                              $( '<div>' )
 +                                                                      .addClass( 'mw-rcfilters-ui-cell' )
 +                                                                      .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-views-input' )
 +                                                                      .append( this.input.$element ),
 +                                                              $( '<div>' )
 +                                                                      .addClass( 'mw-rcfilters-ui-cell' )
 +                                                                      .addClass( 'mw-rcfilters-ui-filterTagMultiselectWidget-views-select' )
 +                                                                      .append( this.viewsSelectWidget.$element )
 +                                                      )
 +                                      )
 +                      );
 +
 +                      // Event
 +                      this.viewsSelectWidget.connect( this, { choose: 'onViewsSelectWidgetChoose' } );
 +              }
 +
                rcFiltersRow.append(
                        $( '<div>' )
                                .addClass( 'mw-rcfilters-ui-cell' )
  
        /* Methods */
  
 +      /**
 +       * Respond to view select widget choose event
 +       *
 +       * @param {OO.ui.ButtonOptionWidget} buttonOptionWidget Chosen widget
 +       */
 +      mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onViewsSelectWidgetChoose = function ( buttonOptionWidget ) {
 +              this.controller.switchView( buttonOptionWidget.getData() );
 +              this.viewsSelectWidget.selectItem( null );
 +              this.focus();
 +      };
 +
        /**
         * Respond to input change event
         *
                                this.input.setValue( '' );
                        }
                }
+               this.input.setIcon( isVisible ? 'search' : 'menu' );
        };
  
        /**
                this.selectTag( tagItem );
  
                // Scroll to the item
 -              if ( oldInputValue ) {
 +              if ( this.model.removeViewTriggers( oldInputValue ) ) {
                        // We're binding a 'once' to the itemVisibilityChange event
                        // so this happens when the menu is ready after the items
                        // are visible again, in case this is done right after the