Commit c5b52c29 authored by Boris Kocherov's avatar Boris Kocherov

gadget mode changes

parent c95c52d8
......@@ -53,92 +53,67 @@ var c_oAscError = Asc.c_oAscError;
{
this.asc_registerCallback('asc_onDocumentContentReady', function(){
DesktopOfflineUpdateLocalName(window["Asc"]["editor"]);
setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
});
window["AscDesktopEditor"]["LocalStartOpen"]();
return this.jio_open();
};
asc['spreadsheet_api'].prototype._OfflineAppDocumentEndLoad = function(_data, _len)
asc['spreadsheet_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _data)
{
AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
//AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if (_data == "")
{
this.sendEvent("asc_onError", c_oAscError.ID.ConvertationOpenError, c_oAscError.Level.Critical);
this.sendEvent("asc_onError", c_oAscError.ID.ConvertationError, c_oAscError.Level.Critical);
return;
}
var _binary = getBinaryArray(_data, _len);
this.openDocument(_binary);
this.openDocument(_data);
AscCommon.History.UserSaveMode = true;
DesktopOfflineUpdateLocalName(this);
window["DesktopAfterOpen"](this);
this.onUpdateDocumentModified(AscCommon.History.Have_Changes());
this.onUpdateDocumentModified(AscCommon.History.Is_Modified());
};
asc['spreadsheet_api'].prototype._onNeedParams = function(data, opt_isPassword)
asc['spreadsheet_api'].prototype._onNeedParams = function(data)
{
var options;
if(opt_isPassword){
options = new AscCommon.asc_CAdvancedOptions(Asc.c_oAscAdvancedOptionsID.DRM);
} else {
var cp = JSON.parse("{\"codepage\":46,\"delimiter\":1}");
cp['encodings'] = AscCommon.getEncodingParams();
options = new AscCommon.asc_CAdvancedOptions(Asc.c_oAscAdvancedOptionsID.CSV, cp);
}
this.handlers.trigger("asc_onAdvancedOptions", options, AscCommon.c_oAscAdvancedOptionsAction.Open);
this.handlers.trigger("asc_onAdvancedOptions", new AscCommon.asc_CAdvancedOptions(Asc.c_oAscAdvancedOptionsID.CSV, cp), AscCommon.c_oAscAdvancedOptionsAction.Open);
};
asc['spreadsheet_api'].prototype.asc_addImageDrawingObject = function(url)
{
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
var ws = this.wb.getWorksheet();
if (ws)
{
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
ws.objectRender.addImageDrawingObject([AscCommon.g_oDocumentUrls.getImageUrl(_url)], null);
}
};
// asc['spreadsheet_api'].prototype.asc_addImageDrawingObject = function(url)
// {
// var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
//
// var ws = this.wb.getWorksheet();
// if (ws)
// {
// var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
// ws.objectRender.addImageDrawingObject([AscCommon.g_oDocumentUrls.getImageUrl(_url)], null);
// }
// };
asc['spreadsheet_api'].prototype.asc_showImageFileDialog = function()
{
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
};
asc['spreadsheet_api'].prototype.asc_addImage = function()
{
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
};
// asc['spreadsheet_api'].prototype.asc_addImage = function()
// {
// window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
// };
})(jQuery, window);
window["Asc"]['spreadsheet_api'].prototype.asc_setAdvancedOptions = function(idOption, option)
{
if (window["Asc"].c_oAscAdvancedOptionsID.CSV === idOption) {
var delimiter = option.asc_getDelimiter();
var delimiterChar = option.asc_getDelimiterChar();
var _param = "";
_param += ("<m_nCsvTxtEncoding>" + option.asc_getCodePage() + "</m_nCsvTxtEncoding>");
if (null != delimiter) {
_param += ("<m_nCsvDelimiter>" + delimiter + "</m_nCsvDelimiter>");
}
if (null != delimiterChar) {
_param += ("<m_nCsvDelimiterChar>" + delimiterChar + "</m_nCsvDelimiterChar>");
}
window["AscDesktopEditor"]["SetAdvancedOptions"](_param);
}
else if (window["Asc"].c_oAscAdvancedOptionsID.DRM === idOption) {
var _param = "";
_param += ("<m_sPassword>" + AscCommon.CopyPasteCorrectString(option.asc_getPassword()) + "</m_sPassword>");
window["AscDesktopEditor"]["SetAdvancedOptions"](_param);
}
window["AscDesktopEditor"]["SetAdvancedOptions"]("" + option.asc_getCodePage(), "" + option.asc_getDelimiter());
};
window["Asc"]['spreadsheet_api'].prototype["asc_setAdvancedOptions"] = window["Asc"]['spreadsheet_api'].prototype.asc_setAdvancedOptions;
window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
window["asc_initAdvancedOptions"] = function()
{
window["Asc"]["editor"]._onNeedParams(undefined);
};
window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data)
{
AscCommon.g_oDocumentUrls.documentUrl = _url;
if (AscCommon.g_oDocumentUrls.documentUrl.indexOf("file:") != 0)
......@@ -148,7 +123,7 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
AscCommon.g_oDocumentUrls.documentUrl = "file://" + AscCommon.g_oDocumentUrls.documentUrl;
}
window["Asc"]["editor"]._OfflineAppDocumentEndLoad(_data, _len);
window["Asc"]["editor"]._OfflineAppDocumentEndLoad(_data);
};
/////////////////////////////////////////////////////////
......@@ -156,9 +131,9 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
/////////////////////////////////////////////////////////
AscCommon.CHistory.prototype.Reset_SavedIndex = function(IsUserSave)
{
this.SavedIndex = (null === this.SavedIndex && -1 === this.Index ? null : this.Index);
if (true === this.Is_UserSaveMode())
{
this.SavedIndex = this.Index;
if (true === IsUserSave)
{
this.UserSavedIndex = this.Index;
......@@ -167,11 +142,12 @@ AscCommon.CHistory.prototype.Reset_SavedIndex = function(IsUserSave)
}
else
{
this.SavedIndex = this.Index;
this.ForceSave = false;
}
};
AscCommon.CHistory.prototype.Have_Changes = function(IsNotUserSave, IsNoSavedNoModifyed)
AscCommon.CHistory.prototype.Is_Modified = function(IsNotUserSave, IsNoSavedNoModifyed)
{
var checkIndex = (this.Is_UserSaveMode() && !IsNotUserSave) ? this.UserSavedIndex : this.SavedIndex;
if (-1 === this.Index && null === checkIndex && false === this.ForceSave)
......@@ -199,46 +175,7 @@ window["DesktopOfflineAppDocumentApplyChanges"] = function(_changes)
/////////////////////////////////////////////////////////
//////////////// SAVE //////////////////////
/////////////////////////////////////////////////////////
window["Asc"]['spreadsheet_api'].prototype.onUpdateDocumentModified = function(bIsModified)
{
// Обновляем только после окончания сохранения
if (this.canSave) {
this.handlers.trigger("asc_onDocumentModifiedChanged", bIsModified);
this._onUpdateDocumentCanSave();
if (undefined !== window["AscDesktopEditor"]) {
window["AscDesktopEditor"]["onDocumentModifiedChanged"](AscCommon.History ? AscCommon.History.Have_Changes(undefined, true) : bValue);
}
}
};
window["Asc"]['spreadsheet_api'].prototype.asc_Save = function (isNoUserSave, isSaveAs)
{
if (this.isChartEditor || AscCommon.c_oAscAdvancedOptionsAction.None !== this.advancedOptionsAction)
return;
var t = this;
if (true !== isNoUserSave)
this.IsUserSave = true;
if (this.IsUserSave)
{
this.LastUserSavedIndex = AscCommon.History.UserSavedIndex;
}
if (true === this.canSave && !this.isLongAction())
{
var _isNaturalSave = this.IsUserSave;
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(function(e){t.onSaveCallback(e);});
if (this.CoAuthoringApi.onUnSaveLock)
this.CoAuthoringApi.onUnSaveLock();
if (_isNaturalSave === true)
window["DesktopOfflineAppDocumentStartSave"](isSaveAs);
}
};
window["Asc"]['spreadsheet_api'].prototype.asc_DownloadAs = function(typeFile, bIsDownloadEvent)
{
this.asc_Save(false, true);
......@@ -249,15 +186,8 @@ window["Asc"]['spreadsheet_api'].prototype.asc_isOffline = function()
return true;
};
window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isForce)
window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs)
{
window.doadssIsSaveAs = isSaveAs;
if (true !== isForce && window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init({ "type" : "generatePassword" });
return;
}
window["Asc"]["editor"].sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save);
var _param = "";
......@@ -266,9 +196,9 @@ window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isFo
if (AscCommon.AscBrowser.isRetina)
_param += "retina=true;";
window["AscDesktopEditor"]["LocalFileSave"](_param, password);
window["AscDesktopEditor"]["LocalFileSave"](_param);
};
window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
window["DesktopOfflineAppDocumentEndSave"] = function(error)
{
window["Asc"]["editor"].sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save);
if (0 == error)
......@@ -276,29 +206,11 @@ window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
else
AscCommon.History.UserSavedIndex = window["Asc"]["editor"].LastUserSavedIndex;
window["Asc"]["editor"].onUpdateDocumentModified(AscCommon.History.Have_Changes());
window["Asc"]["editor"].onUpdateDocumentModified(AscCommon.History.Is_Modified());
window["Asc"]["editor"].LastUserSavedIndex = undefined;
if (2 == error)
window["Asc"]["editor"].sendEvent("asc_onError", c_oAscError.ID.ConvertationSaveError, c_oAscError.Level.NoCritical);
if (0 == error)
{
if (window.SaveQuestionObjectBeforeSign)
{
var _obj = window.SaveQuestionObjectBeforeSign;
editor.sendEvent("asc_onSignatureClick", _obj.guid, _obj.width, _obj.height);
window.SaveQuestionObjectBeforeSign = null;
}
}
if (hash !== null && hash !== undefined && hash != "")
{
if (window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}", {"type": "setPasswordByFile", "hash": hash, "password": password});
}
}
window["Asc"]["editor"].sendEvent("asc_onError", c_oAscError.ID.ConvertationError, c_oAscError.Level.NoCritical);
};
window["Asc"]['spreadsheet_api'].prototype["asc_addImageDrawingObject"] = window["Asc"]['spreadsheet_api'].prototype.asc_addImageDrawingObject;
......@@ -317,7 +229,7 @@ window["DesktopOfflineAppDocumentAddImageEnd"] = function(url)
if (ws)
{
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
ws.objectRender.addImageDrawingObject([AscCommon.g_oDocumentUrls.getImageUrl(_url)] , null);
ws.objectRender.addImageDrawingObject(AscCommon.g_oDocumentUrls.getImageUrl(_url) , null);
}
};
......
......@@ -1625,6 +1625,7 @@ var editor;
// Обновляем состояние возможности сохранения документа
t.onUpdateDocumentModified(History.Have_Changes());
t.jio_save();
if (undefined !== window["AscDesktopEditor"]) {
window["AscDesktopEditor"]["OnSave"]();
}
......
......@@ -424,9 +424,9 @@ function CFontFileLoader(id)
g_fontNamesEncoder = new ZBase32Encoder();
//var _name = this.Id;
var _name = g_fontNamesEncoder.Encode(this.Id) + ".js";
var _name = g_fontNamesEncoder.Encode(this.Id) + ".ttf";
xhr.open('GET', basePath + "odttf/" + _name, true); // TODO:
xhr.open('GET', basePath + "ttf/" + _name, true); // TODO:
if (typeof ArrayBuffer !== 'undefined' && !window.opera)
xhr.responseType = 'arraybuffer';
......@@ -482,14 +482,6 @@ function CFontFileLoader(id)
oThis.SetStreamIndex(__font_data_idx);
}
// decode
var guidOdttf = [0xA0, 0x66, 0xD6, 0x20, 0x14, 0x96, 0x47, 0xfa, 0x95, 0x69, 0xB8, 0x50, 0xB0, 0x41, 0x49, 0x48];
var _stream = g_fonts_streams[g_fonts_streams.length - 1];
var _data = _stream.data;
var _count_decode = Math.min(32, _stream.size);
for (var i = 0; i < _count_decode; ++i)
_data[i] ^= guidOdttf[i % 16];
};
xhr.send(null);
......
......@@ -51,7 +51,7 @@
this.fonts_streams = [];
// теперь вся информация о всех возможных шрифтах. Они во всех редакторах должны быть одни и те же
this.fontFilesPath = "../../../../fonts/";
this.fontFilesPath = "onlyoffice/fonts/";
this.fontFiles = AscFonts.g_font_files;
this.fontInfos = AscFonts.g_font_infos;
this.map_font_index = AscFonts.g_map_font_index;
......
......@@ -32,65 +32,65 @@
"use strict";
/////////////////////////////////////////////////////////
////////////// FONTS ////////////////////////
/////////////////////////////////////////////////////////
AscFonts.CFontFileLoader.prototype.LoadFontAsync = function(basePath, _callback, isEmbed)
{
this.callback = _callback;
if (-1 != this.Status)
return true;
var oThis = this;
this.Status = 2;
if (window["AscDesktopEditor"] !== undefined && !this.CanUseOriginalFormat)
{
this.callback = null;
window["AscDesktopEditor"]["LoadFontBase64"](this.Id);
this._callback_font_load();
return;
}
var xhr = new XMLHttpRequest();
xhr.open('GET', "ascdesktop://fonts/" + this.Id, true);
xhr.responseType = 'arraybuffer';
if (xhr.overrideMimeType)
xhr.overrideMimeType('text/plain; charset=x-user-defined');
else
xhr.setRequestHeader('Accept-Charset', 'x-user-defined');
xhr.onload = function()
{
if (this.status != 200)
{
oThis.Status = 1;
return;
}
oThis.Status = 0;
var fontStreams = AscFonts.g_fonts_streams;
if (this.response)
{
var __font_data_idx = fontStreams.length;
var _uintData = new Uint8Array(this.response);
fontStreams[__font_data_idx] = new AscFonts.FT_Stream(_uintData, _uintData.length);
oThis.SetStreamIndex(__font_data_idx);
}
else
{
var __font_data_idx = fontStreams.length;
fontStreams[__font_data_idx] = AscFonts.CreateFontData3(this.responseText);
oThis.SetStreamIndex(__font_data_idx);
if (null != oThis.callback)
oThis.callback();
}
};
xhr.send(null);
};
///////////////////////////////////////////////////////
//////////// FONTS ////////////////////////
///////////////////////////////////////////////////////
//AscFonts.CFontFileLoader.prototype.LoadFontAsync = function(basePath, _callback, isEmbed)
//{
// this.callback = _callback;
// if (-1 != this.Status)
// return true;
//
// var oThis = this;
// this.Status = 2;
// if (window["AscDesktopEditor"] !== undefined && !this.CanUseOriginalFormat)
// {
// this.callback = null;
// window["AscDesktopEditor"]["LoadFontBase64"](this.Id);
// this._callback_font_load();
// return;
// }
//
// var xhr = new XMLHttpRequest();
// xhr.open('GET', "ascdesktop://fonts/" + this.Id, true);
// xhr.responseType = 'arraybuffer';
//
// if (xhr.overrideMimeType)
// xhr.overrideMimeType('text/plain; charset=x-user-defined');
// else
// xhr.setRequestHeader('Accept-Charset', 'x-user-defined');
//
// xhr.onload = function()
// {
// if (this.status != 200)
// {
// oThis.Status = 1;
// return;
// }
//
// oThis.Status = 0;
//
// var fontStreams = AscFonts.g_fonts_streams;
// if (this.response)
// {
// var __font_data_idx = fontStreams.length;
// var _uintData = new Uint8Array(this.response);
// fontStreams[__font_data_idx] = new AscFonts.FT_Stream(_uintData, _uintData.length);
// oThis.SetStreamIndex(__font_data_idx);
// }
// else
// {
// var __font_data_idx = fontStreams.length;
// fontStreams[__font_data_idx] = AscFonts.CreateFontData3(this.responseText);
// oThis.SetStreamIndex(__font_data_idx);
//
// if (null != oThis.callback)
// oThis.callback();
// }
// };
//
// xhr.send(null);
//};
/////////////////////////////////////////////////////////
////////////// IMAGES ////////////////////////
......@@ -167,23 +167,23 @@ AscCommon.sendImgUrls = function(api, images, callback)
/////////////////////////////////////////////////////////
function DesktopOfflineUpdateLocalName(_api)
{
var _name = window["AscDesktopEditor"]["LocalFileGetSourcePath"]();
var _ind1 = _name.lastIndexOf("\\");
var _ind2 = _name.lastIndexOf("/");
if (_ind1 == -1)
_ind1 = 1000000;
if (_ind2 == -1)
_ind2 = 1000000;
var _ind = Math.min(_ind1, _ind2);
if (_ind != 1000000)
_name = _name.substring(_ind + 1);
_api.documentTitle = _name;
_api.sendEvent("asc_onDocumentName", _name);
window["AscDesktopEditor"]["SetDocumentName"](_name);
//var _name = window["AscDesktopEditor"]["LocalFileGetSourcePath"]();
//
//var _ind1 = _name.lastIndexOf("\\");
//var _ind2 = _name.lastIndexOf("/");
//
//if (_ind1 == -1)
// _ind1 = 1000000;
//if (_ind2 == -1)
// _ind2 = 1000000;
//
//var _ind = Math.min(_ind1, _ind2);
//if (_ind != 1000000)
// _name = _name.substring(_ind + 1);
//
//_api.documentTitle = _name;
//_api.sendEvent("asc_onDocumentName", _name);
//window["AscDesktopEditor"]["SetDocumentName"](_name);
}
AscCommon.CDocsCoApi.prototype.askSaveChanges = function(callback)
......@@ -192,343 +192,134 @@ AscCommon.CDocsCoApi.prototype.askSaveChanges = function(callback)
};
AscCommon.CDocsCoApi.prototype.saveChanges = function(arrayChanges, deleteIndex, excelAdditionalInfo)
{
window["AscDesktopEditor"]["LocalFileSaveChanges"](arrayChanges.join("\",\""), deleteIndex, arrayChanges.length);
//this.onUnSaveLock();
};
window["NativeCorrectImageUrlOnCopy"] = function(url)
{
AscCommon.g_oDocumentUrls.getImageUrl(url);
};
window["NativeCorrectImageUrlOnPaste"] = function(url)
{
return window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
};
window["UpdateInstallPlugins"] = function()
{
var _plugins = JSON.parse(window["AscDesktopEditor"]["GetInstallPlugins"]());
_plugins["url"] = _plugins["url"].replace(" ", "%20");
for (var i = 0; i < _plugins["pluginsData"].length; i++)
{
var _plugin = _plugins["pluginsData"][i];
_plugin["baseUrl"] = _plugins["url"] + _plugin["guid"].substring(4) + "/";
var isSystem = false;
for (var j = 0; j < _plugin["variations"].length; j++)
{
var _variation = _plugin["variations"][j];
if (_variation["initDataType"] == "desktop")
{
isSystem = true;
break;
}
}
if (isSystem)
{
_plugins["pluginsData"].splice(i, 1);
--i;
}
}
var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
_editor.sendEvent("asc_onPluginsInit", _plugins);
};
window["UpdateSystemPlugins"] = function()
{
var _plugins = JSON.parse(window["AscDesktopEditor"]["GetInstallPlugins"]());
_plugins["url"] = _plugins["url"].replace(" ", "%20");
var _len = _plugins["pluginsData"].length;
for (var i = 0; i < _len; i++)
_plugins["pluginsData"][i]["baseUrl"] = _plugins["url"] + _plugins["pluginsData"][i]["guid"].substring(4) + "/";
var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
var _array = [];
for (var i = 0; i < _len; i++)
{
var _plugin = _plugins["pluginsData"][i];
for (var j = 0; j < _plugin["variations"].length; j++)
{
var _variation = _plugin["variations"][j];
if (_variation["initDataType"] == "desktop")
{
_array.push(_plugin);
break;
}
}
}
var _arraySystem = [];
for (var i = 0; i < _array.length; i++)
{
var plugin = new Asc.CPlugin();
plugin["deserialize"](_array[i]);
_arraySystem.push(plugin);
}
window.g_asc_plugins.registerSystem("", _arraySystem);
window.g_asc_plugins.runAllSystem();
};
AscCommon.InitDragAndDrop = function(oHtmlElement, callback) {
if ("undefined" != typeof(FileReader) && null != oHtmlElement) {
oHtmlElement["ondragover"] = function (e) {
e.preventDefault();
e.dataTransfer.dropEffect = AscCommon.CanDropFiles(e) ? 'copy' : 'none';
return false;
};
oHtmlElement["ondrop"] = function (e) {
e.preventDefault();
var _files = window["AscDesktopEditor"]["GetDropFiles"]();
for (var i = 0; i < _files.length; i++)
{
if (window["AscDesktopEditor"]["IsImageFile"](_files[i]))
{
window["DesktopOfflineAppDocumentAddImageEnd"](_files[i]);
break;
}
}
};
}
}
window["asc_initAdvancedOptions"] = function(_code, _file_hash)
{
var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
if ((_code == 90 || _code == 91) && window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}", { "type" : "getPasswordByFile", "hash" : _file_hash });
return;
}
_editor._onNeedParams(undefined, (_code == 90 || _code == 91) ? true : undefined);
//window["AscDesktopEditor"]["LocalFileSaveChanges"](arrayChanges.join("\",\""), deleteIndex, arrayChanges.length);
this.onUnSaveLock();
};
window["DesktopOfflineAppDocumentSignatures"] = function(_json)
{
var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
_editor.signatures = [];
var _signatures = null;
try
{
_signatures = JSON.parse(_json);
}
catch (err)
{
return;
}
if (!_signatures)
return;
var _count = _signatures["count"];
var _data = _signatures["data"];
var _sign;
var _add_sign;
//window["NativeCorrectImageUrlOnCopy"] = function(url)
//{
// AscCommon.g_oDocumentUrls.getImageUrl(url);
//};
//window["NativeCorrectImageUrlOnPaste"] = function(url)
//{
// return window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
//};
//window["UpdateInstallPlugins"] = function()
//{
// var _plugins = JSON.parse(window["AscDesktopEditor"]["GetInstallPlugins"]());
// var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
// _editor.asc_fireCallback("asc_onPluginsInit", _plugins);
//};
//AscCommon.InitDragAndDrop = function(oHtmlElement, callback) {
// if ("undefined" != typeof(FileReader) && null != oHtmlElement) {
// oHtmlElement["ondragover"] = function (e) {
// e.preventDefault();
// e.dataTransfer.dropEffect = AscCommon.CanDropFiles(e) ? 'copy' : 'none';
// return false;
// };
// oHtmlElement["ondrop"] = function (e) {
// e.preventDefault();
//
// var _files = window["AscDesktopEditor"]["GetDropFiles"]();
// for (var i = 0; i < _files.length; i++)
// {
// if (window["AscDesktopEditor"]["IsImageFile"](_files[i]))
// {
// window["DesktopOfflineAppDocumentAddImageEnd"](_files[i]);
// break;
// }
// }
// };
// }
//};
var _images_loading = [];
for (var i = 0; i < _count; i++)
{
_sign = _data[i];
_add_sign = new window["AscCommon"].asc_CSignatureLine();
_add_sign.guid = _sign["guid"];
_add_sign.valid = _sign["valid"];
_add_sign.image = (_add_sign.valid == 0) ? _sign["image_valid"] : _sign["image_invalid"];
_add_sign.image = "data:image/png;base64," + _add_sign.image;
_add_sign.signer1 = _sign["name"];
_add_sign.id = i;
_editor.signatures.push(_add_sign);
_images_loading.push(_add_sign.image);
}
if (!window.FirstSignaturesCall)
{
_editor.asc_registerCallback("asc_onAddSignature", function (guid)
{
// меняем среду
//AscBrowser.isSafari = false;
//AscBrowser.isSafariMacOs = false;
//window.USER_AGENT_SAFARI_MACOS = false;
var _api = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
_api.sendEvent("asc_onUpdateSignatures", _api.asc_getSignatures(), _api.asc_getRequestSignatures());
AscCommon.readBlobAsDataURL = function (blob) {
var fr = new FileReader();
return new RSVP.Promise(function (resolve, reject, notify) {
fr.addEventListener("load", function () {
resolve(fr.result);
});
_editor.asc_registerCallback("asc_onRemoveSignature", function (guid)
{
var _api = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
_api.sendEvent("asc_onUpdateSignatures", _api.asc_getSignatures(), _api.asc_getRequestSignatures());
fr.addEventListener("error", reject);
fr.addEventListener("progress", notify);
fr.readAsDataURL(blob);
}, function () {
fr.abort();
});
}
window.FirstSignaturesCall = true;
_editor.ImageLoader.LoadImagesWithCallback(_images_loading, function() {
if (this.WordControl)
this.WordControl.OnRePaintAttack();
}, null);
_editor.sendEvent("asc_onUpdateSignatures", _editor.asc_getSignatures(), _editor.asc_getRequestSignatures());
};
window["DesktopSaveQuestionReturn"] = function(isNeedSaved)
{
if (isNeedSaved)
{
var _editor = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
_editor.asc_Save(false);
}
};
window["OnNativeReturnCallback"] = function(name, obj)
{
var _api = window["Asc"]["editor"] ? window["Asc"]["editor"] : window.editor;
_api.sendEvent(name, obj);
};
window["OnNativeOpenFilenameDialog"] = function(file)
{
window.on_native_open_filename_dialog(file);
delete window.on_native_open_filename_dialog;
};
window["DesktopAfterOpen"] = function(_api)
{
_api.asc_registerCallback("asc_onSignatureDblClick", function (guid, width, height)
{
var _length = _api.signatures.length;
for (var i = 0; i < _length; i++)
{
if (_api.signatures[i].guid == guid)
{
window["AscDesktopEditor"]["ViewCertificate"](_api.signatures[i].id);
return;
}
}
if (!_api.isDocumentModify)
{
_api.sendEvent("asc_onSignatureClick", guid, width, height);
return;
AscCommon.downloadUrlAsBlob = function (url) {
var xhr = new XMLHttpRequest();
return new RSVP.Promise(function (resolve, reject) {
xhr.open("GET", url);
xhr.responseType = "blob";//force the HTTP response, response-type header to be blob
xhr.onload = function () {
if (this.status === 200) {
resolve(xhr.response);
} else {
reject(this.status);
}
window.SaveQuestionObjectBeforeSign = { guid : guid, width : width, height : height };
window["AscDesktopEditor"]["SaveQuestion"]();
};
xhr.onerror = reject;
xhr.send();
}, function () {
xhr.abort();
});
_api.sendEvent('asc_onSpellCheckInit', [
"1027",
"1029",
"1030",
"1031",
"1032",
"1033",
"1036",
"1038",
"1040",
"1042",
"1043",
"1044",
"1045",
"1046",
"1048",
"1049",
"1051",
"1053",
"1055",
"1058",
"1062",
"1063",
"1066",
"1068",
"2055",
"2057",
"2068",
"2070",
"3079",
"3081",
"3082"
]);
};
function getBinaryArray(_data, _len)
{
var _array = new Uint8Array(_len);
var _index = 0;
var _written = 0;
var _data_len = _data.length;
while (_index < _data_len)
{
var dwCurr = 0;
var i;
var nBits = 0;
for (i=0; i<4; i++)
{
if (_index >= _data_len)
AscCommon.baseEditorsApi.prototype.jio_open = function () {
var t = this,
g = Common.Gateway;
return g.jio_getAttachment('/', 'body.txt')
.push(undefined, function (error) {
if (error["status_code"] === 404) {
return g.props.value;
}
throw error;
})
.push(function (doc) {
if (!doc) {
switch (g.props.documentType) {
case "presentation":
doc = t.getEmpty();
break;
var nCh = DecodeBase64Char(_data.charCodeAt(_index++));
if (nCh == -1)
{
i--;
continue;
}
dwCurr <<= 6;
dwCurr |= nCh;
nBits += 6;
}
dwCurr <<= 24-nBits;
for (i=0; i<nBits/8; i++)
{
_array[_written++] = ((dwCurr & 0x00ff0000) >>> 16);
dwCurr <<= 8;
}
}
return _array;
}
// OnlyPass ----------------------------------
var _proto = Asc['asc_docs_api'] ? Asc['asc_docs_api'] : Asc['spreadsheet_api'];
_proto.prototype["pluginMethod_OnlyPass"] = function(obj)
{
switch (obj.type)
{
case "generatePassword":
{
window["DesktopOfflineAppDocumentStartSave"](window.doadssIsSaveAs, obj["password"], true);
case "spreadsheet":
doc = "XLSY;v2;2286;BAKAAgAAA+cHAAAEAwgAAADqCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGMFAAAAEQAAAAEMAAAABwEAAAAACAEAAAAABAoAAAAFAAAAAAUAAAAABnwAAAAHGgAAAAQGCgAAAEEAcgBpAGEAbAAGBQAAAAAAACRABxoAAAAEBgoAAABBAHIAaQBhAGwABgUAAAAAAAAkQAcaAAAABAYKAAAAQQByAGkAYQBsAAYFAAAAAAAAJEAHGgAAAAQGCgAAAEEAcgBpAGEAbAAGBQAAAAAAACRACB8AAAAJGgAAAAAGDgAAAEcARQBOAEUAUgBBAEwAAQSkAAAADhYDAAADPwAAAAABAQEBAQMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEpAAAAA0GGAAAAAABBAEEAAAAAAUBAAYEAAAAAAcBAAgBAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQBAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAEAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAgAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQCAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQAAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQAAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAAAAAAkEAAAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQAAAAACQQAAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAAAAAAJBAAAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAQAAAAkEKwAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQBAAAACQQpAAAAAyEAAAAAAQABAQADAQEGBAAAAAAHBAAAAAAIBAEAAAAJBCwAAAADIQAAAAABAAEBAAMBAQYEAAAAAAcEAAAAAAgEAQAAAAkEKgAAAAMhAAAAAAEAAQEAAwEBBgQAAAAABwQAAAAACAQBAAAACQQJAAAAAkoAAAADRQAAAAABAAEBAAMBAAYEAAAAAAcEAAAAAAgEAAAAAAkEpAAAAAwEAAAAAA0GGAAAAAABBAEEAAAAAAUBAAYEAAAAAAcBAAgBAA8qAQAAECkAAAAABAAAAAAAAAABAQAAAAAEDAAAAE4AbwByAG0AYQBsAAUEAAAAAAAAABAnAAAAAAQAAAADAAAAAQEAAAAABAoAAABDAG8AbQBtAGEABQQAAAAPAAAAEC8AAAAABAAAAAYAAAABAQAAAAAEEgAAAEMAbwBtAG0AYQAgAFsAMABdAAUEAAAAEAAAABAtAAAAAAQAAAAEAAAAAQEAAAAABBAAAABDAHUAcgByAGUAbgBjAHkABQQAAAARAAAAEDUAAAAABAAAAAcAAAABAQAAAAAEGAAAAEMAdQByAHIAZQBuAGMAeQAgAFsAMABdAAUEAAAAEgAAABArAAAAAAQAAAAFAAAAAQEAAAAABA4AAABQAGUAcgBjAGUAbgB0AAUEAAAAEwAAABgAAAAAAwAAAAEBAAELAAAAAgYAAAAABAAAAADjAAAAAN4AAAABGwAAAAAGDAAAAFMAaABlAGUAdAAxAAEEAQAAAAIBAgIkAAAAAx8AAAABAQACBAEEAAADBAEAAAAEBAAAAAAFBXnalahdiStABAQAAABBADEAFhEAAAAXDAAAAAQBAAAAAQYBAAAAAQsKAAAAAQWamZmZmZkpQA48AAAAAAVxPQrXowA0QAEFKFyPwvUIOkACBXE9CtejADRAAwUoXI/C9Qg6QAQFcT0K16MANEAFBXE9CtejADRADwYAAAAAAQEBAQkQBgAAAAABAQEBAAkAAAAAGAYAAAACAQAAAAAAAAAA";
break;
}
case "getPasswordByFile":
{
if ("" != obj["password"])
{
var _param = ("<m_sPassword>" + AscCommon.CopyPasteCorrectString(obj["password"]) + "</m_sPassword>");
window["AscDesktopEditor"]["SetAdvancedOptions"](_param);
}
else
{
this._onNeedParams(undefined, true);
}
case "text":
doc = window.g_sEmpty_bin;
break;
}
}
t._OfflineAppDocumentEndLoad('', doc);
})
.push(undefined, function (error) {
console.log(error);
});
};
// -------------------------------------------
// меняем среду
//AscBrowser.isSafari = false;
//AscBrowser.isSafariMacOs = false;
//window.USER_AGENT_SAFARI_MACOS = false;
\ No newline at end of file
AscCommon.baseEditorsApi.prototype.jio_save = function () {
var t = this,
g = Common.Gateway,
result = {},
data = t.asc_nativeGetFile();
if (g.props.save_defer) {
// if we are run from getContent
result[g.props.key] = data;
g.props.save_defer.resolve(result);
g.props.save_defer = null;
} else {
// TODO: rewrite to put_attachment
return g.jio_putAttachment('/', 'body.txt', data)
.push(undefined, function (error) {
console.log(error);
});
}
};
\ No newline at end of file
......@@ -2826,13 +2826,65 @@
function loadSdk(sdkName, callback)
{
var config_file;
function loadScriptPromise(src) {
return new RSVP.Promise(function (resolve, reject) {
var s;
s = document.createElement('script');
s.src = src;
s.onload = resolve;
s.onerror = reject;
document.head.appendChild(s);
});
}
if (window['AscNotLoadAllScript'])
{
callback();
}
else
{
loadScript('./../../../../sdkjs/' + sdkName + '/sdk-all.js', callback);
if (!Common.Gateway.props.binary_loader) {
switch (sdkName) {
case 'word':
config_file = "webword.json";
break;
case 'cell':
config_file = "webexcel.json";
break;
case 'slide':
config_file = "webpowerpoint.json";
break;
}
return new RSVP.Queue()
.push(function () {
return jIO.util.ajax({
type: "GET",
dataType: "json",
url: Common.Gateway.props.base_url +
"sdkjs/build/configs/" +
config_file
});
})
.push(function (response) {
var queue = new RSVP.Queue(),
sdk = response.target.response.compile.sdk,
list = sdk.common;
list = list.concat(sdk.private);
list.concat(sdk.desktop.common).forEach(function (url) {
url = url.replace('../', Common.Gateway.props.base_url +
'sdkjs/');
queue.push(function () {
return loadScriptPromise(url);
});
});
return queue;
})
.push(callback);
}
loadScript(Common.Gateway.props.base_url + '/sdkjs/' + sdkName + '/sdk-all.js', callback);
}
}
......
......@@ -42,6 +42,23 @@ var AscCommon;
var AscCommonWord;
var AscCommonExcel;
var AscCommonSlide;
var Common = {};
Common.Gateway = {
props: {
value: "",
documentType: "",
binary_loader: true,
base_url: ""
}
};
/**
* @param {String} doc_id
* @param {String} attach_id
* @return {Object}
*/
Common.Gateway.jio_getAttachment = function (doc_id, attach_id) {};
function jq(){}
function DE(){}
......
......@@ -43,30 +43,27 @@ Asc['asc_docs_api'].prototype._OfflineAppDocumentStartLoad = function()
this.asc_registerCallback('asc_onDocumentContentReady', function(){
DesktopOfflineUpdateLocalName(editor);
setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
//setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
});
AscCommon.History.UserSaveMode = true;
window["AscDesktopEditor"]["LocalStartOpen"]();
return this.jio_open();
};
Asc['asc_docs_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _data, _len)
Asc['asc_docs_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _binary)
{
AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if (_data == "")
//AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if (_binary == "")
{
this.sendEvent("asc_onError", c_oAscError.ID.ConvertationOpenError, c_oAscError.Level.Critical);
return;
}
var _binary = getBinaryArray(_data, _len);
this.OpenDocument2(_url, _binary);
this.WordControl.m_oLogicDocument.Set_FastCollaborativeEditing(false);
this.DocumentOrientation = (null == this.WordControl.m_oLogicDocument) ? true : !this.WordControl.m_oLogicDocument.Orientation;
DesktopOfflineUpdateLocalName(this);
window["DesktopAfterOpen"](this);
};
window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data)
{
AscCommon.g_oDocumentUrls.documentUrl = _url;
if (AscCommon.g_oDocumentUrls.documentUrl.indexOf("file:") != 0)
......@@ -76,7 +73,7 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
AscCommon.g_oDocumentUrls.documentUrl = "file://" + AscCommon.g_oDocumentUrls.documentUrl;
}
editor._OfflineAppDocumentEndLoad(_url, _data, _len);
editor._OfflineAppDocumentEndLoad(_url, _data);
};
/////////////////////////////////////////////////////////
......@@ -152,42 +149,8 @@ Asc['asc_docs_api'].prototype.SetDocumentModified = function(bValue)
}
};
Asc['asc_docs_api'].prototype.asc_Save = function (isNoUserSave, isSaveAs)
{
if (true !== isNoUserSave)
this.IsUserSave = true;
if (this.IsUserSave)
{
this.LastUserSavedIndex = AscCommon.History.UserSavedIndex;
}
if (true === this.canSave && !this.isLongAction())
{
var _isNaturalSave = this.IsUserSave;
this.canSave = false;
var t = this;
this.CoAuthoringApi.askSaveChanges(function(e) {
t.onSaveCallback(e);
});
if (this.CoAuthoringApi.onUnSaveLock)
this.CoAuthoringApi.onUnSaveLock();
if (_isNaturalSave === true)
window["DesktopOfflineAppDocumentStartSave"](isSaveAs);
}
};
window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isForce)
window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs)
{
window.doadssIsSaveAs = isSaveAs;
if (true !== isForce && window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}", { "type" : "generatePassword" });
return;
}
editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save);
var _param = "";
......@@ -196,9 +159,9 @@ window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isFo
if (AscCommon.AscBrowser.isRetina)
_param += "retina=true;";
window["AscDesktopEditor"]["LocalFileSave"](_param, password);
window["AscDesktopEditor"]["LocalFileSave"](_param);
};
window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
window["DesktopOfflineAppDocumentEndSave"] = function(error)
{
editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save);
if (0 == error)
......@@ -211,43 +174,12 @@ window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
if (2 == error)
editor.sendEvent("asc_onError", c_oAscError.ID.ConvertationSaveError, c_oAscError.Level.Critical);
if (0 == error)
{
if (window.SaveQuestionObjectBeforeSign)
{
var _obj = window.SaveQuestionObjectBeforeSign;
editor.sendEvent("asc_onSignatureClick", _obj.guid, _obj.width, _obj.height);
window.SaveQuestionObjectBeforeSign = null;
}
}
if (hash !== null && hash !== undefined && hash != "")
{
if (window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}", {"type": "setPasswordByFile", "hash": hash, "password": password});
}
}
};
Asc['asc_docs_api'].prototype.asc_DownloadAs = function(typeFile, bIsDownloadEvent)
{
this.asc_Save(false, true);
};
Asc['asc_docs_api'].prototype.AddImageUrl = function(url, imgProp)
{
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
this.AddImageUrlAction(AscCommon.g_oDocumentUrls.getImageUrl(_url), imgProp);
};
Asc['asc_docs_api'].prototype.AddImage = function()
{
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
};
Asc['asc_docs_api'].prototype.asc_addImage = function()
{
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
};
Asc['asc_docs_api'].prototype.asc_isOffline = function()
{
return true;
......@@ -290,12 +222,7 @@ window["on_editor_native_message"] = function(sCommand, sParam)
editor.EndDemonstration(true);
};
Asc['asc_docs_api'].prototype.asc_setAdvancedOptions = function(idOption, option)
{
if (window["Asc"].c_oAscAdvancedOptionsID.DRM === idOption) {
var _param = "";
_param += ("<m_sPassword>" + AscCommon.CopyPasteCorrectString(option.asc_getPassword()) + "</m_sPassword>");
window["AscDesktopEditor"]["SetAdvancedOptions"](_param);
}
AscCommon.baseEditorsApi.prototype.getEmpty = function() {
return "PPTY;v1;20344;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";
};
\ No newline at end of file
Asc['asc_docs_api'].prototype["asc_setAdvancedOptions"] = Asc['asc_docs_api'].prototype.asc_setAdvancedOptions;
......@@ -1899,6 +1899,7 @@ background-repeat: no-repeat;\
// Обновляем состояние возможности сохранения документа
t._onUpdateDocumentCanSave();
t.jio_save();
if (undefined !== window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["OnSave"]();
......
......@@ -43,32 +43,25 @@ Asc['asc_docs_api'].prototype._OfflineAppDocumentStartLoad = function()
this.asc_registerCallback('asc_onDocumentContentReady', function(){
DesktopOfflineUpdateLocalName(editor);
setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
//setTimeout(function(){window["UpdateInstallPlugins"]();}, 10);
});
AscCommon.History.UserSaveMode = true;
window["AscDesktopEditor"]["LocalStartOpen"]();
return this.jio_open();
};
Asc['asc_docs_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _data, _len)
Asc['asc_docs_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _binary)
{
AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if (_data == "")
//AscCommon.g_oIdCounter.m_sUserId = window["AscDesktopEditor"]["CheckUserId"]();
if (_binary == "")
{
this.sendEvent("asc_onError", c_oAscError.ID.ConvertationOpenError, c_oAscError.Level.Critical);
return;
}
var _binary = getBinaryArray(_data, _len);
var _sign_len = AscCommon.c_oSerFormat.Signature.length;
var _signature = "";
if (_binary.length >= _sign_len)
{
for (var i = 0; i < _sign_len; i++)
{
_signature += String.fromCharCode(_binary[i]);
}
var _signature = _binary.slice(0, _sign_len);
if (typeof _signature !== 'string') {
_signature = String.fromCharCode.apply(null, _signature);
}
if (AscCommon.c_oSerFormat.Signature !== _signature)
{
this.OpenDocument(_url, _binary);
......@@ -78,14 +71,9 @@ Asc['asc_docs_api'].prototype._OfflineAppDocumentEndLoad = function(_url, _data,
this.OpenDocument2(_url, _binary);
this.WordControl.m_oLogicDocument.Set_FastCollaborativeEditing(false);
}
this.WordControl.m_oLogicDocument.Set_FastCollaborativeEditing(false);
DesktopOfflineUpdateLocalName(this);
window["DesktopAfterOpen"](this);
};
window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data)
{
AscCommon.g_oDocumentUrls.documentUrl = _url;
if (AscCommon.g_oDocumentUrls.documentUrl.indexOf("file:") != 0)
......@@ -95,7 +83,7 @@ window["DesktopOfflineAppDocumentEndLoad"] = function(_url, _data, _len)
AscCommon.g_oDocumentUrls.documentUrl = "file://" + AscCommon.g_oDocumentUrls.documentUrl;
}
editor._OfflineAppDocumentEndLoad(_url, _data, _len);
editor._OfflineAppDocumentEndLoad(_url, _data);
};
Asc['asc_docs_api'].prototype.asc_setAdvancedOptions = function(idOption, option)
......@@ -175,60 +163,8 @@ window["DesktopOfflineAppDocumentApplyChanges"] = function(_changes)
/////////////////////////////////////////////////////////
//////////////// SAVE //////////////////////
/////////////////////////////////////////////////////////
Asc['asc_docs_api'].prototype.SetDocumentModified = function(bValue)
window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs)
{
this.isDocumentModify = bValue;
this.sendEvent("asc_onDocumentModifiedChanged");
if (undefined !== window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["onDocumentModifiedChanged"](AscCommon.History ? AscCommon.History.Have_Changes(undefined, true) : bValue);
}
};
Asc['asc_docs_api'].prototype.asc_Save = function (isNoUserSave, isSaveAs)
{
if (true !== isNoUserSave)
this.IsUserSave = true;
if (this.IsUserSave)
{
this.LastUserSavedIndex = AscCommon.History.UserSavedIndex;
}
if (true === this.canSave && !this.isLongAction())
{
var _isNaturalSave = this.IsUserSave;
this.canSave = false;
if (this.WordControl.m_oLogicDocument != null)
{
var t = this;
this.CoAuthoringApi.askSaveChanges(function(e) {
t.onSaveCallback(e);
});
if (this.CoAuthoringApi.onUnSaveLock)
this.CoAuthoringApi.onUnSaveLock();
}
else
{
this.canSave = true;
}
if (_isNaturalSave === true)
window["DesktopOfflineAppDocumentStartSave"](isSaveAs);
}
};
window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isForce)
{
window.doadssIsSaveAs = isSaveAs;
if (true !== isForce && window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}", { "type" : "generatePassword" });
return;
}
editor.sync_StartAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save);
var _param = "";
......@@ -237,9 +173,9 @@ window["DesktopOfflineAppDocumentStartSave"] = function(isSaveAs, password, isFo
if (AscCommon.AscBrowser.isRetina)
_param += "retina=true;";
window["AscDesktopEditor"]["LocalFileSave"](_param, password);
window["AscDesktopEditor"]["LocalFileSave"](_param);
};
window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
window["DesktopOfflineAppDocumentEndSave"] = function(error)
{
editor.sync_EndAction(Asc.c_oAscAsyncActionType.BlockInteraction, Asc.c_oAscAsyncAction.Save);
if (error == 0)
......@@ -252,43 +188,12 @@ window["DesktopOfflineAppDocumentEndSave"] = function(error, hash, password)
if (2 == error)
editor.sendEvent("asc_onError", c_oAscError.ID.ConvertationSaveError, c_oAscError.Level.NoCritical);
if (0 == error)
{
if (window.SaveQuestionObjectBeforeSign)
{
var _obj = window.SaveQuestionObjectBeforeSign;
editor.sendEvent("asc_onSignatureClick", _obj.guid, _obj.width, _obj.height);
window.SaveQuestionObjectBeforeSign = null;
}
}
if (hash !== null && hash !== undefined && hash != "")
{
if (window.g_asc_plugins && window.g_asc_plugins.isRunned("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}"))
{
window.g_asc_plugins.init("asc.{F2402876-659F-47FB-A646-67B49F2B57D0}", {"type": "setPasswordByFile", "hash": hash, "password": password});
}
}
};
Asc['asc_docs_api'].prototype.asc_DownloadAs = function(typeFile, bIsDownloadEvent)
{
this.asc_Save(false, true);
};
Asc['asc_docs_api'].prototype.AddImageUrl = function(url, imgProp)
{
var _url = window["AscDesktopEditor"]["LocalFileGetImageUrl"](url);
this.AddImageUrlAction(AscCommon.g_oDocumentUrls.getImageUrl(_url), imgProp);
};
Asc['asc_docs_api'].prototype.AddImage = function()
{
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
};
Asc['asc_docs_api'].prototype.asc_addImage = function()
{
window["AscDesktopEditor"]["LocalFileGetImageUrlFromOpenFileDialog"]();
};
Asc['asc_docs_api'].prototype.asc_isOffline = function()
{
return true;
......
......@@ -2278,6 +2278,7 @@ background-repeat: no-repeat;\
// Обновляем состояние возможности сохранения документа
t._onUpdateDocumentCanSave();
t.jio_save();
if (undefined !== window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["OnSave"]();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment