100 lines
2.1 KiB
JavaScript
Vendored
100 lines
2.1 KiB
JavaScript
Vendored
/**
|
|
* 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();
|
|
}
|
|
});
|