MediaWiki:Common.js: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 13: | Zeile 13: | ||
var KEY = 'vector-client-prefs'; | var KEY = 'vector-client-prefs'; | ||
var prefs = {}; | var prefs = {}; | ||
try { prefs = JSON.parse( localStorage.getItem(KEY) || '{}' ); } catch (e) {} | try { prefs = JSON.parse(localStorage.getItem(KEY) || '{}'); } catch (e) {} | ||
// 0 = wide, 1 = limited-width | // 0 = wide, 1 = limited-width | ||
if ( prefs['vector-feature-limited-width'] !== 0 ) { | if (prefs['vector-feature-limited-width'] !== 0) { | ||
prefs['vector-feature-limited-width'] = 0; | prefs['vector-feature-limited-width'] = 0; | ||
localStorage.setItem( KEY, JSON.stringify(prefs) ); | localStorage.setItem(KEY, JSON.stringify(prefs)); | ||
} | } | ||
// | // HTML-Klassen sofort korrigieren (verhindert „schmal“-Flash) | ||
var html = document.documentElement; | var html = document.documentElement; | ||
html.classList.remove('vector-feature-limited-width-clientpref-1'); | html.classList.remove('vector-feature-limited-width-clientpref-1'); | ||
html.classList.add('vector-feature-limited-width-clientpref-0'); | html.classList.add('vector-feature-limited-width-clientpref-0'); | ||
html.classList.remove('vector-feature-limited-width'); // falls vom Server gesetzt | |||
html.classList.remove('vector-feature-limited-width'); | |||
} catch (e) {} | } catch (e) {} | ||
})(); | })(); | ||
/* | /* === Vector 2022: Brille/Appearance IMMER entfernen, Toolbar nur für Gäste === */ | ||
mw.loader.using( 'mediawiki.util' ).then( function () { | mw.loader.using('mediawiki.util').then(function () { | ||
if (mw.config.get('skin') !== 'vector-2022') return; | |||
if ( mw.config.get( 'skin' ) !== 'vector-2022' | |||
function | function removeAppearanceEverywhere () { | ||
var sels = [ | var sels = [ | ||
// | // Header-Dropdown (Brille) | ||
'nav.vector-appearance-landmark', | 'nav.vector-appearance-landmark', | ||
'#vector-appearance-dropdown', | '#vector-appearance-dropdown', | ||
// | // Un-/Pinned-Container + eigentlicher Inhalt | ||
'#vector-appearance-unpinned-container', | |||
'#vector-appearance-pinned-container', | '#vector-appearance-pinned-container', | ||
// | '#vector-appearance', | ||
'#vector- | // Falls einzelne Client-Pref-Portlets gerendert wurden | ||
'#skin-client-prefs-vector-feature-custom-font-size', | |||
'#skin-client-prefs-vector-feature-limited-width', | |||
'#skin-client-prefs-skin-theme' | |||
]; | ]; | ||
sels.forEach(function (sel) { | sels.forEach(function (sel) { | ||
| Zeile 54: | Zeile 52: | ||
} | } | ||
// | function removeGuestToolbar () { | ||
if (mw.config.get('wgUserName')) return; // nur Gäste | |||
document.querySelectorAll('.vector-page-toolbar').forEach(function (el) { el.remove(); }); | |||
} | |||
// | // Sofort | ||
var | removeAppearanceEverywhere(); | ||
var mo = new MutationObserver(function ( | removeGuestToolbar(); | ||
for (var i = 0; i < | |||
if ( | // Nochmal bei DOM-Änderungen (Vector lädt Teile nach) | ||
var debouncedA = mw.util.debounce(removeAppearanceEverywhere, 50); | |||
var debouncedT = mw.util.debounce(removeGuestToolbar, 50); | |||
var mo = new MutationObserver(function (muts) { | |||
for (var i = 0; i < muts.length; i++) { | |||
if (muts[i].addedNodes && muts[i].addedNodes.length) { | |||
debouncedA(); | |||
debouncedT(); | |||
break; | break; | ||
} | } | ||
} | } | ||
}); | }); | ||
mo.observe( document.documentElement, { childList: true, subtree: true } ); | mo.observe(document.documentElement, { childList: true, subtree: true }); | ||
// Auch bei Ajax-Nachladungen | // Auch bei Ajax-/Fragment-Nachladungen | ||
mw.hook( 'wikipage.content' ).add( | mw.hook('wikipage.content').add(function () { | ||
removeAppearanceEverywhere(); | |||
removeGuestToolbar(); | |||
}); | |||
}); | }); | ||
Version vom 9. Oktober 2025, 22:59 Uhr
/* Das folgende JavaScript wird für alle Benutzer geladen. */
/*
$(document).ready(function(){
$("#ca-talk").remove();
$("#footer-places-privacy").remove();
$("#footer-places-about").remove();
$("#footer-places-disclaimers").remove();
});
*/
/* === Force Vector wide layout for everyone (MW 1.44, Vector 2022) === */
(function () {
try {
var KEY = 'vector-client-prefs';
var prefs = {};
try { prefs = JSON.parse(localStorage.getItem(KEY) || '{}'); } catch (e) {}
// 0 = wide, 1 = limited-width
if (prefs['vector-feature-limited-width'] !== 0) {
prefs['vector-feature-limited-width'] = 0;
localStorage.setItem(KEY, JSON.stringify(prefs));
}
// HTML-Klassen sofort korrigieren (verhindert „schmal“-Flash)
var html = document.documentElement;
html.classList.remove('vector-feature-limited-width-clientpref-1');
html.classList.add('vector-feature-limited-width-clientpref-0');
html.classList.remove('vector-feature-limited-width'); // falls vom Server gesetzt
} catch (e) {}
})();
/* === Vector 2022: Brille/Appearance IMMER entfernen, Toolbar nur für Gäste === */
mw.loader.using('mediawiki.util').then(function () {
if (mw.config.get('skin') !== 'vector-2022') return;
function removeAppearanceEverywhere () {
var sels = [
// Header-Dropdown (Brille)
'nav.vector-appearance-landmark',
'#vector-appearance-dropdown',
// Un-/Pinned-Container + eigentlicher Inhalt
'#vector-appearance-unpinned-container',
'#vector-appearance-pinned-container',
'#vector-appearance',
// Falls einzelne Client-Pref-Portlets gerendert wurden
'#skin-client-prefs-vector-feature-custom-font-size',
'#skin-client-prefs-vector-feature-limited-width',
'#skin-client-prefs-skin-theme'
];
sels.forEach(function (sel) {
document.querySelectorAll(sel).forEach(function (el) { el.remove(); });
});
}
function removeGuestToolbar () {
if (mw.config.get('wgUserName')) return; // nur Gäste
document.querySelectorAll('.vector-page-toolbar').forEach(function (el) { el.remove(); });
}
// Sofort
removeAppearanceEverywhere();
removeGuestToolbar();
// Nochmal bei DOM-Änderungen (Vector lädt Teile nach)
var debouncedA = mw.util.debounce(removeAppearanceEverywhere, 50);
var debouncedT = mw.util.debounce(removeGuestToolbar, 50);
var mo = new MutationObserver(function (muts) {
for (var i = 0; i < muts.length; i++) {
if (muts[i].addedNodes && muts[i].addedNodes.length) {
debouncedA();
debouncedT();
break;
}
}
});
mo.observe(document.documentElement, { childList: true, subtree: true });
// Auch bei Ajax-/Fragment-Nachladungen
mw.hook('wikipage.content').add(function () {
removeAppearanceEverywhere();
removeGuestToolbar();
});
});