Utente:Melos/adminscript.js

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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>
$( mw.loader.using(['mediawiki.util']).done(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: "blockScriptdivup"
           })
       	);
       	$('#blockScriptForm').append(
           $("<div>", {
                   id: "blockScriptdivtalk"
           })
       	);
       	
       	//appende gli oggetti della up
    	$('#blockScriptdivup').append(
           $("<input>", {
                   type: "checkbox",
                   id: "blockScriptckup",
           })
       	);
       	$('#blockScriptdivup').append(
           $("<label>", {
                   'for': "blockScriptckup",
                   text: 'Sostituisci la pagina utente con:'
           })            
       	);
       	$('#blockScriptdivup').append(
           $("<input>", {
                   id: 'blockScriptupcontent'
           })            
       	);
       	
       	//appende gli oggetti della talk
       	$('#blockScriptdivtalk').append(
           $("<input>", {
                   type: "checkbox",
                   id: "blockScriptcktalk",
           })            
       	);
       	$('#blockScriptdivtalk').append(
           $("<label>", {
                   'for': "blockScriptcktalk",
                   text: 'Sostituisci la discussione utente con:'
           })            
       	);
       	$('#blockScriptdivtalk').append(
           $("<input>", {
                   id: 'blockScripttalkcontent'
           })            
       	);
       	
       	//inserisce i link dopo gli oggetti up
       	$('#blockScriptdivup').append(
            $("<a>", {
                text: "Bloccoinfinito",
                href:'#',
                title: "Inserisci {{BloccoInfinito}}",
                class:"blockscript-firstlink",               
                click:function() {
                        $('#blockScriptupcontent').val('{{BloccoInfinito}}');
                        return false;
                      }
            }),
            $("<a>", {
                text: "SP",
                title: "Inserisci {{SP}}",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                	    sock= prompt('Inserisci il nome utente principale (senza [[utente:)');
                        $('#blockScriptupcontent').val('{{SP|' + sock + '}}');
                        return false;
                      }
            }),
            $("<a>", {
                text: "Bloccoinfinito + SP",
                title: "Inserisci {{BloccoInfinito}} + {{SP}}",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                        sock= prompt('Inserisci il nome utente principale (senza [[utente:)','');
                        $('#blockScriptupcontent').val('{{BloccoInfinito}}{{SP|' + sock + '}}');
                        return false;
                      }
            }),
            $("<a>", {
                text: "NUI",
                title: "Inserisci {{NUI}} --~~~~",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                        $('#blockScriptupcontent').val('{{NUI}} --~~~~');
                        return false;
                      }
            })
       	);
       	$('#blockScriptdivup').find('a').slice(1).before(' | ');
       
       	//inserisce i link dopo gli oggetti talk
       	$('#blockScriptdivtalk').append(
            $("<a>", {
                text: "Bloccoinfinito",
                href:'#',
                title: "Inserisci {{BloccoInfinito}}",
                class:"blockscript-firstlink",               
                click:function() {
                        $('#blockScripttalkcontent').val('{{BloccoInfinito}}');
                        return false;
                      }
            }),
            $("<a>", {
                text: "SP",
                title: "Inserisci {{SP}}",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                	    sock= prompt('Inserisci il nome utente principale (senza [[utente:)');
                        $('#blockScripttalkcontent').val('{{SP|' + sock + '}}');
                        return false;
                      }
            }),
            $("<a>", {
                text: "Bloccoinfinito + SP",
                title: "Inserisci {{BloccoInfinito}} + {{SP}}",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                        sock= prompt('Inserisci il nome utente principale (senza [[utente:)','');
                        $('#blockScripttalkcontent').val('{{BloccoInfinito}}{{SP|' + sock + '}}');
                        return false;
                      }
            }),
            $("<a>", {
                text: "NUI",
                title: "Inserisci {{NUI}} --~~~~",
                href:'#',
                class:"blockscript-link",               
                click:function() {
                        $('#blockScripttalkcontent').val('{{NUI}} --~~~~');
                        return false;
                      }
            })
       	);
       	$('#blockScriptdivtalk').find('a').slice(1).before(' | ');
        
        //crea il nuovo pulsante di blocco
    	$('#blockScriptForm').append(
           $("<input>", {
                   type: "button",
                   id: "blockScriptBlocca",
                   value: "Blocca & proteggi pagine 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:' + $('#ooui-1').val()){
	        		$('.oo-ui-buttonElement-button').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: $('#ooui-1').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() !== ''){
	    		   	if($('#blockScriptckup').is(':checked')){
			               $.post(mw.util.wikiScript('api'),
				                {
					            format: 'json',
			                    action: 'edit',
					            title: 'User:' + $('#ooui-1').val(),
					            text: $('#blockScriptupcontent').val(),                                              
			                    token: btoken,
			                    summary:'Utente [[WP:BLOCCO|bloccato infinito]]',
			                    recreate:''                                	                   
				                }
			                ).done (function(){
			                			ProteggiUtente('User:'+ $('#ooui-1').val());
			                });
			        }else{
			        	ProteggiUtente('User:'+ $('#ooui-1').val());
			        }
			        
		            $.post(mw.util.wikiScript('api'),
			            {
				            format: 'json',
		                    action: 'edit',
				            title: 'User talk:' + $('#ooui-1').val(),
				            text: $('#blockScripttalkcontent').val(),                                              
		                    token: btoken,
		                    summary:'Utente [[WP:BLOCCO|bloccato infinito]]',
		                    recreate:''                                	                   
			            }
		          	).done (function(){
		            		ProteggiUtente('User talk:'+ $('#ooui-1').val());
		          	});
		        }else{
		        	alert('Devi almeno sostituire la pagina utente per bloccare e proteggere');
        		}
        	}else{
        		alert ('Non è registrato alcun utente di nome "' + $('#ooui-1').val() +'". Verificare il nome inserito.');
        	}
     	});
   	}
}( mediaWiki, jQuery )));
//</nowiki>