eslint: Update eslint-config-wikimedia to 0.16.2

Change-Id: I0c35ed9b5ab00952124cb0e5c6c48fbc0d734f60
This commit is contained in:
Ed Sanders 2020-06-26 11:45:20 +01:00
parent d554d7f426
commit bfdcd8dbf1
25 changed files with 4105 additions and 4190 deletions

View file

@ -2,18 +2,14 @@
"root": true,
"extends": [
"wikimedia/client",
"wikimedia/jquery"
"wikimedia/jquery",
"wikimedia/mediawiki",
"wikimedia/jsduck"
],
"globals": {
"OO": false,
"mw": false
},
"rules": {
"max-len": "off",
"max-statements-per-line": "off",
"no-jquery/no-class-state": "off",
"no-jquery/no-noop": "off",
"no-jquery/no-now": "off",
"no-jquery/no-support": "off"
}
}

View file

@ -12,9 +12,8 @@ module.exports = function ( grunt ) {
banana: conf.MessagesDirs,
eslint: {
options: {
extensions: [ '.js', '.json' ],
fix: grunt.option( 'fix' ),
cache: true
cache: true,
fix: grunt.option( 'fix' )
},
all: [
'**/*.{js,json}',
@ -23,8 +22,7 @@ module.exports = function ( grunt ) {
},
stylelint: {
options: {
fix: grunt.option( 'fix' ),
syntax: 'less'
fix: grunt.option( 'fix' )
},
src: 'resources/mmv/**/*.{css,less}'
},

View file

@ -53,7 +53,7 @@
"jQuery.Promise",
"jQuery.Deferred",
"jQuery.Event",
"jqXHR"
"jQuery.jqXHR"
]
},
{

View file

@ -97,6 +97,6 @@
*/
/**
* @class jqXHR
* @class jQuery.jqXHR
* An XMLHttpRequest object wrapped by jQuery
*/

8142
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -6,10 +6,10 @@
"doc": "jsduck"
},
"devDependencies": {
"eslint-config-wikimedia": "0.15.3",
"eslint-config-wikimedia": "0.16.2",
"grunt": "1.1.0",
"grunt-banana-checker": "0.9.0",
"grunt-eslint": "22.0.0",
"grunt-eslint": "23.0.0",
"grunt-stylelint": "0.15.0",
"grunt-svgmin": "6.0.0",
"stylelint-config-wikimedia": "0.10.1"

View file

@ -57,7 +57,7 @@
* same image 10 times by hitting the prev/next buttons, there will be 10
* image-view events, etc.
*
* @property
* @property {Object}
* @static
*/
L.logActions = {

View file

@ -51,7 +51,6 @@
*/
L.schema = 'MultimediaViewerDuration';
// eslint-disable-next-line valid-jsdoc
/**
* Saves the start of a duration
*
@ -80,7 +79,6 @@
return this;
};
// eslint-disable-next-line valid-jsdoc
/**
* Saves the stop of a duration
*
@ -108,7 +106,6 @@
return this;
};
// eslint-disable-next-line valid-jsdoc
/**
* Records the duration log event
*

View file

@ -31,8 +31,8 @@
*/
ROUTE_REGEXP: /^\/media\/(.+)$/,
/**
* @property
* RegExp representing the legacy media route
* @property {RegExp}
* Regular expression representing the legacy media route
* @member mw.mmv
*/
LEGACY_ROUTE_REGEXP: /^mediaviewer\/(.+)$/,

View file

@ -315,6 +315,12 @@
DP.setButtonText = function ( sizeClass, extension, width, height ) {
var sizeClassMessage, sizeMessage, dimensionMessage;
// The following messages are used here:
// * multimediaviewer-download-original-button-name
// * multimediaviewer-download-small-button-name
// * multimediaviewer-download-medium-button-name
// * multimediaviewer-download-large-button-name
// * multimediaviewer-download-xl-button-name
sizeClassMessage = mw.message( 'multimediaviewer-download-' + sizeClass + '-button-name' ).text();
dimensionMessage = mw.message( 'multimediaviewer-embed-dimensions', width, height ).text();
sizeMessage = mw.message( 'multimediaviewer-embed-dimensions-with-file-format',
@ -387,7 +393,10 @@
attributionCtaMessage = ( license && license.needsAttribution() ) ?
'multimediaviewer-download-attribution-cta-header' :
'multimediaviewer-download-optional-attribution-cta-header';
// Message defined above
// eslint-disable-next-line mediawiki/msg-doc
this.$attributionCtaHeader.text( mw.message( attributionCtaMessage ).text() );
// eslint-disable-next-line mediawiki/msg-doc
this.$attributionHowHeader.text( mw.message( attributionCtaMessage ).text() );
};

View file

@ -44,6 +44,7 @@
items = [],
choices = {};
// eslint-disable-next-line mediawiki/class-doc
dropdown = new OO.ui.DropdownWidget( {
classes: classes
} );
@ -202,7 +203,15 @@
).text()
) );
// The following messagse are used here:
return mw.message(
// The following messages are used here:
// * multimediaviewer-default-embed-dimensions
// * multimediaviewer-original-embed-dimensions
// * multimediaviewer-xl-embed-dimensions
// * multimediaviewer-large-embed-dimensions
// * multimediaviewer-medium-embed-dimensions
// * multimediaviewer-small-embed-dimensions
'multimediaviewer-' + sizeLabel + '-embed-dimensions',
dimensions
).text();

View file

@ -132,6 +132,10 @@
align: 'top',
multiline: true,
textInput: {
// The following classes are used here:
// * mw-editfont-monospace
// * mw-editfont-sans-serif
// * mw-editfont-serif
classes: [ 'mw-editfont-' + mw.user.options.get( 'editfont' ) ],
placeholder: mw.message( 'multimediaviewer-reuse-loading-placeholder' ).text(),
autosize: true,

View file

@ -43,7 +43,7 @@
* @override
* @param {Object} parameters
* @param {Object} [ajaxOptions]
* @return {jQuery.Promise.<Object, jqXHR>} Done: API response data. Fail: Error code.
* @return {jQuery.Promise} Done: API response data. Fail: Error code.
*/
Api.prototype.ajax = function ( parameters, ajaxOptions ) {
var start = ( new Date() ).getTime(),

View file

@ -279,7 +279,7 @@
*
* @param {string} type the type of request to be measured
* @param {number} total the total load time tracked with a basic technique
* @param {jqXHR} jqxhr
* @param {jQuery.jqXHR} jqxhr
*/
PL.recordJQueryEntry = function ( type, total, jqxhr ) {
var perf = this;
@ -339,7 +339,7 @@
*
* @param {string} type the type of request to be measured
* @param {number} total the total load time tracked with a basic technique
* @param {jqXHR} jqxhr
* @param {jQuery.jqXHR} jqxhr
*/
PL.recordJQueryEntryDelayed = function ( type, total, jqxhr ) {
var perf = this;

View file

@ -214,6 +214,7 @@
this.fetchThumbnailForLightboxImage(
image, imageWidths.real
).then( function ( thumbnail, image ) {
// eslint-disable-next-line mediawiki/class-doc
image.className = ext;
viewer.setImage( ui, thumbnail, image, imageWidths );
}, function ( error ) {
@ -286,6 +287,7 @@
// know what size it should be. We still assign it to allow for
// size calculations in getCurrentImageWidths, which needs to know
// the aspect ratio
// eslint-disable-next-line mediawiki/class-doc
$initialImage.hide()
.removeAttr( 'style' )
.removeClass()
@ -336,6 +338,7 @@
} );
}
// eslint-disable-next-line mediawiki/class-doc
imageElement.className = 'mw-mmv-final-image ' + image.filePageTitle.getExtension().toLowerCase();
imageElement.alt = image.alt;

View file

@ -116,6 +116,24 @@
LP.getShortName = function () {
var message = 'multimediaviewer-license-' + ( this.internalName || '' );
if ( mw.messages.exists( message ) ) {
// The following messages are used here:
// * multimediaviewer-license-cc-by-1.0
// * multimediaviewer-license-cc-sa-1.0
// * multimediaviewer-license-cc-by-sa-1.0
// * multimediaviewer-license-cc-by-2.0
// * multimediaviewer-license-cc-by-sa-2.0
// * multimediaviewer-license-cc-by-2.1
// * multimediaviewer-license-cc-by-sa-2.1
// * multimediaviewer-license-cc-by-2.5
// * multimediaviewer-license-cc-by-sa-2.5
// * multimediaviewer-license-cc-by-3.0
// * multimediaviewer-license-cc-by-sa-3.0
// * multimediaviewer-license-cc-by-4.0
// * multimediaviewer-license-cc-by-sa-4.0
// * multimediaviewer-license-cc-pd
// * multimediaviewer-license-cc-zero
// * multimediaviewer-license-pd
// * multimediaviewer-license-default
return mw.message( message ).text();
} else {
return this.shortName;

View file

@ -85,7 +85,7 @@
/**
* Maximum blownup factor tolerated
*
* @property MAX_BLOWUP_FACTOR
* @property {number} MAX_BLOWUP_FACTOR
* @static
*/
Canvas.MAX_BLOWUP_FACTOR = 11;
@ -93,7 +93,7 @@
/**
* Blowup factor threshold at which blurring kicks in
*
* @property BLUR_BLOWUP_FACTOR_THRESHOLD
* @property {number} BLUR_BLOWUP_FACTOR_THRESHOLD
* @static
*/
Canvas.BLUR_BLOWUP_FACTOR_THRESHOLD = 2;

View file

@ -53,7 +53,7 @@
/**
* Maximum number of restriction icons before default icon is used
*
* @property MAX_RESTRICT
* @property {number} MAX_RESTRICT
* @static
*/
MetadataPanel.MAX_RESTRICT = 4;
@ -465,7 +465,7 @@
MPP.setDateTime = function ( date, created ) {
this.$datetime.text(
mw.message(
'multimediaviewer-datetime-' + ( created ? 'created' : 'uploaded' ),
( created ? 'multimediaviewer-datetime-created' : 'multimediaviewer-datetime-uploaded' ),
date
).text()
);
@ -631,6 +631,22 @@
validRestrictions = 0;
restrictions.forEach( function ( value, index ) {
// The following messages are used here:
// * multimediaviewer-restriction-2257
// * multimediaviewer-restriction-aus-reserve
// * multimediaviewer-restriction-communist
// * multimediaviewer-restriction-costume
// * multimediaviewer-restriction-currency
// * multimediaviewer-restriction-design
// * multimediaviewer-restriction-fan-art
// * multimediaviewer-restriction-ihl
// * multimediaviewer-restriction-insignia
// * multimediaviewer-restriction-ita-mibac
// * multimediaviewer-restriction-nazi
// * multimediaviewer-restriction-personality
// * multimediaviewer-restriction-trademarked
// * multimediaviewer-restriction-default
// * multimediaviewer-restriction-default-and-others
if ( !mw.message( 'multimediaviewer-restriction-' + value ).exists() || value === 'default' || index + 1 > MetadataPanel.MAX_RESTRICT ) {
showDefault = true; // If the restriction isn't defined or there are more than MAX_RESTRICT of them, show a generic symbol at the end
return;
@ -663,6 +679,7 @@
MPP.createRestriction = function ( type ) {
var $label = $( '<span>' )
.addClass( 'mw-mmv-label mw-mmv-restriction-label' )
// Messages documented above
.prop( 'title', mw.message( 'multimediaviewer-restriction-' + type ).text() )
.tipsy( {
delay: mw.config.get( 'wgMultimediaViewer' ).tooltipDelay,
@ -670,6 +687,21 @@
} );
$( '<span>' )
// The following classes are used here:
// * mw-mmv-restriction-2257
// * mw-mmv-restriction-aus-reserve
// * mw-mmv-restriction-communist
// * mw-mmv-restriction-costume
// * mw-mmv-restriction-currency
// * mw-mmv-restriction-design
// * mw-mmv-restriction-fan-art
// * mw-mmv-restriction-ihl
// * mw-mmv-restriction-insignia
// * mw-mmv-restriction-ita-mibac
// * mw-mmv-restriction-nazi
// * mw-mmv-restriction-personality
// * mw-mmv-restriction-trademarked:after
// * mw-mmv-restriction-default
.addClass( 'mw-mmv-restriction-label-inner mw-mmv-restriction-' +
( type === 'default-and-others' ? 'default' : type ) )
.text( mw.message( 'multimediaviewer-restriction-' + type ).text() )
@ -718,6 +750,9 @@
mw.language.convertNumber( latdeg ),
mw.language.convertNumber( latmin ),
mw.language.convertNumber( latsec ),
// The following messages are used here:
// * multimediaviewer-geoloc-north
// * multimediaviewer-geoloc-south
mw.message( latmsg ).text()
).text(),
@ -726,6 +761,9 @@
mw.language.convertNumber( longdeg ),
mw.language.convertNumber( longmin ),
mw.language.convertNumber( longsec ),
// The following messages are used here:
// * multimediaviewer-geoloc-east
// * multimediaviewer-geoloc-west
mw.message( longmsg ).text()
).text()
).text()

View file

@ -56,6 +56,9 @@
function makeTab( type ) {
return new OO.ui.MenuOptionWidget( {
data: type,
// The following messages are used here:
// * multimediaviewer-embed-tab
// * multimediaviewer-share-tab
label: mw.message( 'multimediaviewer-' + type + '-tab' ).text()
} );
}

View file

@ -57,6 +57,7 @@
SBP.createButton = function ( cssClass ) {
var $button;
// eslint-disable-next-line mediawiki/class-doc
$button = $( '<a>' )
.addClass( 'mw-mmv-stripe-button empty ' + cssClass )
// elements are right-floated so we use prepend instead of append to keep the order

View file

@ -128,6 +128,7 @@
TTFP.empty = function () {
this.$element.empty();
// eslint-disable-next-line mediawiki/class-doc
this.$container
.removeClass( this.options.styles.concat( [ 'mw-mmv-ttf-untruncated', 'mw-mmv-ttf-truncated' ] ) )
.addClass( 'empty' );
@ -219,6 +220,7 @@
newClass = 'mw-mmv-ttf-normal',
field = this;
// eslint-disable-next-line mediawiki/class-doc
this.$container
.removeClass( this.options.styles.concat( [ 'mw-mmv-ttf-untruncated', 'mw-mmv-ttf-truncated' ] ) )
.addClass( newClass );
@ -232,6 +234,7 @@
oldClass = newClass;
newClass = v;
// eslint-disable-next-line mediawiki/class-doc
field.$container.removeClass( oldClass ).addClass( newClass );
} );
};

View file

@ -196,6 +196,9 @@
ODP.createConfirmationPane = function ( divClass, propName, msgs ) {
var dialog = this,
$div = $( '<div>' )
// The following classes are used here:
// * mw-mmv-enable-confirmation
// * mw-mmv-disable-confirmation
.addClass( divClass )
.appendTo( this.$dialog );
@ -223,6 +226,9 @@
*/
ODP.createActionPane = function ( divClass, propName, smsg, msgs, enabled ) {
var $div = $( '<div>' )
// The following classes are used here:
// * mw-mmv-options-enable
// * mw-mmv-options-disable
.addClass( divClass )
.appendTo( this.$dialog );

View file

@ -1,8 +1,10 @@
{
"extends": [
"wikimedia/qunit",
"../../.eslintrc.json"
"wikimedia/qunit"
],
"globals": {
"sinon": "readonly"
},
"rules": {
"no-jquery/no-global-selector": "off",
"no-jquery/no-sizzle": "off"

View file

@ -150,7 +150,7 @@
* were created in functions upon which `asyncMethod` was called have
* resolved.
*
* @return {$.Promise}
* @return {jQuery.Promise}
*/
MTH.waitForAsync = function () {
var deferred = $.Deferred();

View file

@ -25,7 +25,7 @@
* @param {number} height
* @param {jQuery} $qf fixture element
* @param {Object} sandbox sinon instance
* @return {TruncatableTextField}
* @return {mw.mmv.ui.TruncatableTextField}
*/
function getField( width, height, $qf, sandbox ) {
var $container = $( '<div>' ).appendTo( $qf ),