Added support for exporting images

This commit is contained in:
Ludovic Dubost 2020-01-02 22:52:49 +01:00
parent d9fb248504
commit 9b2e4816c8

View file

@ -49,7 +49,7 @@ define([
var APP = window.APP = {
$: $
};
var mediasContent = {};
var CHECKPOINT_INTERVAL = 50;
var DISPLAY_RESTORE_BUTTON = false;
@ -737,6 +737,12 @@ define([
var url = URL.createObjectURL(res.content);
var hiddendata = "#src=" + encodeURIComponent(data.src) + ",key=" + encodeURIComponent(data.key) + ",name=" + encodeURIComponent(data.name);
var name = data.name + hiddendata;
// store media content for potential export
var reader = new FileReader();
reader.onloadend = (event) => {
mediasContent[name] = reader.result;
}
reader.readAsArrayBuffer(res.content);
console.log("CRYPTPAD success add " + name);
APP.AddImageSuccessCallback({
name: name,
@ -771,6 +777,12 @@ define([
FileCrypto.decrypt(u8, Nacl.util.decodeBase64(data.key), function (err, res) {
if (err || !res.content) { return APP.AddImageErrorCallback(err); }
var url = URL.createObjectURL(res.content) + "#" + hiddendata;
// store media content for potential export
var reader = new FileReader();
reader.onloadend = (event) => {
mediasContent[data.name + "#" + hiddendata] = reader.result;
}
reader.readAsArrayBuffer(res.content);
window.frames[0].AscCommon.g_oDocumentUrls.addImageUrl(data.name + "#" + hiddendata, url);
callback(url);
});
@ -799,6 +811,7 @@ define([
console.log("x2t mount");
// x2t.FS.mount(x2t.MEMFS, {} , '/');
x2t.FS.mkdir('/working');
x2t.FS.mkdir('/working/media');
console.log("x2t mount done");
}
@ -813,6 +826,22 @@ define([
console.log("Converting Data for " + fileName + " to " + outputFormat);
// writing file to mounted working disk (in memory)
x2t.FS.writeFile('/working/' + fileName, data);
// Adding images
for (var mediaFileName in window.frames[0].AscCommon.g_oDocumentUrls.urls) {
var mediaFileName = mediaFileName.substring(6);
if (mediasContent[mediaFileName]) {
console.log("Writing media data " + mediaFileName);
console.log("Data");
var fileData = mediasContent[mediaFileName];
console.log(fileData);
x2t.FS.writeFile('/working/media/' + mediaFileName, new Uint8Array(fileData));
x2t.FS.writeFile('/working/media/myimage.png', new Uint8Array(fileData));
} else {
console.log("Could not find media content for " + mediaFileName);
}
}
var params = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<TaskQueueDataConvert xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"
+ "<m_sFileFrom>/working/" + fileName + "</m_sFileFrom>"
@ -858,10 +887,17 @@ define([
var exportXLSXFile = function() {
var text = getContent();
var suggestion = Title.suggestTitle(Title.defaultTitle);
var ext="xlsx";
var type = common.getMetadataMgr().getPrivateData().ooType;
if (type==="ooslide")
ext = "pptx";
else if (type==="oodoc")
ext = "docx";
UI.prompt(Messages.exportPrompt,
Util.fixFileName(suggestion) + '.xlsx', function (filename) {
Util.fixFileName(suggestion) + '.' + ext, function (filename) {
if (!(typeof(filename) === 'string' && filename)) { return; }
x2tSaveAndConvertData(text, "filename.bin", "xlsx", filename);
x2tSaveAndConvertData(text, "filename.bin", ext, filename);
});
};