MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus Phoenix-Larp Wiki
Becko (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Becko (Diskussion | Beiträge) VE-Icon: robustere Suche der Hilfe-Werkzeuggruppe (aria-label ODER title) |
||
| (13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
/* Das | /* Das Burger-Menü-JavaScript, der Admin-Link zu den Spezialseiten und die 'Anmelden'-Beschriftung für abgemeldete Besucher wurden in den PhoenixSkin-Fork übernommen (resources/phoenix-custom.js) und hier entfernt, da PhoenixSkin seit 2026-09-08 der Standard-Skin des Wikis ist. */ | ||
/* Hinweis auf den Redaktionsleitfaden im Bearbeiten-Modus. Bewusst hier | |||
in Common.js statt im Skin hinterlegt, damit Text/Ziel-Seite/Optik | |||
direkt im Wiki gepflegt werden koennen, ohne den Skin anzufassen. | |||
- Klassischer Wikitext-Editor: deutliche Hinweisbox mit Warnsymbol | |||
UNTERHALB des Quelltext-Feldes (nicht ueber dem ganzen Formular). | |||
- VisualEditor: das gleiche Warnsymbol als kleines Icon oben in der | |||
Werkzeugleiste, direkt vor dem Hilfe-("?")-Knopf. */ | |||
( function () { | |||
var WARNING_ICON = '⚠'; | |||
function insertClassicNotice( $editForm ) { | |||
if ( document.getElementById( 'phoenix-editnotice-leitfaden' ) ) { | |||
return; | |||
} | |||
var $anchor = $editForm.find( '#wpTextbox1' ); | |||
if ( !$anchor.length ) { | |||
$anchor = $editForm.find( 'textarea' ).first(); | |||
} | |||
if ( !$anchor.length ) { | |||
return; | |||
} | |||
// Falls CodeMirror aktiv ist, haengt es seinen eigentlichen | |||
// Editor-Container direkt hinter die (dann versteckte) Textarea - | |||
// den Hinweis in dem Fall dahinter statt davor einfuegen. | |||
var $cm = $anchor.next( '.cm-editor, .CodeMirror' ); | |||
var $insertAfter = $cm.length ? $cm : $anchor; | |||
var href = mw.util.getUrl( 'Phoenix_Larp_Wiki:Wiki-Projekt/Redaktionsleitfaden' ); | |||
var $notice = $( '<div>', { id: 'phoenix-editnotice-leitfaden' } ).append( | |||
$( '<span>', { 'class': 'phoenix-editnotice-icon', 'aria-hidden': 'true' } ).text( WARNING_ICON ), | |||
$( '<span>', { 'class': 'phoenix-editnotice-text' } ).append( | |||
document.createTextNode( 'Bitte beachte beim Bearbeiten den ' ), | |||
$( '<a>', { href: href, text: 'Redaktionsleitfaden' } ), | |||
document.createTextNode( '.' ) | |||
) | |||
); | |||
$insertAfter.after( $notice ); | |||
} | |||
// Sucht die "Hilfe"-Werkzeuggruppe in der VisualEditor-Werkzeugleiste. | |||
// OOUI setzt den Gruppentitel je nach Version/Aufbau entweder als | |||
// aria-label oder als title-Attribut - daher werden beide geprueft, | |||
// statt uns auf eine bestimmte interne CSS-Klasse zu verlassen. | |||
} | function findHelpGroup() { | ||
var $bar = $( '.oo-ui-toolbar-bar' ); | |||
if ( !$bar.length ) { | |||
return $(); | |||
} | |||
return $bar.find( '.oo-ui-toolGroup, .oo-ui-tool' ).filter( function () { | |||
var $el = $( this ); | |||
var label = ( $el.attr( 'aria-label' ) || $el.attr( 'title' ) || '' ).replace( /\s+/g, ' ' ).trim(); | |||
return label === 'Hilfe'; | |||
} ).first(); | |||
} | |||
function insertVeIcon() { | |||
if ( document.getElementById( 'phoenix-ve-editnotice-icon' ) ) { | |||
return true; | |||
} | |||
var $help = findHelpGroup(); | |||
if ( !$help.length ) { | |||
return false; | |||
} | |||
var href = mw.util.getUrl( 'Phoenix_Larp_Wiki:Wiki-Projekt/Redaktionsleitfaden' ); | |||
var $icon = $( '<a>', { | |||
id: 'phoenix-ve-editnotice-icon', | |||
href: href, | |||
target: '_blank', | |||
rel: 'noopener', | |||
title: 'Redaktionsleitfaden beachten', | |||
'aria-label': 'Redaktionsleitfaden beachten', | |||
text: WARNING_ICON | |||
} ); | |||
$help.before( $icon ); | |||
return true; | |||
} | |||
mw. | // Klassischer Wikitext-Editor: Kernhook, der beim Anzeigen des | ||
// Bearbeitungsformulars feuert (auch bei AJAX-Nachladen, z. B. beim | |||
// Bearbeiten einzelner Abschnitte). | |||
mw.hook( 'wikipage.editform' ).add( function ( $editForm ) { | |||
insertClassicNotice( $editForm ); | |||
} ); | |||
// VisualEditor: die Werkzeugleiste wird nach dem Aktivierungs-Hook | |||
// teils noch asynchron fertig aufgebaut, daher kurz nachpruefen | |||
// (max. ca. 8 Sekunden). | |||
mw.hook( 've.activationComplete' ).add( function () { | |||
var tries = 0; | |||
var iv = setInterval( function () { | |||
tries++; | |||
if ( insertVeIcon() || tries > 32 ) { | |||
clearInterval( iv ); | |||
} | |||
}, 250 ); | |||
} ); | |||
}() ); | |||
Aktuelle Version vom 9. September 2026, 05:39 Uhr
/* Das Burger-Menü-JavaScript, der Admin-Link zu den Spezialseiten und die 'Anmelden'-Beschriftung für abgemeldete Besucher wurden in den PhoenixSkin-Fork übernommen (resources/phoenix-custom.js) und hier entfernt, da PhoenixSkin seit 2026-09-08 der Standard-Skin des Wikis ist. */
/* Hinweis auf den Redaktionsleitfaden im Bearbeiten-Modus. Bewusst hier
in Common.js statt im Skin hinterlegt, damit Text/Ziel-Seite/Optik
direkt im Wiki gepflegt werden koennen, ohne den Skin anzufassen.
- Klassischer Wikitext-Editor: deutliche Hinweisbox mit Warnsymbol
UNTERHALB des Quelltext-Feldes (nicht ueber dem ganzen Formular).
- VisualEditor: das gleiche Warnsymbol als kleines Icon oben in der
Werkzeugleiste, direkt vor dem Hilfe-("?")-Knopf. */
( function () {
var WARNING_ICON = '⚠';
function insertClassicNotice( $editForm ) {
if ( document.getElementById( 'phoenix-editnotice-leitfaden' ) ) {
return;
}
var $anchor = $editForm.find( '#wpTextbox1' );
if ( !$anchor.length ) {
$anchor = $editForm.find( 'textarea' ).first();
}
if ( !$anchor.length ) {
return;
}
// Falls CodeMirror aktiv ist, haengt es seinen eigentlichen
// Editor-Container direkt hinter die (dann versteckte) Textarea -
// den Hinweis in dem Fall dahinter statt davor einfuegen.
var $cm = $anchor.next( '.cm-editor, .CodeMirror' );
var $insertAfter = $cm.length ? $cm : $anchor;
var href = mw.util.getUrl( 'Phoenix_Larp_Wiki:Wiki-Projekt/Redaktionsleitfaden' );
var $notice = $( '<div>', { id: 'phoenix-editnotice-leitfaden' } ).append(
$( '<span>', { 'class': 'phoenix-editnotice-icon', 'aria-hidden': 'true' } ).text( WARNING_ICON ),
$( '<span>', { 'class': 'phoenix-editnotice-text' } ).append(
document.createTextNode( 'Bitte beachte beim Bearbeiten den ' ),
$( '<a>', { href: href, text: 'Redaktionsleitfaden' } ),
document.createTextNode( '.' )
)
);
$insertAfter.after( $notice );
}
// Sucht die "Hilfe"-Werkzeuggruppe in der VisualEditor-Werkzeugleiste.
// OOUI setzt den Gruppentitel je nach Version/Aufbau entweder als
// aria-label oder als title-Attribut - daher werden beide geprueft,
// statt uns auf eine bestimmte interne CSS-Klasse zu verlassen.
function findHelpGroup() {
var $bar = $( '.oo-ui-toolbar-bar' );
if ( !$bar.length ) {
return $();
}
return $bar.find( '.oo-ui-toolGroup, .oo-ui-tool' ).filter( function () {
var $el = $( this );
var label = ( $el.attr( 'aria-label' ) || $el.attr( 'title' ) || '' ).replace( /\s+/g, ' ' ).trim();
return label === 'Hilfe';
} ).first();
}
function insertVeIcon() {
if ( document.getElementById( 'phoenix-ve-editnotice-icon' ) ) {
return true;
}
var $help = findHelpGroup();
if ( !$help.length ) {
return false;
}
var href = mw.util.getUrl( 'Phoenix_Larp_Wiki:Wiki-Projekt/Redaktionsleitfaden' );
var $icon = $( '<a>', {
id: 'phoenix-ve-editnotice-icon',
href: href,
target: '_blank',
rel: 'noopener',
title: 'Redaktionsleitfaden beachten',
'aria-label': 'Redaktionsleitfaden beachten',
text: WARNING_ICON
} );
$help.before( $icon );
return true;
}
// Klassischer Wikitext-Editor: Kernhook, der beim Anzeigen des
// Bearbeitungsformulars feuert (auch bei AJAX-Nachladen, z. B. beim
// Bearbeiten einzelner Abschnitte).
mw.hook( 'wikipage.editform' ).add( function ( $editForm ) {
insertClassicNotice( $editForm );
} );
// VisualEditor: die Werkzeugleiste wird nach dem Aktivierungs-Hook
// teils noch asynchron fertig aufgebaut, daher kurz nachpruefen
// (max. ca. 8 Sekunden).
mw.hook( 've.activationComplete' ).add( function () {
var tries = 0;
var iv = setInterval( function () {
tries++;
if ( insertVeIcon() || tries > 32 ) {
clearInterval( iv );
}
}, 250 );
} );
}() );