You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.7 KiB
163 lines
5.7 KiB
//constructor
|
|
var svgCanvasEmbed = null;
|
|
var svgEditor = null;
|
|
function setNoSaveWarning(){
|
|
svgCanvasEmbed.frame.contentWindow.svgCanvas.undoMgr.resetUndoStack();
|
|
}
|
|
function init_embed() {
|
|
var svgEditFrameName = 'svgedit';
|
|
var frame = document.getElementById(svgEditFrameName);
|
|
svgCanvasEmbed = new EmbeddedSVGEdit(frame);
|
|
// Hide main button, as we will be controlling new/load/save etc from the host document
|
|
var doc = frame.contentDocument;
|
|
if (!doc)
|
|
{
|
|
doc = frame.contentWindow.document;
|
|
}
|
|
var mainButton = doc.getElementById('main_button');
|
|
mainButton.style.display = 'none';
|
|
svgEditor = frame.contentWindow.svgEditor;
|
|
}
|
|
//private
|
|
function getSvgString(){
|
|
return svgCanvasEmbed.frame.contentWindow.svgCanvas.getSvgString();
|
|
}
|
|
function setSvgStringToEditor( svgParsedString ){
|
|
//alert('setSvgStringToEditor: '+svgParsedString);
|
|
svgCanvasEmbed.setSvgString( svgParsedString )(
|
|
function(data,error){
|
|
if(error){
|
|
}else{
|
|
svgCanvasEmbed.zoomChanged('', 'canvas');
|
|
setNoSaveWarning();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function setSvgStringToPreview( svgParsedString, q, data ) {
|
|
var previewIframe = document.getElementById('svgpreview');
|
|
if(!previewIframe){
|
|
return;
|
|
}
|
|
//alert('setSvgStringToPreview: svgParsedString='+svgParsedString+';data='+data+';');
|
|
if ($.browser.msie) {
|
|
//we need to repeat query to server for msie if we don't want send template string via GET method
|
|
if(!q){
|
|
var dataPreview = data;
|
|
dataPreview.tt_viewmode = 'parsed';
|
|
dataPreview.tt_type = 'svg';
|
|
dataPreview.tt_output_type = 'svg';
|
|
dataPreview.tt_sourcestate = dataPreview.tt_sourcestate || 'saved';
|
|
q = uriForAction( dataPreview, 'template' );
|
|
//alert('setSvgStringToPreview: q='+q+';');
|
|
}
|
|
previewIframe.src = q;
|
|
}else{
|
|
previewIframe.src = "data:text/html," + encodeURIComponent(svgParsedString);
|
|
}
|
|
}
|
|
function fetchSvgToEditor( data ) {
|
|
var q = uriForAction( data, 'template' );
|
|
//alert('fetchSvgToEditor: q='+q+';');
|
|
$.ajax({
|
|
url: q,
|
|
}).done( function ( httpResponse ){
|
|
setSvgStringToEditor( httpResponse );
|
|
});
|
|
}
|
|
|
|
function fetchInvoiceTemplateData(data) {
|
|
var q = uriForAction(data, 'template');
|
|
var queryObj = {
|
|
url: q,
|
|
type: 'GET',
|
|
};
|
|
$.ajax(queryObj).done(function(templatedata) {
|
|
setSvgStringToEditor(templatedata);
|
|
});
|
|
}
|
|
|
|
function clearTemplateForm(data){
|
|
$('#template_editor_form').css('visibility','hidden');
|
|
//$('#load_previewed_control').css('display', 'none' );
|
|
$('#load_saved_control').css('display', 'none' );
|
|
if(!data){
|
|
data = {};
|
|
}
|
|
data.tt_sourcestate = 'default';
|
|
fetchInvoiceTemplateData(data, 1);//1 = no show form again, just clear it up to default state
|
|
}
|
|
|
|
function savePreviewed( data, callback ){
|
|
var svgString = getSvgString();
|
|
var q = uriForAction( data, 'template_previewed' );
|
|
//alert('savePreviewedAndShowParsed: svgString='+svgString+'; q='+q+';');
|
|
//alert('savePreviewedAndShowParsed: q='+q+';');
|
|
//save
|
|
q=formToUri(q);
|
|
$.post( q, { template: svgString } )
|
|
.done( function( httpResponse ){
|
|
// & show template
|
|
//alert('savePreviewed: httpResponse='+httpResponse+';');
|
|
//alert('savePreviewed: callback='+callback+'; typeof='+(typeof callback)+';');
|
|
|
|
//setSvgStringToPreview( httpResponse, q, data )
|
|
|
|
if(typeof callback == 'function'){
|
|
//alert('savePreviewed.1: callback='+callback+'; typeof='+(typeof callback)+';');
|
|
callback(httpResponse, q, data);
|
|
}else{
|
|
eval(callback);
|
|
}
|
|
|
|
//$('#load_previewed_control').css('display', 'inline' );
|
|
//refresh list after saving - there is nothin that can be changed in templates list after preview refresh
|
|
//refreshAjaxList( 'template', data );
|
|
} );
|
|
}
|
|
function savePreviewedAndShowParsed( data ){
|
|
savePreviewed(data, setSvgStringToPreview );
|
|
//var svgString = getSvgString();
|
|
//var q = uriForAction( data, 'template_previewed' );
|
|
////alert('savePreviewedAndShowParsed: svgString='+svgString+'; q='+q+';');
|
|
////alert('savePreviewedAndShowParsed: q='+q+';');
|
|
////save
|
|
//q=formToUri(q);
|
|
//$.post( q, { template: svgString } )
|
|
//.done( function( httpResponse ){
|
|
// // & show template
|
|
// //alert('savePreviewedAndShowParsed: httpResponse='+httpResponse+';');
|
|
// setSvgStringToPreview( httpResponse, q, data )
|
|
// //$('#load_previewed_control').css('display', 'inline' );
|
|
// //refresh list after saving - there is nothin that can be changed in templates list after preview refresh
|
|
// //refreshAjaxList( 'template', data );
|
|
//} );
|
|
}
|
|
|
|
function saveTemplate( data, callback ) {
|
|
var svgString = getSvgString();
|
|
var q = uriForAction( data, 'template_saved' );
|
|
q=formToUri(q);
|
|
//alert('saveTemplate: q='+q+';');
|
|
$.ajax( {
|
|
url: q,
|
|
type: "POST",
|
|
//datatype: 'json',
|
|
data: { template: svgString },
|
|
} ).done( function( jsonResponse ) {
|
|
if(jsonResponse.aaData && jsonResponse.aaData.form){
|
|
$('form[name=template_editor]').loadJSON(jsonResponse.aaData.form);
|
|
}
|
|
$('#load_saved_control').css('display', 'inline' );
|
|
if(typeof callback == 'function'){
|
|
//alert('saveTemplate.1: callback='+callback+'; typeof='+(typeof callback)+';');
|
|
callback(jsonResponse, q, data);
|
|
}else{
|
|
eval(callback);
|
|
}
|
|
setNoSaveWarning();
|
|
//refreshAjaxList( 'template', data );
|
|
});
|
|
}
|
|
|