Ir para o conteúdo

MediaWiki:Common.js: mudanças entre as edições

De RagnaDust
Sync automatico via GitHub Actions
 
Sync automatico via GitHub Actions
 
Linha 22: Linha 22:
observer.observe( document.body, { childList: true, subtree: true } );
observer.observe( document.body, { childList: true, subtree: true } );
tryUnpin();
tryUnpin();
}() );
// Puxa status do servidor (online/offline + jogadores) do FluxCP e atualiza
// os #rd-status-* da Main Page. Endpoint publico, sem login, cacheado no
// lado do FluxCP (ver ServerStatusCache em config/application.php de la) -
// so roda na Main Page, pra nao gastar fetch a toa nas outras paginas.
( function () {
if ( !mw.config.get( 'wgIsMainPage' ) ) {
return;
}
var STATUS_URL = 'https://ragnadust.com.br/index.php?module=server&action=status-json';
fetch( STATUS_URL, { credentials: 'omit' } )
.then( function ( res ) {
return res.ok ? res.json() : Promise.reject( res.status );
} )
.then( function ( data ) {
var statusEl  = document.getElementById( 'rd-status-online' );
var playersEl = document.getElementById( 'rd-status-players' );
if ( statusEl ) {
statusEl.innerHTML = '<span class="dot"></span> ' + ( data.online ? 'Online' : 'Offline' );
}
if ( playersEl && typeof data.players === 'number' ) {
playersEl.textContent = data.players;
}
} )
.catch( function () {
// Sem sorte (endpoint fora do ar, CORS, etc.) - mantem os
// valores estaticos que ja estao no HTML, sem quebrar a pagina.
} );
}() );
}() );

Edição atual tal como às 03h07min de 15 de julho de 2026

// Comeca com o menu de Aparencia do Vector 2022 (fonte/largura/tema)
// recolhido por padrao pra visitantes anonimos. O $wgDefaultUserOptions em
// LocalSettings.php resolve isso pra quem tem conta, mas nao vale pra quem
// nao esta logado - limitacao conhecida do Vector 2022 (T366999), a saida
// documentada e simular o clique no botao de "unpin" assim que ele existir.
( function () {
	if ( mw.config.get( 'wgUserName' ) !== null ) {
		return;
	}

	var SELECTOR = '[data-event-name="pinnable-header.vector-appearance.unpin"]';

	var tryUnpin = function () {
		var btn = document.querySelector( SELECTOR );
		if ( btn ) {
			btn.click();
			observer.disconnect();
		}
	};

	var observer = new MutationObserver( tryUnpin );
	observer.observe( document.body, { childList: true, subtree: true } );
	tryUnpin();
}() );

// Puxa status do servidor (online/offline + jogadores) do FluxCP e atualiza
// os #rd-status-* da Main Page. Endpoint publico, sem login, cacheado no
// lado do FluxCP (ver ServerStatusCache em config/application.php de la) -
// so roda na Main Page, pra nao gastar fetch a toa nas outras paginas.
( function () {
	if ( !mw.config.get( 'wgIsMainPage' ) ) {
		return;
	}

	var STATUS_URL = 'https://ragnadust.com.br/index.php?module=server&action=status-json';

	fetch( STATUS_URL, { credentials: 'omit' } )
		.then( function ( res ) {
			return res.ok ? res.json() : Promise.reject( res.status );
		} )
		.then( function ( data ) {
			var statusEl  = document.getElementById( 'rd-status-online' );
			var playersEl = document.getElementById( 'rd-status-players' );

			if ( statusEl ) {
				statusEl.innerHTML = '<span class="dot"></span> ' + ( data.online ? 'Online' : 'Offline' );
			}
			if ( playersEl && typeof data.players === 'number' ) {
				playersEl.textContent = data.players;
			}
		} )
		.catch( function () {
			// Sem sorte (endpoint fora do ar, CORS, etc.) - mantem os
			// valores estaticos que ja estao no HTML, sem quebrar a pagina.
		} );
}() );