Utente:Ruthven/adminscript.js

Versione del 10 dic 2015 alle 14:38 di Ruthven (discussione | contributi) (copia da Melos + funzioni personalizzate)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.


Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.

//<nowiki>
$(function(){
	var btoken;
   	if (mw.config.get( 'wgCanonicalSpecialPageName' ) === "Block") {
   		mw.util.addCSS(
         	'#blockScriptForm {margin-top: 15px;}' +
			'.blockscript-firstlink {margin-left:5px;}' +
			'#blockScriptdivtalk {margin-top: 5px;}' +
			'#blockScripttalkcontent, #blockScriptupcontent {margin-left:5px;}'
      	);
      	//Crea il div dove andare a appendere gli oggetti dello script
    	$('.mw-htmlform-submit').after($('<div>', {id:'blockScriptForm'}));
    	
    	//crea i div per raccogliere gli oggetti talk e up
       	$('#blockScriptForm').append(
           $("<div>", {
                   id: "blockScriptdivtalk"
           })
       	);
       	
       	//appende gli oggetti della talk
       	$('#blockScriptdivtalk').append(
           $("<input>", {
                   type: "checkbox",
                   id: "blockScriptcktalk",
           })            
       	);
       	$('#blockScriptdivtalk').append(
           $("<label>", {
                   'for': "blockScriptcktalk",
                   text: 'Inserisci nella discussione utente:'
           })            
       	);
       	$('#blockScriptdivtalk').append(
           $("<input>", {
                   id: 'blockScripttalkcontent'
           })            
       	);
       
       	//inserisce i link dopo gli oggetti talk
       	$('#blockScriptdivtalk').append(
            $("<a>", {
                text: "RC",
                title: "Inserisci {{RC}}",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                	    durata= prompt('Inserisci la durata del blocco');
                        $('#blockScripttalkcontent').val('{{RC|' + durata + '}}');
                        return false;
                      }
            })
       	);
       	$('#blockScriptdivtalk').find('a').slice(1).before(' | ');
        
        //crea il nuovo pulsante di blocco
    	$('#blockScriptForm').append(
           $("<input>", {
                   type: "button",
                   id: "blockScriptBlocca",
                   value: "Blocca utente",
                   click:function() {
                        getprotectToken();
                   }
           })
       	);
  	}
    
    function ProteggiUtente(targhet){
    	$.post(mw.util.wikiScript('api'),
	        {
   		        format: 'json',
   		        action: 'protect',
		 		title: targhet,
				reason: 'Pagina o sottopagina di utente [[WP:BLOCCO|bloccato infinito]]',
		        token: btoken,
		        expiry:'infinite',
 		        protections:'edit=sysop|move=sysop'                  
	        }
	   	).done(function(data) {
	        try{
	        	//genera l'errore in caso di pu non esistente e passa al create=sysop
	        	var er = data.protect.title;
	        	//la protezione della talk è l'ultima operazione che compie dopo esegue il blocco
	        	if (targhet === 'User talk:' + $('#mw-bi-target').val()){
	        		$('.mw-htmlform-submit').click();
	        	}
	        } catch ( e ) {
				 	$.post(mw.util.wikiScript('api'),
					        {
				   		        format: 'json',
				   		        action: 'protect',
						 		title: targhet,
								reason: 'Pagina o sottopagina di utente [[WP:BLOCCO|bloccato infinito]]',
						        token: btoken,
						        expiry:'infinite',
				 		        protections:'create=sysop'                  
					        }
				 	);
	        }
      	});
    }

  	function getprotectToken(){
      $.getJSON(
   	    mw.util.wikiScript('api'),
	        {
		      format: 'json',
              action: 'query',
		      meta: 'tokens',
		      type: 'csrf'		                   
	        }
        ).done(function ( data ) {
		      btoken=data.query.tokens.csrftoken;
		      PassAuth();
	   	});
   	}
   
   	function PassAuth(){
   		$.getJSON(
   	    mw.util.wikiScript('api'),
	        {
		      format: 'json',
              action: 'query',
		      list: 'users',
		      ususers: $('#mw-bi-target').val()		                   
	        }
        ).done (function (data){
        	//se l'utente esiste esegue il resto
        	if (data.query.users[0].missing === undefined){
        		//Per uso comune la talk va sempre sostituita
        		if ($('#blockScriptcktalk').is(':checked') && $('#blockScripttalkcontent').val() !== ''){
		            $.post(mw.util.wikiScript('api'),
			            {
				            format: 'json',
		                    action: 'edit',
				            title: 'User talk:' + $('#mw-bi-target').val(),
				            text: $('#blockScripttalkcontent').val(),                                              
		                    token: btoken,
		                    summary:'notifica di blocco',
		                    /*recreate:'' */                               	                   
			            }
		          	).done (function(){
		            	/*	ProteggiUtente('User talk:'+ $('#mw-bi-target').val()); */
		          	});
		        }else{
		        	alert('Devi almeno sostituire la pagina utente per bloccare');
        		}
        	}else{
        		alert ('Non è registrato alcun utente di nome "' + $('#mw-bi-target').val() +'". Verificare il nome inserito.');
        	}
     	});
   	}
}( mediaWiki, jQuery ));	
//</nowiki>