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, 10: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: ']]' } } } } } } } } }); }); }