Commit 7e6209ed authored by Alexander.Trofimov's avatar Alexander.Trofimov

В таблицах добавил не используемую функцию _asc_save2 (для сохранения файла с изменениями)

Правка бага http://bugzserver/show_bug.cgi?id=26680 (при сохранении больших данных мы можем уйти из документа раньше, чем закончим сохранение).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58505 954022d7-b5bf-4e40-9824-e11837661b57
parent 07517acb
......@@ -577,15 +577,21 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
};
spreadsheet_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) {
this.canSave = true;
this.isAutoSave = false;
this.lastSaveTime = null;
var t = this;
this.CoAuthoringApi.onUnSaveLock = function () {
t.CoAuthoringApi.onUnSaveLock = null;
t.canSave = true;
t.isAutoSave = false;
t.lastSaveTime = null;
t.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Обновляем состояние возможности сохранения документа
t._onUpdateDocumentCanSave();
};
this.CoAuthoringApi.unSaveChanges();
if (!isDocumentSaved)
this.CoAuthoringApi.disconnect();
this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Обновляем состояние возможности сохранения документа
this._onUpdateDocumentCanSave();
};
spreadsheet_api.prototype.asc_Print = function(adjustPrint){
......@@ -1033,6 +1039,32 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
}
};
spreadsheet_api.prototype._asc_save2 = function () {
var oAdditionalData = {};
oAdditionalData["c"] = "sfct";
oAdditionalData["id"] = this.documentId;
oAdditionalData["userid"] = this.documentUserId;
oAdditionalData["vkey"] = this.documentVKey;
oAdditionalData["outputformat"] = 0x1002;
var data;
this.wb._initCommentsToSave();
var oBinaryFileWriter = new Asc.BinaryFileWriter(this.wbModel);
oAdditionalData["savetype"] = "completeall";
data = oBinaryFileWriter.Write();
if (undefined != window['appBridge']) {
window['appBridge']['dummyCommandSave_CSV'] (data);
this.asc_OnSaveEnd(true);
return;
}
oAdditionalData["data"] = data;
var t = this;
this._asc_sendCommand (function (incomeObject) {
if(null != incomeObject && "save" == incomeObject["type"])
t.asc_processSavedFile(incomeObject["data"], false);
}, oAdditionalData);
};
spreadsheet_api.prototype._asc_save = function () {
var that = this;
this.wb._initCommentsToSave();
......
......@@ -123,7 +123,6 @@ function asc_docs_api(name)
/**************************************/
// AutoSave
this.autoSaveGap = 0; // Интервал автосохранения (0 - означает, что автосохранения нет) в милесекундах
this.isAutoSave = false; // Флаг, означает что запущено автосохранениеautoSaveTimeOutId
this.canSave = true; //Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение
......@@ -1436,18 +1435,20 @@ function OnSave_Callback2(e)
// Пересылаем свои изменения
CollaborativeEditing.Send_Changes();
editor.CoAuthoringApi.onUnSaveLock = function () {
editor.CoAuthoringApi.onUnSaveLock = null;
// Выставляем, что документ не модифицирован
editor.SetUnchangedDocument();
editor.canSave = true;
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Снимаем лок с функции сохранения на сервере
editor.CoAuthoringApi.unSaveChanges();
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
};
// Снимаем лок с функции сохранения на сервере
editor.CoAuthoringApi.unSaveChanges();
}
else
{
......@@ -1455,7 +1456,7 @@ function OnSave_Callback2(e)
}
}
asc_docs_api.prototype.asc_Save = function (isAutoSave) {
asc_docs_api.prototype.asc_Save = function () {
if (true === this.canSave)
{
this.canSave = false;
......@@ -1463,17 +1464,18 @@ asc_docs_api.prototype.asc_Save = function (isAutoSave) {
}
};
asc_docs_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) {
if (!this.isAutoSave)
this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
this.canSave = true;
this.isAutoSave = false;
var t = this;
this.CoAuthoringApi.onUnSaveLock = function () {
t.CoAuthoringApi.onUnSaveLock = null;
t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
t.canSave = true;
// Обновляем состояние возможности сохранения документа
t._onUpdateDocumentCanSave();
};
this.CoAuthoringApi.unSaveChanges();
if (!isDocumentSaved)
this.CoAuthoringApi.disconnect();
// Обновляем состояние возможности сохранения документа
this._onUpdateDocumentCanSave();
};
asc_docs_api.prototype.processSavedFile = function(url, bInner){
if(bInner)
......@@ -1815,9 +1817,6 @@ asc_docs_api.prototype.onSaveCallback = function (e) {
var t = this;
var nState;
if (false == e["saveLock"]) {
if (t.isAutoSave)
t.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Принимаем чужие изменения
safe_Apply_Changes();
......@@ -1847,18 +1846,10 @@ asc_docs_api.prototype.onSaveCallback = function (e) {
nState = t.CoAuthoringApi.get_state();
if (3 === nState) {
// Отключаемся от сохранения, соединение потеряно
if (!t.isAutoSave)
t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
t.isAutoSave = false;
t.canSave = true;
} else {
// Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного
if (t.isAutoSave) {
t.isAutoSave = false;
t.canSave = true;
return;
}
setTimeout(function () {
t.CoAuthoringApi.askSaveChanges(function (event) { t.onSaveCallback(event); });
}, 1000);
......
......@@ -569,7 +569,6 @@ function asc_docs_api(name)
// AutoSave
this.autoSaveGap = 0; // Интервал автосохранения (0 - означает, что автосохранения нет) в милесекундах
this.isAutoSave = false; // Флаг, означает что запущено автосохранение
this.bInit_word_control = false;
this.isDocumentModify = false;
......@@ -2757,18 +2756,20 @@ function OnSave_Callback2(e)
// Пересылаем свои изменения
CollaborativeEditing.Send_Changes();
editor.CoAuthoringApi.onUnSaveLock = function () {
editor.CoAuthoringApi.onUnSaveLock = null;
// Выставляем, что документ не модифицирован
editor.SetUnchangedDocument();
editor.canSave = true;
// Снимаем лок с функции сохранения на сервере
editor.CoAuthoringApi.unSaveChanges();
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
};
// Снимаем лок с функции сохранения на сервере
editor.CoAuthoringApi.unSaveChanges();
}
else
{
......@@ -2776,34 +2777,31 @@ function OnSave_Callback2(e)
}
}
asc_docs_api.prototype.asc_Save = function (isAutoSave)
asc_docs_api.prototype.asc_Save = function ()
{
this.asc_Save2();
// if(true === this.canSave) {
// this.canSave = false;
// this.isAutoSave = !!isAutoSave;
// if (!this.isAutoSave) {
// this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// }
//
// this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
// }
};
asc_docs_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) {
// Если не автосохранение, то не забываем закрыть Block-сообщение
// if (!this.isAutoSave)
// this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
this.canSave = true;
this.isAutoSave = false;
var t = this;
this.CoAuthoringApi.onUnSaveLock = function () {
t.CoAuthoringApi.onUnSaveLock = null;
t.canSave = true;
t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Обновляем состояние возможности сохранения документа
t._onUpdateDocumentCanSave();
};
this.CoAuthoringApi.unSaveChanges();
if (!isDocumentSaved)
this.CoAuthoringApi.disconnect();
this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Обновляем состояние возможности сохранения документа
this._onUpdateDocumentCanSave();
};
function safe_Apply_Changes()
......@@ -2821,10 +2819,6 @@ function safe_Apply_Changes()
//{
// var nState;
// if ( false == e["saveLock"] ) {
// if (editor.isAutoSave) {
// editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// editor.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// }
//
// if ( c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType )
// CollaborativeEditing.Clear_CollaborativeMarks();
......@@ -2867,31 +2861,14 @@ function safe_Apply_Changes()
// //Обратно выставляем, что документ не модифицирован
// editor.SetUnchangedDocument();
//
// // Заканчиваем сохранение, т.к. мы хотим дать пользователю продолжать набирать документ
// // Но сохранять до прихода ответа от сервера не сможет
// editor.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// // Если не автосохранение, то продолжаем показывать Block-сообщение
// if (!editor.isAutoSave)
// editor.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
// editor.asc_OnSaveEnd(true);
// } else {
// nState = editor.CoAuthoringApi.get_state();
// if (3 === nState) {
// // Отключаемся от сохранения, соединение потеряно
// if (!editor.isAutoSave) {
// editor.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// }
// editor.isAutoSave = false;
// editor.canSave = true;
// } else {
// // Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного
// if (editor.isAutoSave) {
// editor.isAutoSave = false;
// editor.canSave = true;
// return;
// }
//
// setTimeout( function(){ editor.CoAuthoringApi.askSaveChanges( OnSave_Callback ); }, 1000 );
// }
// }
......
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