MediaWiki:Edittools.js
Aus SELFHTML-Wiki
Hinweis: Leeren Sie nach dem Speichern den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Internet Explorer: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
- Opera: Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen
// Drop down box for the Special character menu in [[MediaWiki:Edittools]]
// will be called from [[MediaWiki:Common.js]].
// Adapted from:
// http://commons.wikimedia.org/wiki/MediaWiki:Edittools.js
(function() {
const specialchars = document.querySelector( '#editform .mw-editTools #specialchars' );
if (!specialchars) return;
// Steuerung ist viel besser über Button Bar zu machen, nicht über Select
const menu = document.createElement( 'ul' );
menu.id = 'specialcharsselect';
const panels = specialchars.querySelectorAll( '.specialbasic' );
panels.forEach(function( panel ) {
const item = document.createElement( 'li' );
item.innerHTML = `<button type='button' aria-selected='false' aria-controls='${panel.id}'>${panel.id}</button>`;
menu.append( item );
panel.hidden = true; // erstmal alle Panels verstecken
panel.style.display = ''; // ggf. vorhandenes display:none entfernen
});
menu.addEventListener( 'click', chooseCharSubset );
specialchars.before( menu );
selectPanel( localStorage.getItem( 'Edittools.selectedPanel' ) );
// Reaktion auf Buttonklick
function chooseCharSubset(clickEvent) {
const button = clickEvent.target.closest('button');
if (!button) return;
const showId = selectPanel(button.getAttribute('aria-controls'));
localStorage.setItem( 'Edittools.selectedPanel', showId);
}
function selectPanel(showId) {
if (specialchars.querySelector('#'+showId) == null) {
showId = panels[0].id;
}
panels.forEach( function( panel ) { panel.hidden = panel.id != showId; });
menu.querySelectorAll('button').forEach(function(button) {
button.setAttribute('aria-selected', button.getAttribute('aria-controls') == showId);
});
return showId;
}
})();