Skip to content

Instantly share code, notes, and snippets.

@alderg
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alderg/8826608 to your computer and use it in GitHub Desktop.
Save alderg/8826608 to your computer and use it in GitHub Desktop.
<html>
<head>
<script type="text/javascript">
var DRAW_IFRAME_URL = 'https://www.draw.io/?gapi=0&db=0&embed=1';
var dav= '';
function edit(filename)
{
var req = new XMLHttpRequest();
req.withCredentials = true;
req.onreadystatechange = function()
{
if (req.readyState == 4)
{
var border = 0;
var iframe = document.createElement('iframe');
iframe.style.zIndex = '9999';
iframe.style.position = 'absolute';
iframe.style.top = border + 'px';
iframe.style.left = border + 'px';
var resize = function()
{
iframe.setAttribute('width', document.body.clientWidth - 2 * border);
iframe.setAttribute('height', document.body.clientHeight - 2 * border);
};
if (border == 0)
{
iframe.setAttribute('frameborder', '0');
}
iframe.addEventListener('load', function()
{
iframe.contentWindow.postMessage(req.responseText, '*');
resize();
});
window.addEventListener('resize', resize);
var receive = function(evt)
{
if (evt.data.length > 0)
{
var req2 = new XMLHttpRequest();
req2.withCredentials = true;
req2.onreadystatechange = function()
{
if (req2.readyState == 4)
{
//console.log('req', req2.responseText);
}
};
req2.open('PUT', dav + filename, true);
req2.send(evt.data);
}
window.removeEventListener('resize', resize);
window.removeEventListener('message', receive);
document.body.removeChild(iframe);
};
window.addEventListener('message', receive);
resize();
iframe.setAttribute('src', DRAW_IFRAME_URL);
document.body.appendChild(iframe);
}
};
req.onerror = function()
{
alert('error');
};
req.open('GET', dav + filename, true);
req.send();
};
</script>
</head>
<body>
<input id="filename" type="text" value="test.xml"/>
<button onclick="edit(document.getElementById('filename').value);">Edit</button>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment