popup.js
2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(function()
{
var svg = '<?xml version="1.0" encoding="UTF-8"?>\n' +
'<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n' +
'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="16px" height="16px" viewBox="-0.5 -0.5 16 16" ' +
'content="<mxfile host="app.diagrams.net" modified="2021-10-22T10:07:56.551Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) ' +
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36" etag="0jxz5d0kbRKOqK62l998" version="15.5.6"><diagram ' +
'id="QB-tHsTPjBIoVIsD2LTZ" name="Page-1">ddHBEoIgEADQr+GuMGWezerSyUNnRjZhBl0GabS+Ph0wZaoTy9tl2QHCinY8W27kFQVoQhMxEnYklKa7LJmWWZ5BkjxIY5XwtoFK' +
'vWApDPpQAvpgnhyidsrEWGPXQe0i49biEJfdUYsIDG8gGmOGquYavspuSjjp9UCz1S+gGrncnO5zn2n5Uhwa95ILHDbESsIKi+h81I4F6Pn14nc5/cl+BrPQuR8HpmDtPW2iL2LlGw==</diagram></mxfile>" ' +
'style="background-color: rgb(255, 255, 255);"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css?family=Architects+Daughter);
</style></defs><g/></svg>';
var port = chrome.runtime.connect({name: 'popup'});
var button = document.getElementById('insertDiagram');
var prev = null;
function done(message)
{
if (prev != null)
{
button.removeAttribute('disabled');
button.innerHTML = prev;
prev = null;
if (message != null)
{
alert(message);
}
}
};
button.onclick = function()
{
prev = button.innerHTML;
button.innerHTML = 'Please wait...';
button.setAttribute('disabled', 'disabled');
port.postMessage({msg: 'insertDiagram', filename: 'Diagram.drawio.svg', data: svg});
// Handles timeout
window.setTimeout(function()
{
done('Failed to insert. Please reinstall and try again.');
}, 8000);
};
port.onMessage.addListener(function(msg)
{
try
{
if (msg != null)
{
switch(msg.msg)
{
case 'insertDiagram':
window.setTimeout(done, 1500);
break;
}
}
}
catch (e)
{
done(e.message);
}
});
})();