MediaWiki:Common.js: Porovnání verzí
Z Wiki JU
Bez shrnutí editace |
Bez shrnutí editace |
||
| Řádek 63: | Řádek 63: | ||
//Vyhledávání | //Vyhledávání | ||
/ | /* Special:Search – profil=advanced, schování profilů a nepotřebných NS (OOUI) */ | ||
( function () { | (function () { | ||
if ( mw.config.get('wgCanonicalSpecialPageName') !== 'Search' ) return; | if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') return; | ||
var url = new URL( location.href ); | // 1) Vynutit profil "advanced" | ||
if ( url.searchParams.get('profile') !== 'advanced' ) { | var url = new URL(location.href); | ||
if (url.searchParams.get('profile') !== 'advanced') { | |||
url.searchParams.set('profile', 'advanced'); | url.searchParams.set('profile', 'advanced'); | ||
location.replace( url.toString() ); | location.replace(url.toString()); | ||
return; | return; | ||
} | } | ||
// | // 2) (volitelné) schovat horní lištu profilů (Články, Multimedia, Všechno, Rozšířené) | ||
var | mw.hook('wikipage.content').add(function ($c) { | ||
$c.find('.mw-search-profile-tabs').hide(); | |||
} )(); | }); | ||
// 3) Schovat celé řádky vybraných jmenných prostorů (dle ID inputu) | |||
var HIDE_IDS = [ | |||
'mw-search-ns1','mw-search-ns2','mw-search-ns8','mw-search-ns9', | |||
'mw-search-ns420','mw-search-ns421','mw-search-ns828', | |||
'mw-search-ns3004','mw-search-ns3005','mw-search-ns3','mw-search-ns4', | |||
'mw-search-ns5','mw-search-ns11','mw-search-ns12','mw-search-ns13', | |||
'mw-search-ns829','mw-search-ns3000','mw-search-ns3001', | |||
'mw-search-ns3006','mw-search-ns3007' | |||
]; | |||
var HIDE_SELECTOR = HIDE_IDS.map(function (id){ return '#'+id; }).join(','); | |||
function prune() { | |||
var root = document.querySelector('.mw-search-nsoptions'); | |||
if (!root) return; | |||
// projdi všechny OOUI fieldLayouty a skryj ty, které obsahují některý z checkboxů k ukrytí | |||
root.querySelectorAll('.oo-ui-fieldLayout').forEach(function (row) { | |||
if (row.querySelector(HIDE_SELECTOR)) { | |||
row.style.display = 'none'; | |||
} | |||
}); | |||
} | |||
// poprvé po načtení | |||
mw.hook('wikipage.content').add(prune); | |||
// OOUI někdy přestaví DOM po kliknutí na "Všechno/Nic" → sleduj a aplikuj znovu | |||
var obs = new MutationObserver(function () { prune(); }); | |||
obs.observe(document.body, { childList: true, subtree: true }); | |||
})(); | |||
Verze z 25. 9. 2025, 07:43
/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky */
//Zpětná vazba
$(function () {
// Zruš jQuery UI vzhled tlačítka
$('.articleFeedbackv5-submit').button('destroy');
});
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('.extern-download').forEach(el => {
el.style.cursor = 'pointer';
el.style.color = '#0645AD';
el.style.textDecoration = 'underline';
el.addEventListener('click', () => {
const a = document.createElement('a');
a.href = el.getAttribute('data-url');
a.setAttribute('download', '');
a.style.display = 'none';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
});
});
});
(function () {
var NOTE_ID = 'af5-note';
var NOTE_HTML =
'<div id="' + NOTE_ID + '" class="articleFeedbackv5-note">' +
'<b>Tento formulář slouží pouze jako zpětná vazba pro tuto stránku.</b> ' +
'Řešíte-li nějaký problém, napište e-mail na ' +
'<a href="/Servicedesk/Seznam_e-mailových_adres_pro_zadávání_požadavků">službu,</a> které se Váš problém týká.' +
'</div>';
function injectNote(root) {
var $title = (root ? $(root) : $(document))
.find('.articleFeedbackv5-title-wrap')
.first();
if (!$title.length) return false; // nadpis není
if (document.getElementById(NOTE_ID)) return true; // už vloženo
$title.after(NOTE_HTML); // vložit pod nadpis
return true;
}
if (injectNote()) return;
var obs = new MutationObserver(function (mutations) {
for (var m of mutations) {
if (injectNote(m.target)) {
obs.disconnect();
break;
}
}
});
obs.observe(document.body, { childList: true, subtree: true });
setTimeout(function () { injectNote(); obs.disconnect(); }, 5000);
})();
//Vyhledávání
/* Special:Search – profil=advanced, schování profilů a nepotřebných NS (OOUI) */
(function () {
if (mw.config.get('wgCanonicalSpecialPageName') !== 'Search') return;
// 1) Vynutit profil "advanced"
var url = new URL(location.href);
if (url.searchParams.get('profile') !== 'advanced') {
url.searchParams.set('profile', 'advanced');
location.replace(url.toString());
return;
}
// 2) (volitelné) schovat horní lištu profilů (Články, Multimedia, Všechno, Rozšířené)
mw.hook('wikipage.content').add(function ($c) {
$c.find('.mw-search-profile-tabs').hide();
});
// 3) Schovat celé řádky vybraných jmenných prostorů (dle ID inputu)
var HIDE_IDS = [
'mw-search-ns1','mw-search-ns2','mw-search-ns8','mw-search-ns9',
'mw-search-ns420','mw-search-ns421','mw-search-ns828',
'mw-search-ns3004','mw-search-ns3005','mw-search-ns3','mw-search-ns4',
'mw-search-ns5','mw-search-ns11','mw-search-ns12','mw-search-ns13',
'mw-search-ns829','mw-search-ns3000','mw-search-ns3001',
'mw-search-ns3006','mw-search-ns3007'
];
var HIDE_SELECTOR = HIDE_IDS.map(function (id){ return '#'+id; }).join(',');
function prune() {
var root = document.querySelector('.mw-search-nsoptions');
if (!root) return;
// projdi všechny OOUI fieldLayouty a skryj ty, které obsahují některý z checkboxů k ukrytí
root.querySelectorAll('.oo-ui-fieldLayout').forEach(function (row) {
if (row.querySelector(HIDE_SELECTOR)) {
row.style.display = 'none';
}
});
}
// poprvé po načtení
mw.hook('wikipage.content').add(prune);
// OOUI někdy přestaví DOM po kliknutí na "Všechno/Nic" → sleduj a aplikuj znovu
var obs = new MutationObserver(function () { prune(); });
obs.observe(document.body, { childList: true, subtree: true });
})();