MediaWiki:Gadget-UploadForm.js
Nota: Depois de publicar, deve limpar o cachê do seu navegador para ver as alterações.
- Firefox e Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
- Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
- Internet Explorer e Edge: Pressione Ctrl enquanto clica Recarregar, ou pressione Ctrl-F5
- Opera: Pressione Ctrl-F5.
/* jshint laxbreak: true, evil: true */
/* global mediaWiki, jQuery */
( function ( mw, $ ) {
'use strict';
mw.messages.set( {
'uf-fillField': 'Existem campos obrigatórios que não foram preenchidos.'
} );
var uf = {};
uf.fields = [ {
rows: 3,
cols: 80,
desc: 'Descrição',
tip: 'Descreva brevemente a imagem.'
}, {
rows: 2,
cols: 80,
desc: 'Fonte',
tip: 'Qual é a fonte deste arquivo?'
}, {
rows: 2,
cols: 80,
desc: 'Autor',
tip: 'Quem é o detentor dos direitos autorais?'
}, {
rows: 2,
cols: 80,
desc: 'Data',
tip: 'Em que data foi criado ou publicado?',
optional: true
}, {
cols: 50,
desc: 'Notícias',
tip: 'Para qual página do Wikinotícias essa imagem é necessária?'
}, {
desc: 'Tipo de carregamento',
list: [ ' - ', [
'1 - Pessoas que já morreram ou estão no corredor da morte',
'2 - Pessoas vivas cuja licença permita, sob o selo não comercial, o carregamento',
'3 - Eventos históricos ou de última hora que receberam ampla cobertura',
'4 - Capas em geral, incluindo CD, DVD, jogos, livros, jornais, etc',
'5 - Logotipos e marcas em geral, incluindo de produtos, eventos, empresas, etc',
'6 - Captura de tela de cinema, televisão, jogos, software e páginas da internet',
'7 - Cédulas, moedas, brasões e selos oficiais',
'8 - Estilos musicais, canções ou singles',
'9 - Discursos históricos de pessoas públicas'
] ],
tip: 'Qual das categorias permitidas este fichero cumpre?'
}, {
cols: 50,
desc: 'Integral ou parte',
tip: 'Essa é a obra integral citada na fonte ou parte dela?'
}, {
rows: 2,
cols: 60,
desc: 'Insubstituível',
tip: 'Não existe material semelhante sob licença livre? Você procurou?',
defaultText: 'Não há versões da imagem sob licença livre.'
}, {
rows: 3,
cols: 60,
desc: 'Outras informações',
tip: 'Se tiver alguma consideração adicional coloque aqui.',
optional: true
}, {
desc: 'Licença',
list: [ ' - ', [
'nenhuma - Todos os direitos reservados',
'cc-by-nd - Creative Commons Atribuição SemDerivações',
'cc-by-nc - Creative Commons Atribuição NãoComercial',
'cc-by-nc-sa - Creative Commons Atribuição NãoComercial CompartilharIgual',
'cc-by-nc-nd - Creative Commons Atribuição NãoComercial SemDerivações',
'cc-by - Creative Commons Atribuição',
'cc-by-sa - Creative Commons Atribuição CompartilharIgual',
'fal - Licença da Arte Livre',
'dp - Creative Commons Zero ou Domínio Público'
] ],
tip: 'Sob qual licença esse arquivo está sendo carregado?'
}
];
/**
* Creates the form
*/
uf.setupForm = function () {
var i, j, currentField, listValues, tagName,
$loading = $( '#mw-upload-form' ),
$table = $( '#mw-htmlform-description tbody' );
$( '.mw-htmlform-field-HTMLTextAreaField' ).remove();
$( '.mw-htmlform-field-Licenses' ).remove();
$( '#editpage-specialchars' ).parent().parent().parent().remove();
$( '<input />', {
'type': 'hidden',
'name': 'wpUploadDescription',
'id': 'wpUploadDescription'
} ).appendTo( $table );
$loading.submit( ( function ( oldSubmit ) {
return function () {
// First, let's construct the information template
var doSubmit = uf.upload();
if ( doSubmit && oldSubmit ) {
if ( typeof oldSubmit === 'string') {
doSubmit = eval( oldSubmit );
} else if ( typeof oldSubmit === 'function' ) {
doSubmit = oldSubmit.apply( $loading[ 0 ], arguments );
}
}
return doSubmit;
};
}( $loading[ 0 ].onsubmit ) ) );
for ( i = 0; i < uf.fields.length; i++ ) {
currentField = uf.fields[ i ];
if ( currentField.condition !== undefined
&& !currentField.condition
) {
continue;
}
if ( currentField.list ) {
$( '<tr></tr>' ).append(
$( '<td class="mw-label"></td>' ).append(
$( '<label class="uf-label" for="uf-field-' + i + '"></label>' )
.html( currentField.desc + ': ' )
),
$( '<td class="mw-input"></td>' ).append(
$( '<select class="uf-field" id="uf-field-' + i + '"></select>' )
.append( $( '<option></option>' ) )
)
).appendTo( $table );
for ( j = 0; j < currentField.list[ 1 ].length; j++ ) {
listValues = currentField.list[ 1 ][ j ].split( currentField.list[ 0 ] );
$( '<option></option>' )
.val( listValues[ 0 ] )
.html( currentField.list[ 0 ] === ' - '
? currentField.list[ 1 ][ j ]
: listValues[ 1 ]
).appendTo( $( '#uf-field-' + i ) );
}
} else {
tagName = ( !currentField.rows || currentField.rows === 1 ) ? 'input' : 'textarea';
$( '<tr></tr>' ).append(
$( '<td class="mw-label"></td>' ).append(
$( '<label class="uf-label" for="uf-field-' + i + '"></label>' )
.html( currentField.desc + ': ' )
),
$( '<td class="mw-input"></td>' ).append(
$( '<' + tagName + '></' + tagName + '>' )
.css( 'width', 'auto' )
.attr( {
'class': 'uf-field',
'id': 'uf-field-' + i,
'rows': currentField.rows || 1
} ).attr( ( ( tagName === 'input' ) ? 'size' : 'cols' ), currentField.cols )
)
).appendTo( $table );
if ( currentField.defaultText ) {
$( '#uf-field-' + i ).val( currentField.defaultText );
}
}
if ( currentField.tip ) {
$( '#uf-field-' + i ).parent().append(
$( '<div></div>' ).css( {
'font-size': 'smaller',
'minHeight': '25px'
} )
);
}
}
};
uf.upload = function () {
var $this,
text = '{' + '{Informação\n';
$( '.uf-field' ).each( function ( i ) {
$this = $( this );
if ( !uf.fields[ i ].optional && $this.val() === '' ) {
$this.addClass( 'uf-fill-field' );
} else {
$this.removeClass( 'uf-fill-field' );
}
text += '| '
+ ( uf.fields[ i ]
? uf.fields[ i ].desc
: $( '.uf-label' ).eq( i ).html()
).replace( /[\/():].*/g, '' ).toLowerCase()
+ ' = '
+ $this.val()
+ '\n';
} );
if ( $( '.uf-field' ).hasClass( 'uf-fill-field' ) ) {
alert( mw.message( 'uf-fillField' ).plain() );
return false;
}
text += '}' + '}\n';
$( '#wpUploadDescription' ).val( text );
return true;
};
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Upload'
&& !mw.util.getParamValue( 'wpForReUpload' )
) {
$( uf.setupForm );
}
}( mediaWiki, jQuery ) );