xref: /plugin/mdimport/script.js (revision 7cb424c90c7e1aca7edae5f79baaec2e55306143)
1*7cb424c9SSioc de Narffunction addBtnActionMdimport($btn, props, edid) {
2*7cb424c9SSioc de Narf    $btn.click(function() {
3*7cb424c9SSioc de Narf        var fileInput = document.createElement('input');
4*7cb424c9SSioc de Narf        fileInput.type = 'file';
5*7cb424c9SSioc de Narf        fileInput.accept = '.md,.txt,text/markdown,text/plain';
6*7cb424c9SSioc de Narf        fileInput.style.display = 'none';
7*7cb424c9SSioc de Narf
8*7cb424c9SSioc de Narf        fileInput.onchange = function(event) {
9*7cb424c9SSioc de Narf            var file = event.target.files[0];
10*7cb424c9SSioc de Narf            if (!file) return;
11*7cb424c9SSioc de Narf
12*7cb424c9SSioc de Narf            var reader = new FileReader();
13*7cb424c9SSioc de Narf            reader.onload = function(e) {
14*7cb424c9SSioc de Narf                var content = e.target.result;
15*7cb424c9SSioc de Narf
16*7cb424c9SSioc de Narf                fetch('lib/plugins/mdimport/convert.php', {
17*7cb424c9SSioc de Narf                    method: 'POST',
18*7cb424c9SSioc de Narf                    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
19*7cb424c9SSioc de Narf                    body: 'content=' + encodeURIComponent(content)
20*7cb424c9SSioc de Narf                })
21*7cb424c9SSioc de Narf                .then(response => response.text())
22*7cb424c9SSioc de Narf                .then(convertedContent => {
23*7cb424c9SSioc de Narf                    insertAtCarret(edid, convertedContent);
24*7cb424c9SSioc de Narf                })
25*7cb424c9SSioc de Narf                .catch(error => {
26*7cb424c9SSioc de Narf                    console.error('Conversion error:', error);
27*7cb424c9SSioc de Narf                    alert('Error converting file.');
28*7cb424c9SSioc de Narf                });
29*7cb424c9SSioc de Narf            };
30*7cb424c9SSioc de Narf            reader.readAsText(file);
31*7cb424c9SSioc de Narf        };
32*7cb424c9SSioc de Narf
33*7cb424c9SSioc de Narf        document.body.appendChild(fileInput);
34*7cb424c9SSioc de Narf        fileInput.click();
35*7cb424c9SSioc de Narf        document.body.removeChild(fileInput);
36*7cb424c9SSioc de Narf        return false;
37*7cb424c9SSioc de Narf    });
38*7cb424c9SSioc de Narf    return 'mdimport';
39*7cb424c9SSioc de Narf}
40