text: '{{' + license + '}}',
title: $( '#wpDestFile' ).val() || 'File:Sample.jpg',
prop: 'text',
- pst: true
+ pst: true,
+ uselang: mw.config.get( 'wgUserLanguage' )
} ).done( function ( result ) {
uploadLicense.processResult( result, license );
} ).always( function () {
if (
mw.config.get( 'wgCheckFileExtensions' ) &&
mw.config.get( 'wgStrictFileExtensions' ) &&
- mw.config.get( 'wgFileExtensions' ) &&
+ Array.isArray( mw.config.get( 'wgFileExtensions' ) ) &&
$( this ).attr( 'id' ) !== 'wpUploadFileURL'
) {
if (
fname.lastIndexOf( '.' ) === -1 ||
- $.inArray(
- fname.slice( fname.lastIndexOf( '.' ) + 1 ).toLowerCase(),
- $.map( mw.config.get( 'wgFileExtensions' ), function ( element ) {
- return element.toLowerCase();
- } )
- ) === -1
+ mw.config.get( 'wgFileExtensions' ).map( function ( element ) {
+ return element.toLowerCase();
+ } ).indexOf( fname.slice( fname.lastIndexOf( '.' ) + 1 ).toLowerCase() ) === -1
) {
// Not a valid extension
// Clear the upload and set mw-upload-permitted to error
// Output result
if ( $( '#wpDestFile' ).length ) {
// Call decodeURIComponent function to remove possible URL-encoded characters
- // from the file name (bug 30390). Especially likely with upload-form-url.
+ // from the file name (T32390). Especially likely with upload-form-url.
// decodeURIComponent can throw an exception if input is invalid utf-8
try {
$( '#wpDestFile' ).val( decodeURIComponent( fname ) );
function fileIsPreviewable( file ) {
var known = [ 'image/png', 'image/gif', 'image/jpeg', 'image/svg+xml' ],
tooHuge = 10 * 1024 * 1024;
- return ( $.inArray( file.type, known ) !== -1 ) && file.size > 0 && file.size < tooHuge;
+ return ( known.indexOf( file.type ) !== -1 ) && file.size > 0 && file.size < tooHuge;
}
/**
allowCloseWindow.release();
} );
} );
+
+ // Add tabindex to mw-editTools
+ $( function () {
+ // Function to change tabindex for all links within mw-editTools
+ function setEditTabindex( $val ) {
+ $( '.mw-editTools' ).find( 'a' ).each( function () {
+ $( this ).attr( 'tabindex', $val );
+ } );
+ }
+
+ // Change tabindex to 0 if user pressed spaced or enter while focused
+ $( '.mw-editTools' ).on( 'keypress', function ( e ) {
+ // Don't continue if pressed key was not enter or spacebar
+ if ( e.which !== 13 && e.which !== 32 ) {
+ return;
+ }
+
+ // Change tabindex only when main div has focus
+ if ( $( this ).is( ':focus' ) ) {
+ $( this ).find( 'a' ).first().focus();
+ setEditTabindex( '0' );
+ }
+ } );
+
+ // Reset tabindex for elements when user focused out mw-editTools
+ $( '.mw-editTools' ).on( 'focusout', function ( e ) {
+ // Don't continue if relatedTarget is within mw-editTools
+ if ( e.relatedTarget !== null && $( e.relatedTarget ).closest( '.mw-editTools' ).length > 0 ) {
+ return;
+ }
+
+ // Reset tabindex back to -1
+ setEditTabindex( '-1' );
+ } );
+
+ // Set initial tabindex for mw-editTools to 0 and to -1 for all links
+ $( '.mw-editTools' ).attr( 'tabindex', '0' );
+ setEditTabindex( '-1' );
+ } );
}( mediaWiki, jQuery ) );