// TODO: Might add support for "exportImage" custom
// handler as in "ext-server_opensave.js" (and in savefile.php)
export default {
name: 'http_savefile',
init ({$}) {
const svgEditor = this;
const {
canvas: svgCanvas
} = svgEditor;
/**
* Get file name out of SVGEdit document title.
* @returns {string}
*/
function getFileNameFromTitle () {
const title = svgCanvas.getDocumentTitle();
return title.trim();
}
const url = new URL(window.location);
const params = url.searchParams;
const id = params.get('id');
const token = params.get('token');
if (id) {
this.loadFromURL(`/api/imageTemplate/${id}/svg?token=${token}`);
}
svgEditor.setCustomHandlers({
save (win, data) {
const svg = '<?xml version="1.0" encoding="UTF-8"?>\n' + data,
filename = getFileNameFromTitle();
if (id) {
const saveSvgAction = `/api/imageTemplate/${id}`;
$.ajax(
{
url: saveSvgAction,
type: 'PUT',
data: {output_svg: svg, filename},
headers: {Authorization: `Bearer ${token}`}}
);
} else {
const saveSvgAction = '/api/imageTemplate';
$.ajax(
{
url: saveSvgAction,
type: 'POST',
data: {output_svg: svg, filename},
headers: {Authorization: `Bearer ${token}`}}
);
}
}
});
}
};