OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

profile-signature.js

2 KB
/*
 * Setzt den Signatur-Editor auf.
 *
 * Wird von der eigenen Seite und vom Dialog in der Kopfleiste genutzt; beide
 * bringen dasselbe Markup mit, nur an unterschiedlicher Stelle im Dokument.
 * Deshalb nimmt die Funktion den Wurzelknoten entgegen.
 */
window.OpenNIT = window.OpenNIT || {};

window.OpenNIT.initSignatureEditor = function (wurzel) {
    var container = wurzel.querySelector('#sig-editor-container');
    var hidden    = wurzel.querySelector('#sig-hidden');
    var form      = wurzel.querySelector('#sig-form');
    var leeren    = wurzel.querySelector('#sig-btn-clear');

    if (!container || !hidden || !form || !window.OpenNIT.WysiwygEditor) {
        return null;
    }

    // Das versteckte Feld gehoert in den Container, dort sucht es der Editor.
    container.appendChild(hidden);

    var editor = new window.OpenNIT.WysiwygEditor(container, {
        placeholder: window.onitText('z. B. Viele Grüße / Vorname Nachname'),
        csrfToken: (form.querySelector('input[name="_csrf"]') || {}).value || ''
    });

    // Eine Signatur traegt keine Bilder.
    container.querySelectorAll('[data-command="insertImage"]').forEach(function (btn) {
        btn.style.display = 'none';
    });

    form.addEventListener('submit', function () {
        hidden.value = editor.getText().trim() ? editor.getContent() : '';
    });

    if (leeren) {
        leeren.addEventListener('click', function () {
            editor.setContent('');
            hidden.value = '';
        });
    }

    return editor;
};