MediaWiki: Editor.js: Unterschied zwischen den Versionen

Aus Joachim Camerarius (1500-1574)
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 13: Zeile 13:
                                 // Attribute Dropdown
                                 // Attribute Dropdown
                                 attributeSelect: {
                                 attributeSelect: {
                                     type: 'element',
                                     type: 'select',
                                     element: function ( context ) {
                                     label: 'Attribute-Allgemein',
                                        // Prepare attribute options
                                    options: [
                                         var attributes = [
                                         { value: 'Auftraggeber', label: 'Auftraggeber' },
                                            { value: 'Auftraggeber', label: 'Auftraggeber' },
                                        { value: 'Beeinflusser', label: 'Beeinflusser' },
                                            { value: 'Beeinflusser', label: 'Beeinflusser' },
                                        { value: 'Briefpartner', label: 'Briefpartner' },
                                            { value: 'Briefpartner', label: 'Briefpartner' },
                                        { value: 'Erwähnte Körperschaft', label: 'Erwähnte Körperschaft' },
                                            { value: 'Erwähnte Körperschaft', label: 'Erwähnte Körperschaft' },
                                        { value: 'Erwähnte Person', label: 'Erwähnte Person' },
                                            { value: 'Erwähnte Person', label: 'Erwähnte Person' },
                                        { value: 'Erwähnter Ort', label: 'Erwähnter Ort' },
                                            { value: 'Erwähnter Ort', label: 'Erwähnter Ort' },
                                        { value: 'Erwähntes Werk', label: 'Erwähntes Werk' },
                                            { value: 'Erwähntes Werk', label: 'Erwähntes Werk' },
                                        { value: 'Forschungsliteratur', label: 'Forschungsliteratur' },
                                            { value: 'Forschungsliteratur', label: 'Forschungsliteratur' },
                                        { value: 'Gesprächspartner', label: 'Gesprächspartner' },
                                            { value: 'Gesprächspartner', label: 'Gesprächspartner' },
                                        { value: 'Initiator', label: 'Initiator' },
                                            { value: 'Initiator', label: 'Initiator' },
                                        { value: 'Lehrer', label: 'Lehrer' },
                                            { value: 'Lehrer', label: 'Lehrer' },
                                        { value: 'Schüler', label: 'Schüler' },
                                            { value: 'Schüler', label: 'Schüler' },
                                        { value: 'Student', label: 'Student' },
                                            { value: 'Student', label: 'Student' },
                                        { value: 'Unterstützer', label: 'Unterstützer' },
                                            { value: 'Unterstützer', label: 'Unterstützer' },
                                        { value: 'Werkadressat', label: 'Werkadressat' },
                                            { value: 'Werkadressat', label: 'Werkadressat' },
                                        { value: 'Widmender', label: 'Widmender' },
                                            { value: 'Widmender', label: 'Widmender' },
                                        { value: 'Widmungsempfänger', label: 'Widmungsempfänger' },
                                            { value: 'Widmungsempfänger', label: 'Widmungsempfänger' },
                                        { value: 'Nachrufempfänger', label: 'Nachrufempfänger' }
                                            { value: 'Nachrufempfänger', label: 'Nachrufempfänger' }
                                    ],
                                        ];
                                    action: {
 
                                         type: 'callback',
                                        // Create menu items
                                        execute: function ( context ) {
                                        var menuItems = attributes.map( function( attr ) {
                                             var selectedAttr = this.getValue();
                                            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 + '::]]';
                                             var insertText = '[[' + selectedAttr + '::]]';
                                             context.fn.insertText( insertText );
                                             context.fn.insertText( insertText );
                                         });
                                         }
 
                                        return dropdown.$element;
                                     }
                                     }
                                 }
                                 }

Version vom 6. Dezember 2024, 10:32 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: 'select',
                                    label: 'Attribute-Allgemein',
                                    options: [
                                        { 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' }
                                    ],
                                    action: {
                                        type: 'callback',
                                        execute: function ( context ) {
                                            var selectedAttr = this.getValue();
                                            var insertText = '[[' + selectedAttr + '::]]';
                                            context.fn.insertText( insertText );
                                        }
                                    }
                                }
                            }
                        },
                        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: ']]'
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        });
    });
}