drawio-offline
Version:
diagrams.net desktop
100 lines (89 loc) • 2.12 kB
JavaScript
/**
* Explore plugin.
*/
Draw.loadPlugin(function(editorUi)
{
// Trello plugin only works in embed mode
if (editorUi.actions.get('exit') == null)
{
return;
}
// Overridden to redirect modified check to file
editorUi.actions.get('exit').funct = function()
{
var fn = function()
{
var parent = window.opener || window.parent;
parent.postMessage(JSON.stringify({event: 'exit'}), '*');
}
var file = editorUi.getCurrentFile();
if (file == null || !file.isModified())
{
fn();
}
else
{
editorUi.confirm(mxResources.get('allChangesLost'), null, fn,
mxResources.get('cancel'), mxResources.get('discardChanges'));
}
};
editorUi.showSplash = function()
{
this.actions.get('exit').funct();
};
function main()
{
var name = (urlParams['filename'] != null) ? decodeURIComponent(urlParams['filename']) : null;
var card = (urlParams['card'] != null) ? decodeURIComponent(urlParams['card']) : null;
var template = (urlParams['template'] != null) ? decodeURIComponent(urlParams['template']) : null;
if (name != null && card != null)
{
var doCreateFile = function(templateData)
{
editorUi.createFile(name, templateData ||
editorUi.getFileData(/(\.xml)$/i.test(name) ||
name.indexOf('.') < 0, /(\.svg)$/i.test(name),
/(\.html)$/i.test(name)), null, 'trello',
null, true, card);
};
if (template != null)
{
editorUi.trello.getFile(card + editorUi.trello.SEPARATOR +
template, function(file)
{
doCreateFile(file.getData());
}, function()
{
doCreateFile();
});
}
else
{
doCreateFile();
}
}
else if (window.location.hash.substring(0, 2) == '#T')
{
editorUi.loadFile(editorUi.getDiagramId(), true);
}
editorUi.addEmbedButtons();
};
// Waits for Trello client
if (editorUi.trello == null)
{
var waitForTrello = function()
{
if (editorUi.trello != null)
{
editorUi.removeListener(waitForTrello);
main();
}
};
// Waits for Trello client to load
editorUi.addListener('clientLoaded', waitForTrello);
}
else
{
main();
}
});