Fix export problem when the windows is closed. Some code was moved to the iframeDialog.

This commit is contained in:
Paulo Gustavo Veiga 2012-08-31 20:51:55 -03:00
parent 6dce37d794
commit 052494a6a5
3 changed files with 27 additions and 16 deletions

View File

@ -16,14 +16,18 @@
$('submitBtn').addEvent('click', function () { $('submitBtn').addEvent('click', function () {
var iframeWindow = $('dialogContentIframe').contentWindow; var iframeWindow = $('dialogContentIframe').contentWindow;
if (iframeWindow && (typeof iframeWindow.submitDialogForm == 'function')) { if (iframeWindow && (typeof iframeWindow.submitDialogForm == 'function')) {
var delay = iframeWindow.submitDialogForm(); var context = iframeWindow.submitDialogForm(true);
if (MooDialog.Request.active) { if (context) {
if (!delay) { // This is a hack for the export function. If this is not done, the dialog is closed and the export fails.
MooDialog.Request.active.close(); var iframeForm = $('iframeExportForm');
} else { iframeForm.setAttribute('method', context.method);
MooDialog.Request.active.close.delay(3000, MooDialog.Request.active); iframeForm.setAttribute('action', context.action);
}
$('svgXml').setAttribute('value', window.document.getElementById('workspaceContainer').innerHTML);
$('download').setAttribute('value', context.formatType);
iframeForm.submit();
} }
MooDialog.Request.active.close();
} }
}); });
@ -32,4 +36,9 @@
MooDialog.Request.active.close(); MooDialog.Request.active.close();
} }
}); });
</script> </script>
<form method="GET" class="form-horizontal" action="service/maps/${mindmap.id}"
enctype="application/x-www-form-urlencoded" id="iframeExportForm">
<input name="svgXml" id="svgXml" value="" type="hidden"/>
<input name="download" id="download" type="hidden" value="mm"/>
</form>

View File

@ -58,18 +58,18 @@
// No way to obtain map svg. Hide panels.. // No way to obtain map svg. Hide panels..
if (window.location.pathname.indexOf('exportf') != -1) { if (window.location.pathname.indexOf('exportf') != -1) {
$('#exportInfo').hide(); $('#exportInfo').hide();
$('#freemind,#pdf,#svg').click('click', function(event) { $('#freemind,#pdf,#svg').click('click', function (event) {
$('#imgFormat').hide(); $('#imgFormat').hide();
}); });
$('#img').click('click', function(event) { $('#img').click('click', function (event) {
$('#imgFormat').show(); $('#imgFormat').show();
}); });
} else { } else {
$('#pdf,#svg,#img').parent().hide(); $('#pdf,#svg,#img').parent().hide();
} }
function submitDialogForm() { function submitDialogForm(differ) {
// If the map is opened, use the latest model ... // If the map is opened, use the latest model ...
var formatType = $('#dialogMainForm input:checked').attr('value'); var formatType = $('#dialogMainForm input:checked').attr('value');
var form = $('#dialogMainForm'); var form = $('#dialogMainForm');
@ -88,17 +88,19 @@
form.attr('action', 'service/transform.' + formatType); form.attr('action', 'service/transform.' + formatType);
// Load page SVG ... // Load page SVG ...
var svg = window.parent.document.getElementById('workspaceContainer').innerHTML; var svgXml = window.parent.document.getElementById('workspaceContainer').innerHTML;
$('#svgXml').attr('value', svg); $('#svgXml').attr('value', svgXml);
} }
$('#dialogMainForm input[name=download]').attr('value', formatType); $('#dialogMainForm input[name=download]').attr('value', formatType);
form.submit(); if (!differ) {
form.submit();
}
// Close dialog ... // Close dialog ...
$('#export-dialog-modal').modal('hide'); $('#export-dialog-modal').modal('hide');
return true; return {"action":form.attr('action'), "method":form.attr('method'), formatType:formatType};
} }
</script> </script>

View File

@ -6,7 +6,7 @@
<html> <html>
<head> <head>
<base href="${baseURL}/"> <base href="${baseURL}/">
<title><spring:message code="SITE.TITLE"/></title> <title><spring:message code="SITE.TITLE"/> - <spring:message code="MY_WISEMAPS"/></title>
<!--[if lt IE 9]> <!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="chrome=1"> <meta http-equiv="X-UA-Compatible" content="chrome=1">
<![endif]--> <![endif]-->