Merge "resourceloader: Fix @covers for CSSMin tests"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 28 Jul 2017 14:08:42 +0000 (14:08 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 28 Jul 2017 14:08:43 +0000 (14:08 +0000)
21 files changed:
includes/specials/pagers/UsersPager.php
jsduck.json
maintenance/jsduck/categories.json
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueriesModel.js
resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.SavedQueryItemModel.js
resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js
resources/src/mediawiki.rcfilters/mw.rcfilters.HighlightColors.js
resources/src/mediawiki.rcfilters/mw.rcfilters.init.js
resources/src/mediawiki.rcfilters/mw.rcfilters.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ChangesLimitButtonWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.DateButtonWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterItemHighlightButton.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuHeaderWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterMenuSectionOptionWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FilterTagMultiselectWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.FormWrapperWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListItemWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.SavedLinksListWidget.js
resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.ValuePickerWidget.js
tests/phpunit/suite.xml

index 142b128..cdb9130 100644 (file)
@@ -280,12 +280,12 @@ class UsersPager extends AlphabeticPager {
                                'class' => 'HTMLUserTextField',
                                'label' => $this->msg( 'listusersfrom' )->text(),
                                'name' => 'username',
-                               'value' => $this->requestedUser,
+                               'default' => $this->requestedUser,
                        ],
                        'dropdown' => [
                                'label' => $this->msg( 'group' )->text(),
                                'name' => 'group',
-                               'value' => $this->requestedGroup,
+                               'default' => $this->requestedGroup,
                                'class' => 'HTMLSelectField',
                                'options' => $groupOptions,
                        ],
@@ -294,26 +294,26 @@ class UsersPager extends AlphabeticPager {
                                'label' => $this->msg( 'listusers-editsonly' )->text(),
                                'name' => 'editsOnly',
                                'id' => 'editsOnly',
-                               'value' => $this->editsOnly
+                               'default' => $this->editsOnly
                        ],
                        'creationSort' => [
                                'type' => 'check',
                                'label' => $this->msg( 'listusers-creationsort' )->text(),
                                'name' => 'creationSort',
                                'id' => 'creationSort',
-                               'value' => $this->creationSort
+                               'default' => $this->creationSort
                        ],
                        'desc' => [
                                'type' => 'check',
                                'label' => $this->msg( 'listusers-desc' )->text(),
                                'name' => 'desc',
                                'id' => 'desc',
-                               'value' => $this->mDefaultDirection
+                               'default' => $this->mDefaultDirection
                        ],
                        'limithiddenfield' => [
                                'class' => 'HTMLHiddenField',
                                'name' => 'limit',
-                               'value' => $this->mLimit
+                               'default' => $this->mLimit
                        ]
                ];
 
@@ -347,6 +347,7 @@ class UsersPager extends AlphabeticPager {
                $htmlForm = HTMLForm::factory( 'ooui', $formDescriptor, $this->getContext() );
                $htmlForm
                        ->setMethod( 'get' )
+                       ->setAction( Title::newFromText( $self )->getLocalURL() )
                        ->setId( 'mw-listusers-form' )
                        ->setFormIdentifier( 'mw-listusers-form' )
                        ->suppressDefaultSubmit()
index f7771d1..cbd4676 100644 (file)
@@ -16,6 +16,7 @@
                "resources/src/mediawiki.action",
                "resources/src/mediawiki.language",
                "resources/src/mediawiki.messagePoster",
+               "resources/src/mediawiki.rcfilters",
                "resources/src/mediawiki.special",
                "resources/src/mediawiki.toolbar",
                "resources/src/mediawiki.widgets",
index 2c8c8b0..899d80d 100644 (file)
@@ -66,7 +66,8 @@
                                        "mw.Upload*",
                                        "mw.ForeignUpload",
                                        "mw.ForeignStructuredUpload*",
-                                       "mw.GallerySlideshow"
+                                       "mw.GallerySlideshow",
+                                       "mw.rcfilters*"
                                ]
                        },
                        {
index 3281735..4ea1e03 100644 (file)
        /**
         * Get the highlight parameters based on current filter configuration
         *
-        * @return {Object} Object where keys are "<filter name>_color" and values
+        * @return {Object} Object where keys are `<filter name>_color` and values
         *                  are the selected highlight colors.
         */
        mw.rcfilters.dm.FiltersViewModel.prototype.getHighlightParameters = function () {
         *
         * @param {Object} representation Object containing representation of
         *  some or all highlight values
-        * @return {Object} Object where keys are "<filter name>_color" and values
+        * @return {Object} Object where keys are `<filter name>_color` and values
         *                  are the selected highlight colors. The returned object
         *                  contains all available filters either with a color value
         *                  or with null.
index 8536570..29134a5 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * View model for saved queries
         *
+        * @class
         * @mixins OO.EventEmitter
         * @mixins OO.EmitterList
         *
index 729aee3..c066a1f 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * View model for a single saved query
         *
+        * @class
         * @mixins OO.EventEmitter
         *
         * @constructor
@@ -31,7 +32,7 @@
        /* Events */
 
        /**
-        * @update
+        * @event update
         *
         * Model has been updated
         */
@@ -63,7 +64,7 @@
        /**
         * Get query label
         *
-        * @return {label} Query label
+        * @return {string} Query label
         */
        mw.rcfilters.dm.SavedQueryItemModel.prototype.getLabel = function () {
                return this.label;
index f1468b8..2563479 100644 (file)
@@ -2,7 +2,9 @@
        /* eslint no-underscore-dangle: "off" */
        /**
         * Controller for the filters in Recent Changes
+        * @class
         *
+        * @constructor
         * @param {mw.rcfilters.dm.FiltersViewModel} filtersModel Filters view model
         * @param {mw.rcfilters.dm.ChangesListViewModel} changesListModel Changes list view model
         * @param {mw.rcfilters.dm.SavedQueriesModel} savedQueriesModel Saved queries model
                        views = {},
                        items = [],
                        uri = new mw.Uri(),
-                       $changesList = $( '.mw-changeslist' ).first().contents(),
-                       experimentalViews = mw.config.get( 'wgStructuredChangeFiltersEnableExperimentalViews' );
+                       $changesList = $( '.mw-changeslist' ).first().contents();
 
                // Prepare views
-               if ( namespaceStructure && experimentalViews ) {
+               if ( namespaceStructure ) {
                        items = [];
                        $.each( namespaceStructure, function ( namespaceID, label ) {
                                // Build and clean up the individual namespace items definition
@@ -70,7 +71,7 @@
                                } ]
                        };
                }
-               if ( tagList && experimentalViews ) {
+               if ( tagList ) {
                        views.tags = {
                                title: mw.msg( 'rcfilters-view-tags' ),
                                trigger: '#',
                        );
        };
 
-       /**
-        * Get an object representing the default parameter state, whether
-        * it is from the model defaults or from the saved queries.
-        *
-        * @return {Object} Default parameters
-        */
-       mw.rcfilters.Controller.prototype._getDefaultParams = function () {
-               var data, queryHighlights,
-                       savedParams = {},
-                       savedHighlights = {},
-                       defaultSavedQueryItem = this.savedQueriesModel.getItemByID( this.savedQueriesModel.getDefault() );
-
-               if ( mw.config.get( 'wgStructuredChangeFiltersEnableSaving' ) &&
-                       defaultSavedQueryItem ) {
-
-                       data = defaultSavedQueryItem.getData();
-
-                       queryHighlights = data.highlights || {};
-                       savedParams = this.filtersModel.getParametersFromFilters( data.filters || {} );
-
-                       // Translate highlights to parameters
-                       savedHighlights.highlight = String( Number( queryHighlights.highlight ) );
-                       $.each( queryHighlights, function ( filterName, color ) {
-                               if ( filterName !== 'highlights' ) {
-                                       savedHighlights[ filterName + '_color' ] = color;
-                               }
-                       } );
-
-                       return $.extend( true, {}, savedParams, savedHighlights, { invert: data.invert } );
-               }
-
-               return $.extend(
-                       { highlight: '0' },
-                       this.filtersModel.getDefaultParams()
-               );
-       };
-
        /**
         * Get an object representing the default parameter state, whether
         * it is from the model defaults or from the saved queries.
         * Track usage of highlight feature
         *
         * @param {string} action
-        * @param {array|object|string} filters
+        * @param {Array|Object|string} filters
         */
        mw.rcfilters.Controller.prototype._trackHighlight = function ( action, filters ) {
                filters = typeof filters === 'string' ? { name: filters } : filters;
index ebeaad6..0bef902 100644 (file)
@@ -3,7 +3,8 @@
         * Supported highlight colors.
         * Warning: These are also hardcoded in "styles/mw.rcfilters.variables.less"
         *
-        * @type {string[]}
+        * @member mw.rcfilters
+        * @property {string[]}
         */
        mw.rcfilters.HighlightColors = [ 'c1', 'c2', 'c3', 'c4', 'c5' ];
 }( mediaWiki ) );
index e758f26..04a3fda 100644 (file)
@@ -2,12 +2,11 @@
  * JavaScript for Special:RecentChanges
  */
 ( function ( mw, $ ) {
-       /**
-        * @class mw.rcfilters
-        * @singleton
-        */
        var rcfilters = {
-               /** */
+               /**
+                * @member mw.rcfilters
+                * @private
+                */
                init: function () {
                        var filtersModel = new mw.rcfilters.dm.FiltersViewModel(),
                                changesListModel = new mw.rcfilters.dm.ChangesListViewModel(),
index 8cea27e..c62d6f2 100644 (file)
@@ -1,4 +1,8 @@
 ( function ( mw ) {
+       /**
+        * @class
+        * @singleton
+        */
        mw.rcfilters = {
                dm: {},
                ui: {},
index 61ee4a5..86d74bf 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * Widget defining the button controlling the popup for the number of results
         *
+        * @class
         * @extends OO.ui.Widget
         *
         * @constructor
index 1569f38..870aef7 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * Widget defining the button controlling the popup for the date range for the results
         *
+        * @class
         * @extends OO.ui.Widget
         *
         * @constructor
index 835cec8..7426123 100644 (file)
@@ -52,7 +52,6 @@
 
        /**
         * @static
-        * @inheritdoc
         */
        mw.rcfilters.ui.FilterItemHighlightButton.static.cancelButtonMouseDownEvents = true;
 
index da71d70..eeb5ddc 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * Menu header for the RCFilters filters menu
         *
+        * @class
         * @extends OO.ui.Widget
         *
         * @constructor
index 88479c3..e053914 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * A widget representing a menu section for filter groups
         *
+        * @class
         * @extends OO.ui.MenuSectionOptionWidget
         *
         * @constructor
index 6a6790f..b1f152d 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * List displaying all filter groups
         *
+        * @class
         * @extends OO.ui.MenuTagMultiselectWidget
         * @mixins OO.ui.mixin.PendingElement
         *
@@ -47,7 +48,6 @@
                                footers: [
                                        {
                                                name: 'viewSelect',
-                                               disabled: !mw.config.get( 'wgStructuredChangeFiltersEnableExperimentalViews' ),
                                                sticky: false,
                                                // View select menu, appears on default view only
                                                $element: $( '<div>' )
                        );
                }
 
-               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( {
-                                               framed: false,
-                                               data: 'namespaces',
-                                               icon: 'article',
-                                               title: mw.msg( 'rcfilters-view-namespaces-tooltip' )
-                                       } ),
-                                       new OO.ui.ButtonOptionWidget( {
-                                               framed: false,
-                                               data: 'tags',
-                                               icon: 'tag',
-                                               title: mw.msg( 'rcfilters-view-tags-tooltip' )
-                                       } )
-                               ]
-                       } );
+               // 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( {
+                                       framed: false,
+                                       data: 'namespaces',
+                                       icon: 'article',
+                                       title: mw.msg( 'rcfilters-view-namespaces-tooltip' )
+                               } ),
+                               new OO.ui.ButtonOptionWidget( {
+                                       framed: false,
+                                       data: 'tags',
+                                       icon: 'tag',
+                                       title: mw.msg( 'rcfilters-view-tags-tooltip' )
+                               } )
+                       ]
+               } );
 
-                       // 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 )
-                                                       )
-                                       )
-                       );
+               // 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' } );
-               }
+               // Event
+               this.viewsSelectWidget.connect( this, { choose: 'onViewsSelectWidgetChoose' } );
 
                rcFiltersRow.append(
                        $( '<div>' )
        };
 
        /**
-        * @inheridoc
+        * @inheritdoc
         */
        mw.rcfilters.ui.FilterTagMultiselectWidget.prototype.onChangeTags = function () {
                // Parent method
index ee8e0bc..50e3637 100644 (file)
                } );
 
                // Hide namespaces and tags
-               if ( mw.config.get( 'wgStructuredChangeFiltersEnableExperimentalViews' ) ) {
-                       $namespaceSelect.closest( 'tr' ).detach();
-                       this.$element.find( '.mw-tagfilter-label' ).closest( 'tr' ).detach();
-               }
+               $namespaceSelect.closest( 'tr' ).detach();
+               this.$element.find( '.mw-tagfilter-label' ).closest( 'tr' ).detach();
 
                // Hide limit and days
                this.$element.find( '.rclinks' ).detach();
index b6b20ee..cac1059 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * Quick links menu option widget
         *
+        * @class
         * @extends OO.ui.Widget
         * @mixins OO.ui.mixin.LabelElement
         * @mixins OO.ui.mixin.IconElement
index 27a21d6..7eda90a 100644 (file)
@@ -2,6 +2,7 @@
        /**
         * Quick links widget
         *
+        * @class
         * @extends OO.ui.Widget
         *
         * @constructor
index 7045ab6..ac0e50d 100644 (file)
@@ -3,6 +3,7 @@
         * Widget defining the behavior used to choose from a set of values
         * in a single_value group
         *
+        * @class
         * @extends OO.ui.Widget
         * @mixins OO.ui.mixin.LabelElement
         *
index 251a4a2..e8256ef 100644 (file)
@@ -68,6 +68,9 @@
                        <directory suffix=".php">../../includes</directory>
                        <directory suffix=".php">../../languages</directory>
                        <directory suffix=".php">../../maintenance</directory>
+                       <exclude>
+                               <directory suffix=".php">../../languages/messages</directory>
+                       </exclude>
                </whitelist>
        </filter>
 </phpunit>