xref: /plugin/bpmnio/script.js (revision 09c117de925b5004bd57feff16e0077285f57180)
1jQuery(document).ready(function() {
2    jQuery("textarea[id^=__bpmnio_]").each(function(i, tag) { try {
3        var xml = jQuery(tag).text();
4        xml = decodeURIComponent(escape(window.atob(xml)));
5  	var id = jQuery(tag).attr('id');
6	// avoid doing it twice
7	jQuery(tag).removeAttr('id');
8
9	// bundle exposes the viewer / modeler via the BpmnJS variable
10  	var BpmnViewer = window.BpmnJS;
11  	var containerdiv = document.createElement('div');
12  	containerdiv.className = "canvas";
13  	jQuery(tag).parent().append(containerdiv);
14  	var viewer = new BpmnViewer({ container: containerdiv });
15	viewer.importXML(xml, function(err) {
16	    if (err) {
17	        containerdiv.text = err;
18      	        console.log('error rendering', err);
19    	    } else {
20                var canvas = viewer.get('canvas');
21                var bboxViewport = canvas.getDefaultLayer().getBBox(true);
22                var bboxSvg = canvas.getSize();
23                canvas.viewbox({ x: bboxViewport.x, y: bboxViewport.y, width: bboxSvg.width, height: bboxSvg.height });
24                var height = bboxViewport.height + 4;
25                // hack: adjust the div height because it doesn't automatically.
26                containerdiv.style.height = "" + height + 'px';
27                // Fix #3 by introducing a small space to allow clicks.
28                containerdiv.style.marginRight = "32px";
29            }
30	});
31	jQuery(tag).remove();
32    }catch(err){
33        console.warn(err.message);
34    }});
35});
36