临时文件
This commit is contained in:
81
HT.Cloud.Web/wwwroot/lib/drawio/vsdxImporter.js
Normal file
81
HT.Cloud.Web/wwwroot/lib/drawio/vsdxImporter.js
Normal file
@ -0,0 +1,81 @@
|
||||
var mxIsElectron = navigator.userAgent != null &&
|
||||
navigator.userAgent.toLowerCase().indexOf(' electron/') > -1 &&
|
||||
navigator.userAgent.indexOf(' draw.io/') > -1;
|
||||
/**
|
||||
* Adds meta tag to the page.
|
||||
*/
|
||||
function mxmeta(content, httpEquiv)
|
||||
{
|
||||
try
|
||||
{
|
||||
var s = document.createElement('meta');
|
||||
|
||||
s.setAttribute('content', content);
|
||||
s.setAttribute('http-equiv', httpEquiv);
|
||||
|
||||
var t = document.getElementsByTagName('meta')[0];
|
||||
t.parentNode.insertBefore(s, t);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
};
|
||||
|
||||
function doImport(vsdxBuff, callback, error, file, customParam)
|
||||
{
|
||||
EditorUi.prototype.createUi = function(){};
|
||||
EditorUi.prototype.addTrees = function(){};
|
||||
EditorUi.prototype.updateActionStates = function(){};
|
||||
var editorUi = new EditorUi();
|
||||
var blob = file? file : new Blob([vsdxBuff], {type: 'application/octet-stream'});
|
||||
|
||||
editorUi.importVisio(blob, callback, error, file? file.name : null, customParam);
|
||||
};
|
||||
|
||||
|
||||
if (mxIsElectron)
|
||||
{
|
||||
mxmeta('default-src \'self\'; script-src \'self\'; connect-src \'self\' https://*.draw.io https://*.diagrams.net https://fonts.googleapis.com https://fonts.gstatic.com; img-src * data:; media-src *; font-src *; frame-src \'none\'; style-src \'self\' \'unsafe-inline\' https://fonts.googleapis.com; base-uri \'none\';child-src \'self\';object-src \'none\';', 'Content-Security-Policy');
|
||||
|
||||
electron.registerMsgListener('import', (vsdxBuff) =>
|
||||
{
|
||||
doImport(vsdxBuff, function(xml)
|
||||
{
|
||||
electron.sendMessage('import-success', xml);
|
||||
},
|
||||
function()
|
||||
{
|
||||
electron.sendMessage('import-error');
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
window.addEventListener('load', function()
|
||||
{
|
||||
document.getElementById('fileUpload').addEventListener('change', function()
|
||||
{
|
||||
const curFiles = this.files;
|
||||
|
||||
if(curFiles.length > 0)
|
||||
{
|
||||
function createDoneDiv(msg)
|
||||
{
|
||||
var doneDiv = document.createElement('div');
|
||||
doneDiv.id = 'doneDiv';
|
||||
doneDiv.innerHTML = msg;
|
||||
document.body.appendChild(doneDiv);
|
||||
};
|
||||
|
||||
doImport(null, function(xml)
|
||||
{
|
||||
window.importResXML = xml;
|
||||
createDoneDiv('success');
|
||||
}, function(err)
|
||||
{
|
||||
console.log(err)
|
||||
createDoneDiv('error');
|
||||
}, curFiles[0], window.customParam);
|
||||
}
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user