xref: /plugin/diagrams/script/embed-editbutton.js (revision 046ca1447d01a47b6caa55952ebefa80c90967a9)
1/**
2 * Attach editing button to editable diagrams
3 */
4document.addEventListener('DOMContentLoaded', () => {
5    // check if the current page is editable by the current user
6    if (!document.querySelector('head link[rel="edit"]')) return;
7
8    document.querySelectorAll('object.diagrams-svg[data-pos]').forEach(embed => {
9        const button = document.createElement('button');
10        button.className = 'diagrams-btn';
11        button.innerText = LANG.plugins.diagrams.editButton;
12        button.addEventListener('click', event => {
13            event.preventDefault();
14            const diagramsEditor = new DiagramsEditor(() => {
15                window.location.reload();
16            });
17            diagramsEditor.editEmbed(
18                JSINFO.id,
19                parseInt(embed.getAttribute('data-pos')),
20                parseInt(embed.getAttribute('data-len'))
21            );
22        });
23
24        embed.parentNode.appendChild(button);
25    });
26});
27