MediaWiki:Common.js: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m fix spazi
riscrittura da zero della funzionalità galleria immagini
Riga 289:
 
/**
* Utilizzata con [[template:Galleria]] per creare una galleria di immagini,
* Codice per il Template:Galleria
* cerca un HTML (creato dal template) contenente:
* <div class="ImageGroup"><div class="ImageGroupUnits">immagini</div></div>
* Idea originale da [[fr:MediaWiki:Common.js]] del 2007.
*
* @author [[it:User:Rotpunkt]]
*/
function toggleImage(group, remindex, shwindex) {
document.getElementById("ImageGroupsGr"+group+"Im"+remindex).style.display="none";
document.getElementById("ImageGroupsGr"+group+"Im"+shwindex).style.display="inline";
}
 
function updateImageGroup( currImg, $images, $countInfo, $prevLink, $nextLink ) {
function leftlinkClickHandler(event) {
$images.hide().eq( currImg ).show();
event.preventDefault();
$countInfo.html( '(' + ( currImg + 1 ) + '/' + $images.length + ')' );
toggleImage(event.data.i, event.data.j, event.data.j - 1);
$prevLink.toggle( currImg !== 0 );
$nextLink.toggle( currImg !== $images.length - 1 );
}
 
function rightlinkClickHandlerinitImageGroup(event) {
$( 'div.ImageGroup > div.ImageGroupUnits' ).each( function ( i, imageGroupUnits ) {
event.preventDefault();
var $images, $prevLink, $nextLink, $countInfo, currImg = 0;
toggleImage(event.data.i, event.data.j, event.data.j + 1);
$images = $( imageGroupUnits ).children( '.center' );
$countInfo = $( '<tt>' ).css( 'font-size', '110%' );
$prevLink = $( '<a>' )
.attr( 'href', '#' ).attr( 'title', 'Immagine precedente' )
.text( '◀' ).css( 'text-decoration', 'none' )
.click( function ( e ) {
e.preventDefault();
updateImageGroup( currImg -= 1, $images, $countInfo, $prevLink, $nextLink );
} );
$nextLink = $( '<a>' )
.attr( 'href', '#' ).attr( 'title', 'Immagine successiva' )
.text( '▶' ).css( 'text-decoration', 'none' )
.click( function ( e ) {
e.preventDefault();
updateImageGroup( currImg += 1, $images, $countInfo, $prevLink, $nextLink );
} );
updateImageGroup( currImg, $images, $countInfo, $prevLink, $nextLink );
$( imageGroupUnits ).prepend( $prevLink, $countInfo, $nextLink );
} );
}
 
$( initImageGroup );
function ImageGroup() {
if (document.___URL.match(/printable/g)) return;
var bc=mw.util.$content.get(0);
var divs=bc.getElementsByTagName("div");
var i = 0, j = 0;
var units, search;
var currentimage;
var UnitNode;
for (i = 0; i < divs.length ; i++) {
if (divs[i].className != "ImageGroup") continue;
UnitNode=undefined;
search=divs[i].getElementsByTagName("div");
for (j = 0; j < search.length ; j++) {
if (search[j].className != "ImageGroupUnits") continue;
UnitNode=search[j];
break;
}
if (UnitNode===undefined) continue;
units=Array();
for (j = 0 ; j < UnitNode.childNodes.length ; j++ ) {
var temp = UnitNode.childNodes[j];
if (temp.className=="center") units.push(temp);
}
for (j = 0 ; j < units.length ; j++) {
currentimage=units[j];
currentimage.id="ImageGroupsGr"+i+"Im"+j;
var imghead = document.createElement("div");
var leftlink;
var rightlink;
if (j !== 0) {
leftlink = document.createElement("a");
$(leftlink).attr('href', '#').click({ i: i, j: j }, leftlinkClickHandler);
leftlink.innerHTML="◀";
} else {
leftlink = document.createElement("span");
leftlink.innerHTML="&nbsp;";
}
if (j != units.length - 1) {
rightlink = document.createElement("a");
$(rightlink).attr('href', '#').click({ i: i, j: j }, rightlinkClickHandler);
rightlink.innerHTML="▶";
} else {
rightlink = document.createElement("span");
rightlink.innerHTML="&nbsp;";
}
var comment = document.createElement("tt");
comment.innerHTML = "("+ (j+1) + "/" + units.length + ")";
imghead.style.fontSize="110%";
imghead.style.fontweight="bold";
imghead.appendChild(leftlink);
imghead.appendChild(comment);
imghead.appendChild(rightlink);
currentimage.insertBefore(imghead,currentimage.childNodes[0]);
if (j !== 0) currentimage.style.display="none";
}
}
}
$(ImageGroup);
 
/**