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);
		}
	});
})();