MediaWiki:Monobook.js

Da Wikiversità, l'apprendimento libero.

Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.

  • Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
  • Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
  • Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
  • Opera: premi Ctrl-F5.
///*** Collegamento diretto alla pagina di upload di Commons nel menu di sinistra, da WP:PT */
//function linkUploadToCommons()
//{
//    if (document.getElementById("carrega-para-commons")) return;
//    var li_carrega = document.getElementById("t-upload");
//    if (!li_carrega) return;
//    var afegit = li_carrega.nextSibling;
//    var ul_eines = li_carrega.parentNode;
//    var li = document.createElement("li");
//    li.id = "carrega-para-commons";
//    li.innerHTML = '<a href="//commons.wikimedia.org/wiki/Special:Upload">Carica su Commons</a>';
//    if (afegit) ul_eines.insertBefore(li, afegit);
//    else ul_eines.appendChild(li);
//}

//$(document).ready(linkUploadToCommons);

///*** Fine del collegamento diretto alla pagina di upload di Commons */

//function LinkAdQ() 
//{
//    if ( document.getElementById( "p-lang" ) ) {
//        var InterwikiLinks = document.getElementById( "p-lang" ).getElementsByTagName( "li" );

//        for ( var i = 0; i < InterwikiLinks.length; i++ ) {
//            if ( document.getElementById( InterwikiLinks[i].className + "-fa" ) ) {
//                InterwikiLinks[i].className += " FA"
//                InterwikiLinks[i].title = "La voce è in vetrina in questa lingua.";
//            }
//        }
//    }
//}

//$(document).ready(LinkAdQ );


/** Collapsible tables *********************************************************
 *
 *  Taken from //en.wikipedia.org/wiki/MediaWiki:Common.js
 *  Description: Allows tables to be collapsed, showing only the header. See
 *               Wikipedia:NavFrame.
 *  Maintainers: User:R. Koot
 */

var autoCollapse = 2;
var collapseCaption = "nascondi";
var expandCaption = "espandi";

function collapseTable( tableIndex )
{
    var Button = document.getElementById( "collapseButton" + tableIndex );
    var Table = document.getElementById( "collapsibleTable" + tableIndex );

    if ( !Table || !Button ) {
        return false;
    }

    var Rows = Table.getElementsByTagName( "tr" ); 

    if ( Button.firstChild.data == collapseCaption ) {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = "none";
        }
        Button.firstChild.data = expandCaption;
    } else {
        for ( var i = 1; i < Rows.length; i++ ) {
            Rows[i].style.display = Rows[0].style.display;
        }
        Button.firstChild.data = collapseCaption;
    }
}

function createCollapseButtons()
{
    var tableIndex = 0;
    var NavigationBoxes = new Object();
    var Tables = document.getElementsByTagName( "table" );

    for ( var i = 0; i < Tables.length; i++ ) {
        if ( $(Tables[i]).hasClass("collapsible" ) ) {
            NavigationBoxes[ tableIndex ] = Tables[i];
            Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );

            var Button     = document.createElement( "span" );
            var ButtonLink = document.createElement( "a" );
            var ButtonText = document.createTextNode( collapseCaption );

            Button.style.styleFloat = "right";
            Button.style.cssFloat = "right";
            Button.style.fontWeight = "normal";
            Button.style.textAlign = "right";
            Button.style.width = "6em";

            ButtonLink.setAttribute( "id", "collapseButton" + tableIndex );
            ButtonLink.setAttribute( "href", "javascript:collapseTable(" + tableIndex + ");" );
            ButtonLink.appendChild( ButtonText );

            Button.appendChild( document.createTextNode( "[" ) );
            Button.appendChild( ButtonLink );
            Button.appendChild( document.createTextNode( "]" ) );

            var Header = Tables[i].getElementsByTagName( "tr" )[0].getElementsByTagName( "th" )[0];
            /* only add button and increment count if there is a header row to work with */
            if (Header) {
                Header.insertBefore( Button, Header.childNodes[0] );
                tableIndex++;
            }
        }
    }

    for ( var i = 0;  i < tableIndex; i++ ) {
        if ( $(NavigationBoxes[i]).hasClass("collapsed" ) || ( tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass("autocollapse" ) ) ) {
            collapseTable( i );
        }
    }
}

$(document).ready( createCollapseButtons );

//END Collapsible tables


//============================================================
// Menu caratteri speciali
//============================================================

/**
 * Aggiunge il menu a tendina per selezionare un sottoinsieme di caratteri speciali
 * Attenzione:        l'ordine della lista deve corrispondere a quello di MediaWiki:Edittools !
 */
function addCharSubsetMenu() {
  var specialchars = document.getElementById('specialchars');

  if (specialchars) {
    var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
    menu += "<option>Wiki</option>";
    menu += "<option>Latino</option>";
    menu += "<option>Greco antico</option>";
    menu += "<option>Greco moderno</option>";
    menu += "<option>Cirillico</option>";
    menu += "<option>Arabo</option>";
    menu += "<option>Ebraico</option>";
    menu += "<option>Armeno</option>";
    menu += "<option>Geroglifico</option>";
    menu += "<option>Vietnamita</option>";
    menu += "<option>IPA</option>";
    menu += "<option>Matematico</option>";
    menu += "</select>";
    specialchars.innerHTML = menu + specialchars.innerHTML;

    /* default subset - try to use a cookie some day */
    chooseCharSubset(0);
  }
}

/* select subsection of special characters */
mw.loader.using(['mediawiki.util']).then(function chooseCharSubset(s) {
  var l = document.getElementById('specialchars').getElementsByTagName('p');
  for (var i = 0; i < l.length ; i++) {
    l[i].style.display = i == s ? 'inline' : 'none';
    l[i].style.visibility = i == s ? 'visible' : 'hidden';
  }
}
);

$(document).ready(addCharSubsetMenu);

// END Menu caratteri speciali

var mpTitle = "Pagina principale";
var isDiff = (document.location.search && (document.location.search.indexOf("diff=") != -1 || document.location.search.indexOf("oldid=") != -1));

if (mw.config.get('wgIsMainPage') && !isDiff) 
{
mw.util.addCSS('#lastmod, #siteSub, #contentSub, h1.firstHeading { display: none !important; }');

var mpSmallEnabled;
var mpMinWidth = 700;

function mainPageTransform()
{
       if ((mw.config.get('wgIsMainPage') || /[\/=:]Pagina_principale/.test(document.location)) && document.getElementById('ca-nstab-main'))     
       document.getElementById('ca-nstab-main').firstChild.innerHTML = 'Pagina principale';
	var mpContentEl = document.getElementById("bodyContent");
	var mpBrowseEl = document.getElementById("EnWpMpBrowse");
	var mpContainEl = document.getElementById("EnWpMpBrowseContainer");
	var mpMarginEl = document.getElementById("EnWpMpMargin");
	var mpEl = document.getElementById("EnWpMainPage");

	if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl)
		return;

	if (!mpSmallEnabled && mpContentEl.offsetWidth < mpMinWidth)
	{
		mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
		mpBrowseEl.className = "EnWpMpBrowseBottom";
		mpMarginEl.style.marginRight = 0;
		mpSmallEnabled = true;
	}
	else if (mpSmallEnabled && mpContentEl.offsetWidth > mpMinWidth)
	{
		mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
		mpBrowseEl.className = "EnWpMpBrowseRight";
		mpMarginEl.style.marginRight = "13.8em";
		mpSmallEnabled = false;
	}
}

$(document).ready( mainPageTransform );

if (window.addEventListener) 
  window.addEventListener("resize", mainPageTransform, false);
else if (window.attachEvent) 
  window.attachEvent("onresize", mainPageTransform);

}

 /** "Technical restrictions" title fix *****************************************
  *
  *  Description:
  *  Maintainers: [[User:Interiot]], [[User:Mets501]]
  *  copiato da [[:en:MediaWiki:Common.js]]
  */
 
 // For pages that have something like Template:Lowercase, replace the title, but only if it is cut-and-pasteable as a valid wikilink.
 //	(for instance [[iPod]]'s title is updated.  <nowiki>But [[C#]] is not an equivalent wikilink, so [[C Sharp]] doesn't have its main title changed)</nowiki>
 //
 // The function looks for a banner like this: <nowiki>
 // <div id="RealTitleBanner">    <!-- div that gets hidden -->
 //   <span id="RealTitle">title</span>
 // </div>
 // </nowiki>An element with id=DisableRealTitle disables the function.
 var disableRealTitle = 0;		// users can disable this by making this true from their monobook.js
 $(document).ready(function() {
 	try {
 		var realTitleBanner = document.getElementById("RealTitleBanner");
 		if (realTitleBanner && !document.getElementById("DisableRealTitle") && !disableRealTitle) {
 			var realTitle = document.getElementById("RealTitle");
 			if (realTitle) {
 				var realTitleHTML = realTitle.innerHTML;
 				realTitleText = $(realTitle).text();
 
 				var isPasteable = 0;
 				//var containsHTML = /</.test(realTitleHTML);	// contains ANY HTML
 				var containsTooMuchHTML = /</.test( realTitleHTML.replace(/<\/?(sub|sup|small|big|a)>/gi, "") ); // contains HTML that will be ignored when cut-n-pasted as a wikilink
 					// in più, aggiunto ''a'' per mantenere funzionanti alcuni usi del vecchio Titolo errato - non è detto però che sia sempre voluto
 				// questo codice era in en.wiki, e se ho ben capito serviva per controllare che il nome nuovo fosse abbastanza simile all'originale, ma non è quello che vogliamo su it.wiki
 				// // calculate whether the title is pasteable
 				// var verifyTitle = realTitleText.replace(/^ +/, "");		// trim left spaces
 				// verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
 
 				// questo codice era in en.wiki, e aggiunge il prefisso del namespace se non presente, ma su it.wiki ci si aspetta che ciò non avvenga
 				// // if the namespace prefix is there, remove it on our verification copy.  If it isn't there, add it to the original realValue copy.
 				// if (mw.config.get('wgNamespaceNumber') != 0) {
 				// 	if (wgCanonicalNamespace == verifyTitle.substr(0, wgCanonicalNamespace.length).replace(/ /g, "_") && verifyTitle.charAt(wgCanonicalNamespace.length) == ":") {
 				// 		verifyTitle = verifyTitle.substr(wgCanonicalNamespace.length + 1);
 				// 	} else {
 				// 		realTitleText = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleText;
 				// 		realTitleHTML = wgCanonicalNamespace.replace(/_/g, " ") + ":" + realTitleHTML;
 				// 	}
 				// }
 
 				// come sopra, faceva controlli sul titolo
 				// // verify whether wgTitle matches
 				// verifyTitle = verifyTitle.replace(/^ +/, "").replace(/ +$/, "");		// trim left and right spaces
 				// verifyTitle = verifyTitle.replace(/_/g, " ");		// underscores to spaces
 				// verifyTitle = verifyTitle.charAt(0).toUpperCase() + verifyTitle.substring(1, verifyTitle.length);	// uppercase first character
 				// isPasteable = (verifyTitle == mw.config.get('wgTitle'));
 
 				var h1 = document.getElementsByTagName("h1")[0];
 				if (h1) {     // tolto il controllo isPasteable
 					h1.innerHTML = containsTooMuchHTML ? realTitleText : realTitleHTML;
 					// if (!containsTooMuchHTML) // ancora, adattamento per it.wiki
 						realTitleBanner.style.display = "none";
 				}
 				document.title = realTitleText + " - Wikiversità";
 			}
 		}
 	} catch (e) {
 		/* Something went wrong. */
 	}
 });
 

/** Fix al layout della Pagina principale *********************************************************
  *
  *  Descrizione:        Alcuni al layout, fra cui un link alla lista completa di tutte
  *                      le wikipedia in tutte le lingue disponibili.
  *  Da un codice di:    [[en:User:AzaToth]], [[en:User:R. Koot]]
  *  Sistemato da:       [[n:Utente:Tooby]] <--- liberi di giustiziarlo

 function mainPageRenameNamespaceTab() {
     try {
         var Node = document.getElementById( 'ca-nstab-main' ).firstChild;
         if ( Node.textContent ) {      // Per DOM Level 3
             Node.textContent = 'Pagina principale';
         } else if ( Node.innerText ) { // IE doesn't handle .textContent
             Node.innerText = 'Pagina principale';
         } else {                       // Fallback
             Node.replaceChild( Node.firstChild, document.createTextNode( 'Pagina principale' ) ); 
         }
     } catch(e) {
         // bailing out!
     }
 }

  function mainPageAppendCompleteListLink() {
     try {
         var node = document.getElementById( "p-lang" )
                            .getElementsByTagName('div')[0]
                            .getElementsByTagName('ul')[0];
 
         var aNode = document.createElement( 'a' );
         var liNode = document.createElement( 'li' );
 
         aNode.appendChild( document.createTextNode( 'Lista completa' ) );
         aNode.setAttribute( 'href' , '//meta.wikimedia.org/wiki/List_of_Wikipedias' );
         liNode.appendChild( aNode );
         liNode.className = 'interwiki-completelist';
         node.appendChild( liNode );
      } catch(e) {
        // lets just ignore what's happened
        return;
     }
 }
 
 if ( mw.config.get('wgTitle') == 'Pagina principale' && ( mw.config.get('wgNamespaceNumber') == 0 || mw.config.get('wgNamespaceNumber') == 1 ) ) {
        $( mainPageRenameNamespaceTab );
 }
 
 if ( mw.config.get('wgTitle') == 'Pagina principale' && mw.config.get('wgNamespaceNumber') == 0 ) {
        $( mainPageAppendCompleteListLink );
 }
*/

function NavigazioneFCM() {
  if (document.getElementById("navigazioneFCM")) {
   var NavHTML = document.getElementById("navigazioneFCM").innerHTML;
   var NavBox = document.createElement("div");
   NavBox.style.marginTop = "0.7em";
   NavBox.innerHTML = '<h5>navigazione<\/h5><div class="pBody">'+NavHTML+'<\/div>';
   document.getElementById("p-tb").appendChild(NavBox);
  }
}
$(document).ready(NavigazioneFCM);