MediaWiki:Gadget-UploadForm.js: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
teste
teste
Linha 151: Linha 151:
info += '\}\}\n';
info += '\}\}\n';
desc.value = info;
desc.value = info;
return true;

}
}
};// end UploadForm
};// end UploadForm

Revisão das 14h05min de 9 de fevereiro de 2011

/*** Formulário de carregamento *********************************
* Descrição: Adiciona novos campos ao formulário original e reune
*            as informações na predefinição:informação.
* Autor: Danilo.mac
*****************************************************************/

importScript( 'MediaWiki:Gadget-HotCat.js' );

// Previne mais de uma inclusão
if ( typeof (UploadForm) === 'undefined' ) {
var UploadForm = {
	campo : [ //linhas, colunas, descrição, dica, texto padrão
		[ 3, 80, 'Descrição:', ''],
		[ 2, 80, 'Fonte/Autor(es):', 'Qual é a fonte deste ficheiro? Quem criou? Se mostra alguma obra artística, quem a criou?' ],
		[ 1, 50, 'Artigo/Anexo:', 'Para qual artigo ou anexo da Wikipédia essa imagem é necessária?' ],
		[ 1, 50, 'Integral ou parte:', 'Essa é a obra integral citada na fonte ou parte dela?' ],
		[ 1, 5, 'Carregamento:', 'Sob qual ponto da política de uso restrito este ficheiro está sendo carregado? Indique apenas o número.' ],
		[ 2, 60, 'Propósito:', 'Qual é a importância para o artigo/anexo?', 'Prover informação visual indispensável para a compreensão do artigo' ],
		[ 2, 60, 'Insubstituível:', 'Por que não existe material semelhante sob licença livre? Você procurou? Onde?', 'Não há versões da imagem sob licença livre.'],
		[ 3, 60, 'Outras informações:', 'Se tiver alguma consideração adicional coloque aqui.' ],
		[ 1, 20, 'Permissão:', 'Insira a permissão correta']
	],
	licencas : [ //Licenças; apenas aparece quando carregado pelo próprio autor e para imagens do Flickr    *
		'não=©Todos os direitos reservados',
		'cc-by-nd=Creative Commons Attribution No-Derivs',
		'cc-by-nc=Creative Commons Attribution Non-Commercial',
		'cc-by-nc-sa=Creative Commons Attribution Non-Commercial Share-Alike',
		'cc-by-nc-nd=Creative Commons Attribution Non-Commercial No-Derivs'
	],
	setupForm: function (){
		var tabela = document.getElementById( 'mw-htmlform-description' );
		var carregamento = document.getElementById( 'mw-upload-form' );
		var license = document.getElementById( 'wpLicense' );
		var tools = document.getElementById( 'editpage-specialchars' );
		var linha=[];
		var dica = document.createElement( 'div' );
		var campo_atual;
		var ninput;
		var nlabel;

		if ( !tabela ) {
			return;
		}
		desc = document.getElementById( 'wpUploadDescription' );
		desc = desc.parentNode.parentNode;
		desc.parentNode.removeChild( desc );

		license = license.parentNode.parentNode;
		license.parentNode.removeChild( license );

		if ( tools ) {
			tools = tools.parentNode.parentNode.parentNode;
			tools.parentNode.removeChild( tools );
		}
		desc = document.createElement( 'input' );
		desc.setAttribute( 'name', 'wpUploadDescription' );
		desc.setAttribute( 'id', 'wpUploadDescription' );
		desc.setAttribute( 'type', 'hidden' );
		tabela.appendChild( desc );
		carregamento.setAttribute( 'onSubmit', 'UploadForm.carregar()' );

		dados = [];

		dica.style.fontSize = 'smaller';
		dica.innerHTML = 'Nome do arquivo depois do carregamento.';
		dica.style.minHeight = '25px';
		tabela.rows[2].cells[1].appendChild( dica );
		for ( i=0 ; i < UploadForm.campo.length ; i++ ) {

			campo_atual = UploadForm.campo[i];
			linha[i] = tabela.insertRow( 3 + i );
			dados[i] = [];
			dados[i][0] = linha[i].insertCell( 0 );
			dados[i][1] = linha[i].insertCell( 1 );
			//LABEL
			dados[i][0].setAttribute( 'class', 'mw-label' );
			nlabel = document.createElement( 'label' );
			nlabel.innerHTML = campo_atual[2];
			dados[i][0].appendChild( nlabel );
			//INPUT
			if ( typeof campo_atual[0] === 'number' ) {
				if ( campo_atual[0] === 1 || !campo_atual[0] ) {
					ninput = document.createElement( 'input' );
					ninput.size = campo_atual[1];
				} else {
					ninput = document.createElement( 'textarea' );
					ninput.style.width = 'auto';
					ninput.rows = campo_atual[0];
					ninput.cols = campo_atual[1];
				}
				if ( typeof campo_atual[4] !== 'undefined' ) {
					ninput.value = campo_atual[4];
				}
			}
			if ( /fonte\=prop/.test( document.URL ) && /autor/i.test( campo_atual[2] ) ) {
				ninput.value = '[[Usuário:' + wgUserName + '|' + wgUserName + ']]';
			}
			dados[i][1].setAttribute( 'class', 'mw-input' );
			dados[i][1].appendChild( ninput );
			dica = document.createElement( 'div' );
			dica.style.fontSize = 'smaller';
			if ( campo_atual[3] ) {
				dica.innerHTML = campo_atual[3];
			}
			dica.style.minHeight = '25px';
			dados[i][1].appendChild( dica );
		}
		if ( /fonte\=(?:prop|flickr)/.test( document.URL ) ) {
			linha[i] = tabela.insertRow( 3 + i );
			dados[i] = [];
			dados[i][0] = linha[i].insertCell( 0 );
			dados[i][1] = linha[i].insertCell( 1 );
			dados[i][0].setAttribute( 'class', 'mw-label' );
			nlabel = document.createElement( 'label' );
			UploadForm.campo[i] = []; //necessário para a função carregar()
			UploadForm.campo[i][2] = 'Licença:';
			nlabel.innerHTML = UploadForm.campo[i][2];
			dados[i][0].appendChild( nlabel );
			var nselect = document.createElement( 'select' );
			for ( l=0 ; l < UploadForm.licencas.length; l++ ) {
				brr = UploadForm.licencas[l].search( '=' );
				if ( brr > 0 ) {
					var noption = document.createElement( 'option' );
					noption.setAttribute( 'value', UploadForm.licencas[l].substr( 0, brr ) );
					noption.innerHTML = UploadForm.licencas[l].substr( brr + 1 );
					nselect.appendChild( noption );
				}
			}
			dados[i][1].appendChild( nselect );
		}
	},
	carregar: function () {
		var info = '\{\{Informação\n';
		var i;
		for ( i=0; i < dados.length; i++ ) {
			var item = UploadForm.campo[i][2];
			item = item.substr( 0, item.search( /[/():]/ ) );
			var dado = dados[i][1].firstChild;
			if ( dado.nodeName === 'INPUT' ) {
				dado = dado.value;
			} else if ( dado.nodeName === 'TEXTAREA' ) {
				dado = dado.value || dado.innerHTML;
			} else if ( dado.nodeName === 'SELECT' ) {
				dado = dado.options[ dado.selectedIndex ].value;
			}
			else {
				dado = '';
			}
			info += '| ' + item.toLowerCase() + ' = ' + dado + '\n';
		}
		info += '\}\}\n';
		desc.value = info;
		return true;

	}
};// end UploadForm
}
if ( -1 === wgNamespaceNumber && 'Upload' === wgCanonicalSpecialPageName ) {
	addOnloadHook( UploadForm.setupForm );
}