MediaWiki:Common.js: mudanças entre as edições
Aparência
Removendo lateral via JS e criando menu superior |
JS limpo sem menu e sem lateral |
||
| Linha 1: | Linha 1: | ||
(function () { | (function () { | ||
function | function removeMenusAndOldBars() { | ||
var selectors = [ | var selectors = [ | ||
'#td-topbar', | |||
'#td-global-topnav', | |||
'#mw-panel', | '#mw-panel', | ||
'#mw-navigation', | '#mw-navigation', | ||
'#mw-head', | |||
'#mw-page-base', | |||
'#p-logo', | '#p-logo', | ||
'#p-navigation', | '#p-navigation', | ||
| Linha 11: | Linha 15: | ||
'#p-cactions', | '#p-cactions', | ||
'#p-personal', | '#p-personal', | ||
'#siteNotice', | |||
'.mw-sidebar', | '.mw-sidebar', | ||
'.mw-portlet', | '.mw-portlet', | ||
| Linha 20: | Linha 25: | ||
'.vector-page-toolbar', | '.vector-page-toolbar', | ||
'.vector-sticky-header', | '.vector-sticky-header', | ||
'.citizen-header', | |||
'.citizen-header-container', | |||
'.citizen-header__inner', | |||
'.citizen-header__start', | |||
'.citizen-header__end', | |||
'.citizen-header__button', | |||
'.citizen-drawer', | '.citizen-drawer', | ||
'.citizen-drawer__card', | |||
'.citizen-sidebar', | '.citizen-sidebar', | ||
'.citizen-page-sidebar', | '.citizen-page-sidebar', | ||
'.citizen-toc', | '.citizen-toc', | ||
'.citizen- | '.citizen-search', | ||
'.citizen- | '.citizen-search-box', | ||
'.citizen- | '.citizen-page-header', | ||
'.citizen-page-header__actions', | '.citizen-page-header__actions', | ||
'.citizen-page-actions' | '.citizen-page-actions', | ||
'.citizen-sticky-header', | |||
'.citizen-footer', | |||
'.mw-footer', | |||
'#footer' | |||
]; | ]; | ||
| Linha 36: | Linha 52: | ||
}); | }); | ||
}); | }); | ||
if (document.body.classList.contains('page-Página_principal')) { | |||
document.querySelectorAll('.catlinks, #catlinks, .printfooter, .mw-indicators').forEach(function (el) { | |||
el.remove(); | |||
}); | |||
} | |||
} | } | ||
| Linha 51: | Linha 73: | ||
var saved = localStorage.getItem('tdTheme'); | var saved = localStorage.getItem('tdTheme'); | ||
if (saved === 'dark' || saved === 'light') return saved; | if (saved === 'dark' || saved === 'light') return saved; | ||
return 'dark'; | |||
} | } | ||
| Linha 121: | Linha 83: | ||
btn.type = 'button'; | btn.type = 'button'; | ||
btn.addEventListener('click', function () { | btn.addEventListener('click', function () { | ||
var active = document.documentElement.getAttribute('data-td-theme') || ' | var active = document.documentElement.getAttribute('data-td-theme') || 'dark'; | ||
applyTheme(active === 'dark' ? 'light' : 'dark'); | applyTheme(active === 'dark' ? 'light' : 'dark'); | ||
}); | }); | ||
| Linha 225: | Linha 187: | ||
a.appendChild(title); | a.appendChild(title); | ||
a.appendChild(date); | a.appendChild(date); | ||
container.appendChild(a); | container.appendChild(a); | ||
}); | }); | ||
| Linha 238: | Linha 199: | ||
mw.loader.using('mediawiki.util').then(function () { | mw.loader.using('mediawiki.util').then(function () { | ||
removeMenusAndOldBars(); | |||
mountThemeButton(); | mountThemeButton(); | ||
mountHomeSearch(); | mountHomeSearch(); | ||
mountLatestWikis(); | mountLatestWikis(); | ||
setTimeout( | setTimeout(removeMenusAndOldBars, 100); | ||
setTimeout( | setTimeout(removeMenusAndOldBars, 500); | ||
setTimeout( | setTimeout(removeMenusAndOldBars, 1200); | ||
setTimeout(removeMenusAndOldBars, 2500); | |||
}); | }); | ||
} | } | ||
Edição das 15h08min de 28 de junho de 2026
(function () {
function removeMenusAndOldBars() {
var selectors = [
'#td-topbar',
'#td-global-topnav',
'#mw-panel',
'#mw-navigation',
'#mw-head',
'#mw-page-base',
'#p-logo',
'#p-navigation',
'#p-tb',
'#p-lang',
'#p-interaction',
'#p-cactions',
'#p-personal',
'#siteNotice',
'.mw-sidebar',
'.mw-portlet',
'.vector-sidebar-container',
'.vector-main-menu',
'.vector-main-menu-landmark',
'.vector-column-start',
'.vector-toc-landmark',
'.vector-page-toolbar',
'.vector-sticky-header',
'.citizen-header',
'.citizen-header-container',
'.citizen-header__inner',
'.citizen-header__start',
'.citizen-header__end',
'.citizen-header__button',
'.citizen-drawer',
'.citizen-drawer__card',
'.citizen-sidebar',
'.citizen-page-sidebar',
'.citizen-toc',
'.citizen-search',
'.citizen-search-box',
'.citizen-page-header',
'.citizen-page-header__actions',
'.citizen-page-actions',
'.citizen-sticky-header',
'.citizen-footer',
'.mw-footer',
'#footer'
];
selectors.forEach(function (selector) {
document.querySelectorAll(selector).forEach(function (el) {
el.remove();
});
});
if (document.body.classList.contains('page-Página_principal')) {
document.querySelectorAll('.catlinks, #catlinks, .printfooter, .mw-indicators').forEach(function (el) {
el.remove();
});
}
}
function applyTheme(theme) {
document.documentElement.setAttribute('data-td-theme', theme);
localStorage.setItem('tdTheme', theme);
var btn = document.getElementById('td-theme-toggle');
if (btn) {
btn.textContent = theme === 'dark' ? '☀️ Claro' : '🌙 Escuro';
}
}
function getTheme() {
var saved = localStorage.getItem('tdTheme');
if (saved === 'dark' || saved === 'light') return saved;
return 'dark';
}
function mountThemeButton() {
if (document.getElementById('td-theme-toggle')) return;
var btn = document.createElement('button');
btn.id = 'td-theme-toggle';
btn.type = 'button';
btn.addEventListener('click', function () {
var active = document.documentElement.getAttribute('data-td-theme') || 'dark';
applyTheme(active === 'dark' ? 'light' : 'dark');
});
document.body.appendChild(btn);
applyTheme(getTheme());
}
function mountHomeSearch() {
var mount = document.getElementById('td-home-search');
if (!mount) return;
var form = document.createElement('form');
form.className = 'td-search-form';
var input = document.createElement('input');
input.className = 'td-search-input';
input.type = 'search';
input.placeholder = 'Pesquisar séries, filmes, personagens e franquias';
input.autocomplete = 'off';
var button = document.createElement('button');
button.className = 'td-search-button';
button.type = 'submit';
button.textContent = 'Pesquisar';
form.appendChild(input);
form.appendChild(button);
form.addEventListener('submit', function (event) {
event.preventDefault();
var q = input.value.trim();
window.location.href = mw.util.getUrl('Especial:Pesquisar') + (q ? '?search=' + encodeURIComponent(q) : '');
});
mount.innerHTML = '';
mount.appendChild(form);
}
function formatDate(iso) {
try {
return new Date(iso).toLocaleDateString('pt-BR', {
day: '2-digit',
month: 'short',
year: 'numeric'
});
} catch (e) {
return '';
}
}
function mountLatestWikis() {
var container = document.getElementById('td-latest-wikis');
if (!container) return;
var api = (mw.config.get('wgScriptPath') || '') + '/api.php';
var url = api
+ '?action=query'
+ '&format=json'
+ '&list=recentchanges'
+ '&rctype=new'
+ '&rcnamespace=0'
+ '&rcprop=title|timestamp'
+ '&rclimit=16';
fetch(url, { credentials: 'same-origin' })
.then(function (res) { return res.json(); })
.then(function (data) {
var items = (((data || {}).query || {}).recentchanges || [])
.filter(function (item) {
return item.title && item.title !== 'Página principal';
})
.slice(0, 8);
container.innerHTML = '';
if (!items.length) {
var empty = document.createElement('div');
empty.className = 'td-loading';
empty.textContent = 'Nenhuma página nova encontrada ainda.';
container.appendChild(empty);
return;
}
items.forEach(function (item) {
var a = document.createElement('a');
a.className = 'td-latest-card';
a.href = mw.util.getUrl(item.title);
var label = document.createElement('div');
label.className = 'td-latest-label';
label.textContent = 'Wiki criada/importada';
var title = document.createElement('div');
title.className = 'td-latest-title';
title.textContent = item.title;
var date = document.createElement('div');
date.className = 'td-latest-date';
date.textContent = formatDate(item.timestamp);
a.appendChild(label);
a.appendChild(title);
a.appendChild(date);
container.appendChild(a);
});
})
.catch(function () {
container.innerHTML = '<div class="td-loading">Não foi possível carregar as últimas wikis agora.</div>';
});
}
function init() {
applyTheme(getTheme());
mw.loader.using('mediawiki.util').then(function () {
removeMenusAndOldBars();
mountThemeButton();
mountHomeSearch();
mountLatestWikis();
setTimeout(removeMenusAndOldBars, 100);
setTimeout(removeMenusAndOldBars, 500);
setTimeout(removeMenusAndOldBars, 1200);
setTimeout(removeMenusAndOldBars, 2500);
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
})();