' )
// The following classes are used here:
@@ -658,8 +659,8 @@ const TruncatableTextField = require( './mmv.ui.truncatableTextField.js' );
// * 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() )
+ .addClass( `mw-mmv-restriction-label-inner mw-mmv-restriction-${ type === 'default-and-others' ? 'default' : type }` )
+ .text( mw.message( `multimediaviewer-restriction-${ type }` ).text() )
.appendTo( $label );
return $label;
@@ -676,13 +677,13 @@ const TruncatableTextField = require( './mmv.ui.truncatableTextField.js' );
}
const latitude = imageData.latitude >= 0 ? imageData.latitude : imageData.latitude * -1;
- const latmsg = `multimediaviewer-geoloc-${imageData.latitude >= 0 ? 'north' : 'south'}`;
+ const latmsg = `multimediaviewer-geoloc-${ imageData.latitude >= 0 ? 'north' : 'south' }`;
const latdeg = Math.floor( latitude );
let latremain = latitude - latdeg;
const latmin = Math.floor( ( latremain ) * 60 );
const longitude = imageData.longitude >= 0 ? imageData.longitude : imageData.longitude * -1;
- const longmsg = `multimediaviewer-geoloc-${imageData.longitude >= 0 ? 'east' : 'west'}`;
+ const longmsg = `multimediaviewer-geoloc-${ imageData.longitude >= 0 ? 'east' : 'west' }`;
const longdeg = Math.floor( longitude );
let longremain = longitude - longdeg;
const longmin = Math.floor( ( longremain ) * 60 );
@@ -724,11 +725,11 @@ const TruncatableTextField = require( './mmv.ui.truncatableTextField.js' );
this.$location.prop( 'href', (
'https://geohack.toolforge.org/geohack.php?pagename=' +
- `File:${imageData.title.getMain()
+ `File:${ imageData.title.getMain()
}¶ms=${
- Math.abs( imageData.latitude )}${imageData.latitude >= 0 ? '_N_' : '_S_'
- }${Math.abs( imageData.longitude )}${imageData.longitude >= 0 ? '_E_' : '_W_'
- }&language=${encodeURIComponent( mw.config.get( 'wgUserLanguage' ) )}`
+ Math.abs( imageData.latitude ) }${ imageData.latitude >= 0 ? '_N_' : '_S_'
+ }${ Math.abs( imageData.longitude ) }${ imageData.longitude >= 0 ? '_E_' : '_W_'
+ }&language=${ encodeURIComponent( mw.config.get( 'wgUserLanguage' ) ) }`
) );
this.$locationLi.removeClass( 'empty' );
diff --git a/resources/mmv/ui/mmv.ui.progressBar.js b/resources/mmv/ui/mmv.ui.progressBar.js
index b19ff32c2..a63df9ba0 100644
--- a/resources/mmv/ui/mmv.ui.progressBar.js
+++ b/resources/mmv/ui/mmv.ui.progressBar.js
@@ -42,6 +42,7 @@ const UiElement = require( './mmv.ui.js' );
.addClass( 'mw-mmv-progress-percent' )
.appendTo( this.$progress );
}
+
empty() {
this.hide();
}
@@ -68,13 +69,13 @@ const UiElement = require( './mmv.ui.js' );
// fast to 100 and we hide the bar when the animation is done
// FIXME: Use CSS transition
// eslint-disable-next-line no-jquery/no-animate
- this.$percent.animate( { width: `${percent}%` }, 50, 'swing', this.hide.bind( this ) );
+ this.$percent.animate( { width: `${ percent }%` }, 50, 'swing', this.hide.bind( this ) );
} else {
// When any other % update comes in, we make sure the bar is visible
// and we animate to the right position
// FIXME: Use CSS transition
// eslint-disable-next-line no-jquery/no-animate
- this.$percent.animate( { width: `${percent}%` } );
+ this.$percent.animate( { width: `${ percent }%` } );
}
}
@@ -85,7 +86,7 @@ const UiElement = require( './mmv.ui.js' );
*/
jumpTo( percent ) {
this.$progress.removeClass( 'empty' );
- this.$percent.stop().css( { width: `${percent}%` } );
+ this.$percent.stop().css( { width: `${ percent }%` } );
}
}
diff --git a/resources/mmv/ui/mmv.ui.reuse.dialog.js b/resources/mmv/ui/mmv.ui.reuse.dialog.js
index d2e5f81aa..ac3f13fcb 100644
--- a/resources/mmv/ui/mmv.ui.reuse.dialog.js
+++ b/resources/mmv/ui/mmv.ui.reuse.dialog.js
@@ -47,6 +47,7 @@ const Dialog = require( './mmv.ui.dialog.js' );
this.eventPrefix = 'use-this-file';
}
+
// FIXME this should happen outside the dialog and the tabs, but we need to improve
initTabs() {
const makeTab = ( type ) => new OO.ui.MenuOptionWidget( {
@@ -54,7 +55,7 @@ const Dialog = require( './mmv.ui.dialog.js' );
// The following messages are used here:
// * multimediaviewer-embed-tab
// * multimediaviewer-share-tab
- label: mw.message( `multimediaviewer-${type}-tab` ).text()
+ label: mw.message( `multimediaviewer-${ type }-tab` ).text()
} );
this.reuseTabs = new OO.ui.MenuSelectWidget( {
@@ -104,6 +105,7 @@ const Dialog = require( './mmv.ui.dialog.js' );
this.tabsSetValues = undefined;
}
}
+
toggleDialog() {
if ( this.tabs === null ) {
this.initTabs();
diff --git a/resources/mmv/ui/mmv.ui.truncatableTextField.js b/resources/mmv/ui/mmv.ui.truncatableTextField.js
index 79bf8a7e0..909b23f58 100644
--- a/resources/mmv/ui/mmv.ui.truncatableTextField.js
+++ b/resources/mmv/ui/mmv.ui.truncatableTextField.js
@@ -94,9 +94,11 @@ const UiElement = require( './mmv.ui.js' );
.addClass( 'mw-mmv-ttf-container empty' )
.append( this.$element, this.$ellipsis );
}
+
attach() {
$( window ).on( 'resize.mmv-ttf', mw.util.debounce( this.repaint.bind( this ), 100 ) );
}
+
unattach() {
$( window ).off( 'resize.mmv-ttf' );
}
@@ -113,6 +115,7 @@ const UiElement = require( './mmv.ui.js' );
this.$ellipsis.hide();
this.shrink();
}
+
empty() {
this.$element.empty();
// eslint-disable-next-line mediawiki/class-doc
diff --git a/resources/mmv/ui/mmv.ui.viewingOptions.js b/resources/mmv/ui/mmv.ui.viewingOptions.js
index 3316bacfa..1b1c3252f 100644
--- a/resources/mmv/ui/mmv.ui.viewingOptions.js
+++ b/resources/mmv/ui/mmv.ui.viewingOptions.js
@@ -36,6 +36,7 @@ const Dialog = require( './mmv.ui.dialog.js' );
this.initPanel();
}
+
attach() {
this.handleEvent( 'mmv-options-open', this.handleOpenCloseClick.bind( this ) );
diff --git a/tests/qunit/.eslintrc.json b/tests/qunit/.eslintrc.json
index 56674d2e3..58448a078 100644
--- a/tests/qunit/.eslintrc.json
+++ b/tests/qunit/.eslintrc.json
@@ -9,6 +9,7 @@
},
"rules": {
"no-jquery/no-global-selector": "off",
- "no-jquery/no-sizzle": "off"
+ "no-jquery/no-sizzle": "off",
+ "es-x/no-resizable-and-growable-arraybuffers": "warn"
}
}
diff --git a/tests/qunit/mmv/mmv.EmbedFileFormatter.test.js b/tests/qunit/mmv/mmv.EmbedFileFormatter.test.js
index 9e902bc66..8aaf17f9d 100644
--- a/tests/qunit/mmv/mmv.EmbedFileFormatter.test.js
+++ b/tests/qunit/mmv/mmv.EmbedFileFormatter.test.js
@@ -35,7 +35,9 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
);
const repoInfo = {
displayName: options.siteName,
- getSiteLink: function () { return options.siteUrl; }
+ getSiteLink: function () {
+ return options.siteUrl;
+ }
};
return {
@@ -229,7 +231,9 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
source: 'Source',
descriptionShortUrl: 'link',
title: {
- getNameText: function () { return 'Image Title'; }
+ getNameText: function () {
+ return 'Image Title';
+ }
}
}
} );
@@ -246,10 +250,14 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
source: 'Source',
descriptionShortUrl: 'link',
title: {
- getNameText: function () { return 'Image Title'; }
+ getNameText: function () {
+ return 'Image Title';
+ }
},
license: {
- getShortName: function () { return 'WTFPL v2'; },
+ getShortName: function () {
+ return 'WTFPL v2';
+ },
longName: 'Do What the Fuck You Want Public License Version 2',
isFree: this.sandbox.stub().returns( true )
}
@@ -265,7 +273,9 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
let html = formatter.getCreditHtml( {
repoInfo: {
displayName: 'Localcommons',
- getSiteLink: function () { return 'quux'; }
+ getSiteLink: function () {
+ return 'quux';
+ }
},
imageInfo: {
@@ -273,7 +283,9 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
source: 'Source',
descriptionShortUrl: 'some link',
title: {
- getNameText: function () { return 'Image Title'; }
+ getNameText: function () {
+ return 'Image Title';
+ }
}
}
} );
@@ -287,7 +299,9 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
html = formatter.getCreditHtml( {
repoInfo: {
displayName: 'Localcommons',
- getSiteLink: function () { return 'quux'; }
+ getSiteLink: function () {
+ return 'quux';
+ }
},
imageInfo: {
@@ -295,10 +309,14 @@ const { EmbedFileFormatter } = require( 'mmv.ui.ondemandshareddependencies' );
source: 'Source',
descriptionShortUrl: 'some link',
title: {
- getNameText: function () { return 'Image Title'; }
+ getNameText: function () {
+ return 'Image Title';
+ }
},
license: {
- getShortLink: function () { return 'WTFPL v2'; },
+ getShortLink: function () {
+ return 'WTFPL v2';
+ },
longName: 'Do What the Fuck You Want Public License Version 2',
isFree: this.sandbox.stub().returns( true )
}
diff --git a/tests/qunit/mmv/mmv.test.js b/tests/qunit/mmv/mmv.test.js
index 0d45fe538..b2eb89eb2 100644
--- a/tests/qunit/mmv/mmv.test.js
+++ b/tests/qunit/mmv/mmv.test.js
@@ -60,8 +60,12 @@ const { MultimediaViewerBootstrap } = require( 'mmv.bootstrap' );
canvas: { set: function () {},
unblurWithAnimation: function () {},
unblur: function () {},
- getCurrentImageWidths: function () { return { real: 0 }; },
- getDimensions: function () { return {}; }
+ getCurrentImageWidths: function () {
+ return { real: 0 };
+ },
+ getDimensions: function () {
+ return {};
+ }
},
panel: {
setImageInfo: function () {},
@@ -138,8 +142,12 @@ const { MultimediaViewerBootstrap } = require( 'mmv.bootstrap' );
canvas: { set: function () {},
unblurWithAnimation: function () {},
unblur: function () {},
- getCurrentImageWidths: function () { return { real: 0 }; },
- getDimensions: function () { return {}; }
+ getCurrentImageWidths: function () {
+ return { real: 0 };
+ },
+ getDimensions: function () {
+ return {};
+ }
},
panel: {
setImageInfo: function () {},
@@ -249,7 +257,9 @@ const { MultimediaViewerBootstrap } = require( 'mmv.bootstrap' );
viewer.ui = { canvas: {
unblurWithAnimation: function () {},
unblur: function () {},
- maybeDisplayPlaceholder: function () { return true; }
+ maybeDisplayPlaceholder: function () {
+ return true;
+ }
} };
viewer.imageInfoProvider.get = this.sandbox.stub();
@@ -272,7 +282,9 @@ const { MultimediaViewerBootstrap } = require( 'mmv.bootstrap' );
viewer.ui = { canvas: {
unblurWithAnimation: function () {},
unblur: function () {},
- maybeDisplayPlaceholder: function () { return true; }
+ maybeDisplayPlaceholder: function () {
+ return true;
+ }
} };
viewer.imageInfoProvider.get = this.sandbox.stub().returns( $.Deferred().resolve( { width: 100, height: 100 } ) );
@@ -354,8 +366,12 @@ const { MultimediaViewerBootstrap } = require( 'mmv.bootstrap' );
setupForLoad: function () {},
canvas: {
set: function () {},
- getCurrentImageWidths: function () { return { real: 0 }; },
- getDimensions: function () { return {}; }
+ getCurrentImageWidths: function () {
+ return { real: 0 };
+ },
+ getDimensions: function () {
+ return {};
+ }
},
panel: {
setImageInfo: this.sandbox.stub(),
diff --git a/tests/qunit/mmv/model/mmv.model.License.test.js b/tests/qunit/mmv/model/mmv.model.License.test.js
index ce2f7d8cd..e2055c228 100644
--- a/tests/qunit/mmv/model/mmv.model.License.test.js
+++ b/tests/qunit/mmv/model/mmv.model.License.test.js
@@ -57,7 +57,9 @@ const { License } = require( 'mmv' );
mw.message = function ( name ) {
return name === 'multimediaviewer-license-' + existingMessageKey ?
- { text: function () { return 'Translated name'; } } :
+ { text: function () {
+ return 'Translated name';
+ } } :
oldMwMessage.apply( mw, arguments );
};
mw.messages.exists = function ( name ) {
diff --git a/tests/qunit/mmv/provider/mmv.provider.Image.test.js b/tests/qunit/mmv/provider/mmv.provider.Image.test.js
index 8b597c3cb..eeab687e3 100644
--- a/tests/qunit/mmv/provider/mmv.provider.Image.test.js
+++ b/tests/qunit/mmv/provider/mmv.provider.Image.test.js
@@ -99,7 +99,9 @@ const { ImageProvider } = require( 'mmv' );
imageProvider.imagePreloadingSupported = () => true;
imageProvider.performance = {
- record: function () { return $.Deferred().resolve(); }
+ record: function () {
+ return $.Deferred().resolve();
+ }
};
return imageProvider.get( url ).then( function ( image ) {
@@ -115,7 +117,9 @@ const { ImageProvider } = require( 'mmv' );
imageProvider.imagePreloadingSupported = () => true;
imageProvider.performance = {
- record: function () { return $.Deferred().resolve(); }
+ record: function () {
+ return $.Deferred().resolve();
+ }
};
imageProvider.get( url ).fail( function () {
diff --git a/tests/qunit/mmv/ui/mmv.ui.canvas.test.js b/tests/qunit/mmv/ui/mmv.ui.canvas.test.js
index 49172eb0d..20bc677a1 100644
--- a/tests/qunit/mmv/ui/mmv.ui.canvas.test.js
+++ b/tests/qunit/mmv/ui/mmv.ui.canvas.test.js
@@ -101,7 +101,9 @@ const { Canvas, LightboxImage } = require( 'mmv' );
const canvas = new Canvas( $qf );
imageRawMetadata.filePageTitle = {
- getExtension: function () { return 'svg'; }
+ getExtension: function () {
+ return 'svg';
+ }
};
canvas.imageRawMetadata = imageRawMetadata;
@@ -129,7 +131,9 @@ const { Canvas, LightboxImage } = require( 'mmv' );
const canvas = new Canvas( $qf );
imageRawMetadata.filePageTitle = {
- getExtension: function () { return 'png'; }
+ getExtension: function () {
+ return 'png';
+ }
};
canvas.imageRawMetadata = imageRawMetadata;
@@ -157,7 +161,9 @@ const { Canvas, LightboxImage } = require( 'mmv' );
const canvas = new Canvas( $qf );
imageRawMetadata.filePageTitle = {
- getExtension: function () { return 'png'; }
+ getExtension: function () {
+ return 'png';
+ }
};
canvas.imageRawMetadata = imageRawMetadata;
@@ -185,7 +191,9 @@ const { Canvas, LightboxImage } = require( 'mmv' );
const canvas = new Canvas( $qf );
imageRawMetadata.filePageTitle = {
- getExtension: function () { return 'png'; }
+ getExtension: function () {
+ return 'png';
+ }
};
canvas.imageRawMetadata = imageRawMetadata;
@@ -213,7 +221,9 @@ const { Canvas, LightboxImage } = require( 'mmv' );
const canvas = new Canvas( $qf );
imageRawMetadata.filePageTitle = {
- getExtension: function () { return 'png'; }
+ getExtension: function () {
+ return 'png';
+ }
};
canvas.imageRawMetadata = imageRawMetadata;
diff --git a/tests/qunit/mmv/ui/mmv.ui.metadataPanel.test.js b/tests/qunit/mmv/ui/mmv.ui.metadataPanel.test.js
index 5fbefcab0..02fd1c7f2 100644
--- a/tests/qunit/mmv/ui/mmv.ui.metadataPanel.test.js
+++ b/tests/qunit/mmv/ui/mmv.ui.metadataPanel.test.js
@@ -46,7 +46,9 @@ QUnit.test( '.setLocationData()', function ( assert ) {
const imageData = {
latitude: latitude,
longitude: longitude,
- hasCoords: function () { return true; },
+ hasCoords: function () {
+ return true;
+ },
title: mw.Title.newFromText( 'File:Foobar.jpg' )
};
@@ -114,11 +116,17 @@ QUnit.test( '.setImageInfo()', function ( assert ) {
title: image.filePageTitle,
url: 'https://upload.wikimedia.org/wikipedia/commons/3/3a/Foobar.jpg',
descriptionUrl: 'https://commons.wikimedia.org/wiki/File:Foobar.jpg',
- hasCoords: function () { return false; }
+ hasCoords: function () {
+ return false;
+ }
};
const repoData = {
- getArticlePath: function () { return 'Foo'; },
- isCommons: function () { return false; }
+ getArticlePath: function () {
+ return 'Foo';
+ },
+ isCommons: function () {
+ return false;
+ }
};
const clock = this.sandbox.useFakeTimers();
diff --git a/tests/qunit/mmv/ui/mmv.ui.metadataPanelScroller.test.js b/tests/qunit/mmv/ui/mmv.ui.metadataPanelScroller.test.js
index 17cfaa7a6..8eb5966fd 100644
--- a/tests/qunit/mmv/ui/mmv.ui.metadataPanelScroller.test.js
+++ b/tests/qunit/mmv/ui/mmv.ui.metadataPanelScroller.test.js
@@ -39,9 +39,15 @@ const { MetadataPanelScroller } = require( 'mmv' );
let displayCount = null; // pretend it doesn't exist at first
const localStorage = createLocalStorage( {
// We simulate localStorage to avoid test side-effects
- getItem: function () { return displayCount; },
- setItem: function ( _, val ) { displayCount = val; },
- removeItem: function () { displayCount = null; }
+ getItem: function () {
+ return displayCount;
+ },
+ setItem: function ( _, val ) {
+ displayCount = val;
+ },
+ removeItem: function () {
+ displayCount = null;
+ }
} );
const scroller = new MetadataPanelScroller( $qf, $( '' ).appendTo( $qf ), localStorage );
diff --git a/tests/qunit/mmv/ui/mmv.ui.reuse.embed.test.js b/tests/qunit/mmv/ui/mmv.ui.reuse.embed.test.js
index 99a31d16a..095a689ac 100644
--- a/tests/qunit/mmv/ui/mmv.ui.reuse.embed.test.js
+++ b/tests/qunit/mmv/ui/mmv.ui.reuse.embed.test.js
@@ -272,8 +272,12 @@ const { Embed } = require( 'mmv.ui.reuse.shareembed' );
const height = 20;
embed.formatter = {
- getThumbnailWikitextFromEmbedFileInfo: function () { return 'wikitext'; },
- getThumbnailHtml: function () { return 'html'; }
+ getThumbnailWikitextFromEmbedFileInfo: function () {
+ return 'wikitext';
+ },
+ getThumbnailHtml: function () {
+ return 'html';
+ }
};
embed.set( {}, {} );
diff --git a/tests/qunit/mmv/ui/mmv.ui.stripeButtons.test.js b/tests/qunit/mmv/ui/mmv.ui.stripeButtons.test.js
index acd22e2da..7a258266c 100644
--- a/tests/qunit/mmv/ui/mmv.ui.stripeButtons.test.js
+++ b/tests/qunit/mmv/ui/mmv.ui.stripeButtons.test.js
@@ -49,7 +49,9 @@ const { StripeButtons } = require( 'mmv' );
const fakeImageInfo = { descriptionUrl: '//commons.wikimedia.org/wiki/File:Foo.jpg' };
const fakeRepoInfo = {
displayName: 'Wikimedia Commons',
- isCommons: function () { return true; }
+ isCommons: function () {
+ return true;
+ }
};
buttons.set( fakeImageInfo, fakeRepoInfo );
@@ -66,7 +68,9 @@ const { StripeButtons } = require( 'mmv' );
const descriptionUrl2 = 'http://example.com/different-desc';
const imageInfo = { descriptionUrl: descriptionUrl };
const repoInfo = {
- isCommons: function () { return false; }
+ isCommons: function () {
+ return false;
+ }
};
buttons.setDescriptionPageButton( imageInfo, repoInfo );