(function($) { $(document).ready(function() { // Funktion zum Hinzufügen des Buttons unter das Beschriftungsfeld const positionButton = () => { const captionFields = [ $('#attachment-details-two-column-caption'), $('#attachment-details-caption'), $('#attachment_caption') ]; captionFields.forEach(field => { if (field.length && !field.next('#openModal').length) { const buttonHtml = '
Bildrechte
'; field.after(buttonHtml); } }); }; $('#attachment_caption').ready(positionButton); // Event-Listener für das Öffnen der Mediathek $(document).on('click change focus keydown mousedown resize', '.media-modal .attachment, .upload-files-button, .attachment-info, .media-button, .edit-attachment', function() { setTimeout(positionButton, 1); // Warte, bis die Mediathek geladen ist }); // Event-Listener für das Öffnen des Modals $(document).on('click', '#openModal', function() { $('#modal').removeClass('hidden'); // Auslesen der bestehenden Beschriftung const captionFields = [ $('#attachment-details-two-column-caption'), $('#attachment-details-caption'), $('#attachment_caption') ]; let currentCaption = ''; for (const field of captionFields) { if (field.length && field.val()) { currentCaption = field.val(); break; } } // Extrahieren der Werte aus der bestehenden Beschriftung und ins Formular einfügen const imageTitle = currentCaption.match(/([^<]*)<\/a>/); const imageSourceUrl = currentCaption.match(/[^<]*<\/a>/); const imageAuthor = currentCaption.match(/von: ([^<]*)<\/a>/); const authorImageUrl = currentCaption.match(/von: [^<]*<\/a>/); const imageLicense = currentCaption.match(/Lizenz\/Rechte: ([^<]*)<\/a>/); const licenseUrl = currentCaption.match(/Lizenz\/Rechte: [^<]*<\/a>/); // Füllen der Formularfelder mit den extrahierten Werten $('#imageTitle').val(imageTitle ? imageTitle[1] : ''); $('#imageSourceUrl').val(imageSourceUrl ? imageSourceUrl[1] : ''); $('#imageAuthor').val(imageAuthor ? imageAuthor[1] : ''); $('#authorImageUrl').val(authorImageUrl ? authorImageUrl[1] : ''); $('#imageLicense').val(imageLicense ? imageLicense[1] : ''); $('#licenseUrl').val(licenseUrl ? licenseUrl[1] : ''); }); // Event-Listener für das Schließen des Modals $(document).on('click', '#closeModal', function() { $('#modal').addClass('hidden'); }); // Event-Listener für das Speichern der Daten und das Einfügen in das Beschriftungsfeld $('#metaDataForm').on('submit', function(event) { event.preventDefault(); // Sammeln der Werte aus den Formularfeldern const imageTitle = $('#imageTitle').val(); const imageSourceUrl = $('#imageSourceUrl').val(); const imageAuthor = $('#imageAuthor').val(); const authorImageUrl = $('#authorImageUrl').val(); const imageLicense = $('#imageLicense').val(); const licenseUrl = $('#licenseUrl').val(); // Erstellen des neuen HTML-Snippets für die Bildbeschriftung let newCaption = `${imageTitle} |`; if (imageAuthor) { newCaption += ` von: ${imageAuthor} |`; } newCaption += ` Lizenz/Rechte: ${imageLicense}`; // Einfügen des neuen HTML-Snippets in das passende Beschriftungsfeld const captionFields = [ $('#attachment-details-two-column-caption'), $('#attachment-details-caption'), $('#attachment_caption') ]; for (const field of captionFields) { if (field.length) { field.val(newCaption); break; } } // Schließen des Modals $('#modal').addClass('hidden'); }); }); })(jQuery);