Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Citizen.js: Difference between revisions

MediaWiki interface page
No edit summary
Tag: Manual revert
Indice: nel rail sopra la TOC nativa (riuso TOC); float dove il rail non c'è
Line 1: Line 1:
/* All JavaScript here will be loaded for users of the Citizen skin */
/* All JavaScript here will be loaded for users of the Citizen skin */


mw.hook('wikipage.content').add(function ($content) {
/* Indice d'archivio: dove esiste il rail di Citizen (pagine con sezioni) lo
 
  mettiamo lì, SOPRA la TOC nativa (che riusiamo); dove il rail non esiste
  // 1) trova il box StatoArchivio nel contenuto
  (pagine senza sezioni) l'indice resta una colonna flottante (.ai-rail) e non
  const box = $content.find('[data-stato-archivio="1"]').first();
  sparisce mai. Sulla Dashboard l'indice non ha .ai-rail (è nel suo layout),
  if (!box.length) return;
  quindi questo hook non lo tocca. */
 
mw.hook( 'wikipage.content' ).add( function () {
  // 2) trova la sidebar/rail di Citizen
var box = document.querySelector( '.archivio-indice.ai-rail' );
  const sidebar =
if ( !box ) {
    document.querySelector('.citizen-page-sidebar') ||
return;
    document.querySelector('.citizen-sidebar') ||
}
    document.querySelector('.citizen-toc-container');
var rail =
 
document.querySelector( '.citizen-page-sidebar' ) ||
  if (!sidebar) return;
document.querySelector( '.citizen-sidebar' ) ||
 
document.querySelector( '.citizen-toc-container' );
  // 3) inserisci il box come PRIMO widget del rail
if ( !rail ) {
  sidebar.prepend(box[0]);
return; // niente rail: l'indice resta flottante nel contenuto
 
}
  // 4) spacing coerente con gli altri widget
box.classList.remove( 'ai-rail' ); // via il float
  box[0].style.marginBottom = '1rem';
box.classList.add( 'ai-in-rail' );
});
rail.prepend( box ); // indice sopra la TOC nativa
} );

Revision as of 20:31, 15 June 2026

/* All JavaScript here will be loaded for users of the Citizen skin */

/* Indice d'archivio: dove esiste il rail di Citizen (pagine con sezioni) lo
   mettiamo lì, SOPRA la TOC nativa (che riusiamo); dove il rail non esiste
   (pagine senza sezioni) l'indice resta una colonna flottante (.ai-rail) e non
   sparisce mai. Sulla Dashboard l'indice non ha .ai-rail (è nel suo layout),
   quindi questo hook non lo tocca. */
mw.hook( 'wikipage.content' ).add( function () {
	var box = document.querySelector( '.archivio-indice.ai-rail' );
	if ( !box ) {
		return;
	}
	var rail =
		document.querySelector( '.citizen-page-sidebar' ) ||
		document.querySelector( '.citizen-sidebar' ) ||
		document.querySelector( '.citizen-toc-container' );
	if ( !rail ) {
		return; // niente rail: l'indice resta flottante nel contenuto
	}
	box.classList.remove( 'ai-rail' ); // via il float
	box.classList.add( 'ai-in-rail' );
	rail.prepend( box ); // indice sopra la TOC nativa
} );