MediaWiki:Common.js: mudanças entre as edições
Aparência
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.
} );
}() );