MediaWiki: Editor.js: Unterschied zwischen den Versionen
Aus Joachim Camerarius (1500-1574)
Noeth (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
Noeth (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung Markierung: Zurückgesetzt |
||
| Zeile 15: | Zeile 15: | ||
type: 'element', | type: 'element', | ||
element: function ( context ) { | element: function ( context ) { | ||
// Prepare attribute options | |||
// | |||
var attributes = [ | var attributes = [ | ||
{ value: 'Auftraggeber', label: 'Auftraggeber' }, | { value: 'Auftraggeber', label: 'Auftraggeber' }, | ||
| Zeile 38: | Zeile 36: | ||
{ value: 'Nachrufempfänger', label: 'Nachrufempfänger' } | { value: 'Nachrufempfänger', label: 'Nachrufempfänger' } | ||
]; | ]; | ||
attributes. | // Create menu items | ||
var menuItems = attributes.map( function( attr ) { | |||
return new OO.ui.MenuOptionWidget({ | |||
data: attr.value, | |||
label: attr.label | |||
}); | |||
}); | }); | ||
// | // Create dropdown | ||
var | var dropdown = new OO.ui.DropdownWidget({ | ||
label: ' | label: 'Attribute-Allgemein', | ||
menu: { | |||
items: menuItems | |||
} | |||
}); | }); | ||
// Add event handler for selection | |||
var selectedAttr = | dropdown.getMenu().on( 'choose', function( menuOption ) { | ||
var selectedAttr = menuOption.getData(); | |||
var insertText = '[[' + selectedAttr + '::]]'; | var insertText = '[[' + selectedAttr + '::]]'; | ||
context.fn.insertText( insertText ); | context.fn.insertText( insertText ); | ||
}); | }); | ||
return | return dropdown.$element; | ||
} | } | ||
} | } | ||
Version vom 6. Dezember 2024, 09:31 Uhr
// Check if we're in edit mode
if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
// Add a hook handler for WikiEditor toolbar
mw.hook( 'wikiEditor.toolbarReady' ).add( function ( $textarea ) {
$textarea.wikiEditor( 'addToToolbar', {
sections: {
camerarius: {
type: 'section',
label: 'Camerarius-Attribute',
groups: {
attributes: {
tools: {
// Attribute Dropdown
attributeSelect: {
type: 'element',
element: function ( context ) {
// Prepare attribute options
var attributes = [
{ value: 'Auftraggeber', label: 'Auftraggeber' },
{ value: 'Beeinflusser', label: 'Beeinflusser' },
{ value: 'Briefpartner', label: 'Briefpartner' },
{ value: 'Erwähnte Körperschaft', label: 'Erwähnte Körperschaft' },
{ value: 'Erwähnte Person', label: 'Erwähnte Person' },
{ value: 'Erwähnter Ort', label: 'Erwähnter Ort' },
{ value: 'Erwähntes Werk', label: 'Erwähntes Werk' },
{ value: 'Forschungsliteratur', label: 'Forschungsliteratur' },
{ value: 'Gesprächspartner', label: 'Gesprächspartner' },
{ value: 'Initiator', label: 'Initiator' },
{ value: 'Lehrer', label: 'Lehrer' },
{ value: 'Schüler', label: 'Schüler' },
{ value: 'Student', label: 'Student' },
{ value: 'Unterstützer', label: 'Unterstützer' },
{ value: 'Werkadressat', label: 'Werkadressat' },
{ value: 'Widmender', label: 'Widmender' },
{ value: 'Widmungsempfänger', label: 'Widmungsempfänger' },
{ value: 'Nachrufempfänger', label: 'Nachrufempfänger' }
];
// Create menu items
var menuItems = attributes.map( function( attr ) {
return new OO.ui.MenuOptionWidget({
data: attr.value,
label: attr.label
});
});
// Create dropdown
var dropdown = new OO.ui.DropdownWidget({
label: 'Attribute-Allgemein',
menu: {
items: menuItems
}
});
// Add event handler for selection
dropdown.getMenu().on( 'choose', function( menuOption ) {
var selectedAttr = menuOption.getData();
var insertText = '[[' + selectedAttr + '::]]';
context.fn.insertText( insertText );
});
return dropdown.$element;
}
}
}
},
specialButtons: {
tools: {
// Beschreibungen Button
beschreibungenButton: {
type: 'button',
label: 'Beschreibungen',
icon: 'bold',
action: {
type: 'encapsulate',
options: {
pre: '{{Beschreibungen|',
post: '}}'
}
}
},
// MBW Button
mbwButton: {
type: 'button',
label: 'MBW',
icon: 'link',
action: {
type: 'encapsulate',
options: {
pre: '[https://melanchthon.hadw-bw.de/regesten.html MBW - Regesten online], Nr. ',
post: ''
}
}
},
// Link Button
linkButton: {
type: 'button',
label: 'Verlinkung',
icon: 'linkExternal',
action: {
type: 'encapsulate',
options: {
pre: '[[',
post: ']]'
}
}
},
// Binnenverweis Button
binnenverweisButton: {
type: 'button',
label: 'Binnenverweis',
icon: 'redirect',
action: {
type: 'encapsulate',
options: {
pre: '[[',
post: ']]'
}
}
}
}
}
}
}
}
});
});
}