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.
 
 
 
 
 
 

207 lines
6.1 KiB

$.fn.drawFullscreen = function() {
var win = $(window);
var me = $(this);
me.trigger('saveDraw');
var fullscreen = $('#svg-fullscreen');
if (fullscreen.length == 0) {
me.data('origParent', me.parent());
var menuHeight = $('#drawMenu').height();
$('body').addClass('full_screen_body');
$('body,html').scrollTop(0);
fullscreen = $('<div id="svg-fullscreen" />')
.html(me)
.prependTo('body');
var fullscreenIframe = fullscreen.find('iframe');
win
.resize(function() {
fullscreen
.height(win.height())
.width(win.width());
fullscreenIframe.height((fullscreen.height() - menuHeight));
})
.resize() //we do it double here to make sure it is all resized right
.resize();
} else {
me.data('origParent').append(me);
win.off('resize');
fullscreen.remove();
$('body').removeClass('full_screen_body');
}
return this;
};
$.fn.replaceDraw = function(o) {
var me = $(this);
if (o.error) {
alert('error ' + o.error);
} else {
$.tikiModal(tr("Saving..."));
$.post('tiki-edit_draw.php', {
galleryId: o.galleryId,
fileId: o.fileId,
imgParams: o.imgParams,
name: o.name,
data: o.data
}, function(fileId) {
fileId = (fileId ? fileId : o.fileId);
o.fileId = fileId;
me.data('fileId', o.fileId);
me.data('galleryId', o.galleryId);
me.data('imgParams', o.imgParams);
me.data('name', o.name);
$.tikiModal(tr("Saved file id") + o.fileId + '!');
if ($.wikiTrackingDraw) {
$.wikiTrackingDraw.params.id = o.fileId;
$.tikiModal(tr("Updating Wiki Page"));
$.post('tiki-wikiplugin_edit.php', $.wikiTrackingDraw, function() {
me.trigger('savedDraw', o);
$.tikiModal();
});
} else {
me.trigger('savedDraw', o);
$.tikiModal();
}
});
}
return this;
};
$.fn.saveDraw = function() {
var me = $(this);
me.data('canvas').getSvgString()(function(data, error) {
me.replaceDraw({
data: data,
error: error,
fileId: me.data('fileId'),
galleryId: me.data('galleryId'),
imgParams: me.data('imgParams'),
name: me.data('name')
})
});
try {
me.data('window').svgCanvas.undoMgr.resetUndoStack();
} catch(e) {}
return this;
};
$.fn.saveAndBackDraw = function() {
$(this)
.saveDraw()
.one('savedDraw', function() {
window.history.back();
});
};
$.fn.renameDraw = function() {
var me = $(this);
var name = me.data('name');
var newName = prompt(tr("Enter new name"), name);
if (newName) {
if (newName != name) {
name = newName;
me.data('name', name);
me.trigger('renamedDraw', name);
me.saveDraw();
}
}
return this;
};
$.drawInstance = 0;
$.fn.loadDraw = function(o) {
var me = $(this);
//prevent from happeneing over and over again
if (me.data('drawLoaded')) return me;
me.data('drawLoaded', true);
var options = [
'canvas_expansion=2'
];
if ($.lang) {
options.push('lang=' + $.lang);
}
var drawFrame = $('<iframe src="vendor_bundled/vendor/svg-edit/svg-edit/svg-editor.html?' + options.join('&') + '" id="svgedit"></iframe>')
.appendTo(me)
.load(function() {
me
.data('drawInstance', $.drawInstance)
.data('fileId', (o.fileId ? o.fileId : 0))
.data('galleryId', (o.galleryId ? o.galleryId : 0))
.data('imgParams', (o.imgParams ? o.imgParams : {}))
.data('name', (o.name ? o.name : ''))
.data('doc', $(drawFrame[0].contentDocument ? drawFrame[0].contentDocument : drawFrame[0].contentWindow.document))
.data('canvas', new embedded_svg_edit(drawFrame[0]))
.data('window', drawFrame[0].contentWindow);
// Hide un-needed buttons
var doc = me.data('doc');
doc.find('body').append(
'<style>' +
'#tool_clear,#tool_open,#tool_save,#tool_imagelib {' +
'display: none;' +
'}' +
'#sidepanel_handle {' +
'top: 0% ! important;' +
'width: auto ! important;' +
'}' +
'</style>'
);
o.data = $.trim(o.data);
if (o.data && o.fileId) {
me.data('canvas').setSvgString(o.data);
}
me.data('window').onbeforeunload = function() {};
window.onbeforeunload = function() {
try {
if ( me.data('window') && me.data('window').svgCanvas.undoMgr.getUndoStackSize() > 1 ) {
return tr("There are unsaved changes, leave page?");
}
} catch (e) {}
};
drawFrame.height($(window).height() * 0.9);
$.drawInstance++;
me.trigger('loadedDraw');
$.getJSON('tiki-ajax_services.php', {
controller: 'draw',
action: 'removeButtons'
}, function(data) {
if (data.removeButtons) {
if (!$.isArray(data.removeButtons)) data.removeButtons = data.removeButtons.split(',');
for(var id in data.removeButtons) {
me.data('doc').find('#' + $.trim(data.removeButtons[id])).wrap('<div style="display:none;"/>');
}
}
});
});
return me;
};