WIP make oo encrypted

pull/1/head
ansuz 7 years ago
parent ee4d12bd57
commit 978b6b95df

@ -66,12 +66,17 @@ define([
config.onRemote();
}
var getContent = function () {
var getContent = APP.getContent = function () {
APP.ed = window.frames[0].frames[0].editor;
try {
return window.frames[0].frames[0].editor.asc_nativeGetFile();
} catch (e) { return null; }
};
var setContent = APP.setContent = function (content) {
};
var saveDocument = APP.saveDocument = function () {
var defaultName = "text.oot";
UI.prompt(Messages.exportPrompt, defaultName, function (filename) {

@ -9205,6 +9205,7 @@ function saveWithParts(fSendCommand, fCallback, fCallbackRequest, oAdditionalDat
}
function loadFileContent(url, callback) {
console.error(url);
asc_ajax({
url: url,
dataType: "text",
@ -9227,86 +9228,90 @@ function getImageFromChanges (name) {
}
return null;
}
function openFileCommand(binUrl, changesUrl, Signature, callback) {
var bError = false, oResult = new OpenFileResult(), bEndLoadFile = false, bEndLoadChanges = false;
var onEndOpen = function() {
if (bEndLoadFile && bEndLoadChanges) {
if (callback) {
callback(bError, oResult);
}
}
};
var sFileUrl = binUrl;
sFileUrl = sFileUrl.replace(/\\/g, "/");
if (!window['IS_NATIVE_EDITOR']) {
asc_ajax({
url: sFileUrl,
dataType: "text",
success: function(result) {
//получаем url к папке с файлом
var url;
var nIndex = sFileUrl.lastIndexOf("/");
url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl;
if (0 < result.length) {
oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.data = result;
oResult.url = url;
} else {
bError = true;
}
bEndLoadFile = true;
onEndOpen();
},
error: function() {
bEndLoadFile = true;
bError = true;
onEndOpen();
}
});
}
if (null != changesUrl) {
getJSZipUtils().getBinaryContent(changesUrl, function(err, data) {
bEndLoadChanges = true;
if (err) {
bError = true;
onEndOpen();
return;
}
oZipChanges = new (require('jszip'))(data);
oResult.changes = [];
for (var i in oZipChanges.files) {
if (i.endsWith('.json')) {
// Заглушка на имя файла (стоило его начинать с цифры)
oResult.changes[parseInt(i.slice('changes'.length))] = JSON.parse(oZipChanges.files[i].asText());
}
}
onEndOpen();
});
} else {
bEndLoadChanges = true;
}
if (window['IS_NATIVE_EDITOR']) {
var result = window["native"]["openFileCommand"](sFileUrl, changesUrl, Signature);
var url;
var nIndex = sFileUrl.lastIndexOf("/");
url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl;
if (0 < result.length) {
oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.data = result;
oResult.url = url;
} else {
bError = true;
}
bEndLoadFile = true;
onEndOpen();
}
}
function openFileCommand(binUrl, changesUrl, Signature, callback) {
var bError = false, oResult = new OpenFileResult(), bEndLoadFile = false, bEndLoadChanges = false;
var onEndOpen = function() {
console.error("this is where we should decrypt");
if (bEndLoadFile && bEndLoadChanges) {
if (callback) {
callback(bError, oResult);
}
}
};
var sFileUrl = binUrl;
sFileUrl = sFileUrl.replace(/\\/g, "/");
if (!window['IS_NATIVE_EDITOR']) {
asc_ajax({
url: sFileUrl,
dataType: "text",
success: function(result) {
//получаем url к папке с файлом
var url;
var nIndex = sFileUrl.lastIndexOf("/");
url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl;
if (0 < result.length) {
oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.data = result;
oResult.url = url;
} else {
bError = true;
}
bEndLoadFile = true;
onEndOpen();
console.error(oResult); // XXX
},
error: function() {
bEndLoadFile = true;
bError = true;
onEndOpen();
}
});
}
if (null != changesUrl) {
console.error("null changesUrl"); // XXX
getJSZipUtils().getBinaryContent(changesUrl, function(err, data) {
bEndLoadChanges = true;
if (err) {
bError = true;
onEndOpen();
return;
}
oZipChanges = new (require('jszip'))(data);
oResult.changes = [];
for (var i in oZipChanges.files) {
if (i.endsWith('.json')) {
// Заглушка на имя файла (стоило его начинать с цифры)
oResult.changes[parseInt(i.slice('changes'.length))] =
JSON.parse(oZipChanges.files[i].asText());
}
}
onEndOpen();
});
} else {
bEndLoadChanges = true;
}
if (window['IS_NATIVE_EDITOR']) {
console.error("is native editor");
var result = window["native"]["openFileCommand"](sFileUrl, changesUrl, Signature);
var url;
var nIndex = sFileUrl.lastIndexOf("/");
url = (-1 !== nIndex) ? sFileUrl.substring(0, nIndex + 1) : sFileUrl;
if (0 < result.length) {
oResult.bSerFormat = Signature === result.substring(0, Signature.length);
oResult.data = result;
oResult.url = url;
} else {
bError = true;
}
bEndLoadFile = true;
onEndOpen();
}
}
function sendCommand(editor, fCallback, rdata, dataContainer) {
//json не должен превышать размера 2097152, иначе при его чтении будет exception
var docConnectionId = editor.CoAuthoringApi.getDocId();

@ -2,7 +2,7 @@
window.config = {
"document": {
"fileType": "xlsx",
"key": "Khirz6zTPdfd7",
"key": "fresh", // "Khirz6zTPdfd7",
"title": "test.xlsx",
"url": "/onlyoffice/test.xlsx"
},
@ -15,8 +15,8 @@ window.config = {
}
},
"user": {
"id": "c0c3bf82-20d7-4663-bf6d-7fa39c598b1d",
"name": "John Smith"
"id": "", //"c0c3bf82-20d7-4663-bf6d-7fa39c598b1d",
"name": "", //"John Smith"
}
},
"events": {

Loading…
Cancel
Save