Commit 6a8fd916 authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Убрал PrepareToSave в редакторах.

Убрал блокирующие сообщения в таблицах и презентациях.
Баг http://bugzserver/show_bug.cgi?id=24386

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58306 954022d7-b5bf-4e40-9824-e11837661b57
parent 86a626de
...@@ -569,7 +569,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -569,7 +569,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.isAutoSave = !!isAutoSave; this.isAutoSave = !!isAutoSave;
if (!this.isAutoSave) { if (!this.isAutoSave) {
this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
this.asc_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
} }
// Нужно закрыть редактор // Нужно закрыть редактор
this.asc_closeCellEditor(); this.asc_closeCellEditor();
...@@ -579,9 +578,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -579,9 +578,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
}; };
spreadsheet_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) { spreadsheet_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) {
// Если не автосохранение, то не забываем закрыть Block-сообщение
if (!this.isAutoSave)
this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
this.canSave = true; this.canSave = true;
this.isAutoSave = false; this.isAutoSave = false;
...@@ -1898,10 +1894,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1898,10 +1894,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
var t = this; var t = this;
var nState; var nState;
if (false == e["saveLock"]) { if (false == e["saveLock"]) {
if (this.isAutoSave) { if (this.isAutoSave)
this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
this.asc_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
}
// Принимаем чужие изменения // Принимаем чужие изменения
t.collaborativeEditing.applyChanges(); t.collaborativeEditing.applyChanges();
...@@ -1920,21 +1914,13 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1920,21 +1914,13 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.wb._onWSSelectionChanged(/*info*/null); this.wb._onWSSelectionChanged(/*info*/null);
} }
// Заканчиваем сохранение, т.к. мы хотим дать пользователю продолжать набирать документ
// Но сохранять до прихода ответа от сервера не сможет
this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// Если не автосохранение, то продолжаем показывать Block-сообщение
if (!this.isAutoSave)
this.asc_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
this.asc_OnSaveEnd(true); this.asc_OnSaveEnd(true);
} else { } else {
nState = t.CoAuthoringApi.get_state(); nState = t.CoAuthoringApi.get_state();
if (3 === nState) { if (3 === nState) {
// Отключаемся от сохранения, соединение потеряно // Отключаемся от сохранения, соединение потеряно
if (!this.isAutoSave) { if (!this.isAutoSave)
this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
}
this.isAutoSave = false; this.isAutoSave = false;
this.canSave = true; this.canSave = true;
} else { } else {
...@@ -1946,12 +1932,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1946,12 +1932,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
setTimeout(function () { setTimeout(function () {
t.CoAuthoringApi.askSaveChanges(function (event) { t.CoAuthoringApi.askSaveChanges(function (event) { t.onSaveCallback(event); });
// Функция может быть долгой (и в IE10 происходит disconnect). Поэтому вызовем через timeout
window.setTimeout(function () {
t.onSaveCallback(event);
}, 10);
});
}, 1000); }, 1000);
} }
} }
...@@ -3180,10 +3161,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -3180,10 +3161,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
var isFastSave = !this.collaborativeEditing.getCollaborativeEditing(); var isFastSave = !this.collaborativeEditing.getCollaborativeEditing();
var gap = new Date() - this.lastSaveTime - (isFastSave ? this.autoSaveGapFast : this.autoSaveGapSlow); var gap = new Date() - this.lastSaveTime - (isFastSave ? this.autoSaveGapFast : this.autoSaveGapSlow);
if (0 <= gap) { if (0 <= gap)
//isFastSave ? this.onSaveCallback() : this.asc_Save(true);
this.asc_Save(true); this.asc_Save(true);
}
}; };
spreadsheet_api.prototype._onUpdateDocumentCanSave = function () { spreadsheet_api.prototype._onUpdateDocumentCanSave = function () {
......
...@@ -86,8 +86,7 @@ var c_oAscAsyncAction = { ...@@ -86,8 +86,7 @@ var c_oAscAsyncAction = {
Print : 7, //конвертация в PDF и сохранение у пользователя Print : 7, //конвертация в PDF и сохранение у пользователя
UploadImage : 8, UploadImage : 8,
Recalc : 9, Recalc : 9,
SlowOperation : 10, SlowOperation : 10
PrepareToSave : 11 // Подготовка к сохранению
}; };
var c_oAscAlignType = { var c_oAscAlignType = {
......
...@@ -1414,19 +1414,14 @@ asc_docs_api.prototype.asc_Save = function (isAutoSave) { ...@@ -1414,19 +1414,14 @@ asc_docs_api.prototype.asc_Save = function (isAutoSave) {
if (true === this.canSave) { if (true === this.canSave) {
this.canSave = false; this.canSave = false;
this.isAutoSave = !!isAutoSave; this.isAutoSave = !!isAutoSave;
if (!this.isAutoSave) { if (!this.isAutoSave)
this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
}
var t = this; var t = this;
this.CoAuthoringApi.askSaveChanges (function (e) { t.onSaveCallback (e); }); this.CoAuthoringApi.askSaveChanges (function (e) { t.onSaveCallback (e); });
} }
}; };
asc_docs_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) { asc_docs_api.prototype.asc_OnSaveEnd = function (isDocumentSaved) {
// Если не автосохранение, то не забываем закрыть Block-сообщение
if (!this.isAutoSave)
this.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
this.canSave = true; this.canSave = true;
this.isAutoSave = false; this.isAutoSave = false;
...@@ -1777,10 +1772,8 @@ asc_docs_api.prototype.onSaveCallback = function (e) { ...@@ -1777,10 +1772,8 @@ asc_docs_api.prototype.onSaveCallback = function (e) {
var t = this; var t = this;
var nState; var nState;
if (false == e["saveLock"]) { if (false == e["saveLock"]) {
if (t.isAutoSave) { if (t.isAutoSave)
t.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); t.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
t.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
}
// Принимаем чужие изменения // Принимаем чужие изменения
safe_Apply_Changes(); safe_Apply_Changes();
...@@ -1806,21 +1799,13 @@ asc_docs_api.prototype.onSaveCallback = function (e) { ...@@ -1806,21 +1799,13 @@ asc_docs_api.prototype.onSaveCallback = function (e) {
//Обратно выставляем, что документ не модифицирован //Обратно выставляем, что документ не модифицирован
t.SetUnchangedDocument(); t.SetUnchangedDocument();
// Заканчиваем сохранение, т.к. мы хотим дать пользователю продолжать набирать документ
// Но сохранять до прихода ответа от сервера не сможет
t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// Если не автосохранение, то продолжаем показывать Block-сообщение
if (!t.isAutoSave)
t.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
t.asc_OnSaveEnd(true); t.asc_OnSaveEnd(true);
} else { } else {
nState = t.CoAuthoringApi.get_state(); nState = t.CoAuthoringApi.get_state();
if (3 === nState) { if (3 === nState) {
// Отключаемся от сохранения, соединение потеряно // Отключаемся от сохранения, соединение потеряно
if (!t.isAutoSave) { if (!t.isAutoSave)
t.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); t.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
}
t.isAutoSave = false; t.isAutoSave = false;
t.canSave = true; t.canSave = true;
} else { } else {
...@@ -1832,12 +1817,7 @@ asc_docs_api.prototype.onSaveCallback = function (e) { ...@@ -1832,12 +1817,7 @@ asc_docs_api.prototype.onSaveCallback = function (e) {
} }
setTimeout(function () { setTimeout(function () {
t.CoAuthoringApi.askSaveChanges(function (event) { t.CoAuthoringApi.askSaveChanges(function (event) { t.onSaveCallback(event); });
// Функция может быть долгой (и в IE10 происходит disconnect). Поэтому вызовем через timeout
window.setTimeout(function () {
t.onSaveCallback(event);
}, 10);
});
}, 1000); }, 1000);
} }
} }
......
...@@ -57,8 +57,7 @@ var c_oAscAsyncAction = { ...@@ -57,8 +57,7 @@ var c_oAscAsyncAction = {
Print : 7, // конвертация в PDF и сохранение у пользователя Print : 7, // конвертация в PDF и сохранение у пользователя
UploadImage : 8, UploadImage : 8,
LoadTheme : 9, LoadTheme : 9,
ApplyChanges : 10, // применение изменений от другого пользователя. ApplyChanges : 10 // применение изменений от другого пользователя.
PrepareToSave : 11 // Подготовка к сохранению
}; };
var c_oAscVertAlignJc = { var c_oAscVertAlignJc = {
......
...@@ -2816,85 +2816,85 @@ function safe_Apply_Changes() ...@@ -2816,85 +2816,85 @@ function safe_Apply_Changes()
} }
} }
function OnSave_Callback(e) //function OnSave_Callback(e)
{ //{
var nState; // var nState;
if ( false == e["saveLock"] ) { // if ( false == e["saveLock"] ) {
if (editor.isAutoSave) { // if (editor.isAutoSave) {
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); // editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
editor.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave); // editor.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
} // }
//
if ( c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType ) // if ( c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType )
CollaborativeEditing.Clear_CollaborativeMarks(); // CollaborativeEditing.Clear_CollaborativeMarks();
//
// Принимаем чужие изменения // // Принимаем чужие изменения
safe_Apply_Changes(); // safe_Apply_Changes();
//
// Сохраняем файл на сервер // // Сохраняем файл на сервер
var oBinaryFileWriter = new BinaryFileWriter(editor.WordControl.m_oLogicDocument); // var oBinaryFileWriter = new BinaryFileWriter(editor.WordControl.m_oLogicDocument);
//
if (undefined != window['qtDocBridge']) { // if (undefined != window['qtDocBridge']) {
var data = oBinaryFileWriter.Write(); // var data = oBinaryFileWriter.Write();
// push data to native QT code // // push data to native QT code
window['qtDocBridge']['savedDocument'] (data); // window['qtDocBridge']['savedDocument'] (data);
//
} else { // } else {
/*var oAdditionalData = {}; // /*var oAdditionalData = {};
oAdditionalData["c"] = "save"; // oAdditionalData["c"] = "save";
oAdditionalData["id"] = documentId; // oAdditionalData["id"] = documentId;
oAdditionalData["userid"] = documentUserId; // oAdditionalData["userid"] = documentUserId;
oAdditionalData["vkey"] = documentVKey; // oAdditionalData["vkey"] = documentVKey;
oAdditionalData["outputformat"] = documentFormatSave; // oAdditionalData["outputformat"] = documentFormatSave;
if(c_oAscFileType.TXT == documentFormatSaveTxtCodepage) // if(c_oAscFileType.TXT == documentFormatSaveTxtCodepage)
oAdditionalData["codepage"] = documentFormatSaveTxtCodepage; // oAdditionalData["codepage"] = documentFormatSaveTxtCodepage;
oAdditionalData["innersave"] = true; // oAdditionalData["innersave"] = true;
var data = oBinaryFileWriter.Write(); // var data = oBinaryFileWriter.Write();
oAdditionalData["savetype"] = "completeall"; // oAdditionalData["savetype"] = "completeall";
////uncoment to save changes only instead send file complete // ////uncoment to save changes only instead send file complete
//var data = JSON.stringify( CollaborativeEditing.Get_SelfChanges() ); // //var data = JSON.stringify( CollaborativeEditing.Get_SelfChanges() );
//oAdditionalData["savetype"] = "changes"; // //oAdditionalData["savetype"] = "changes";
oAdditionalData["data"] = data; // oAdditionalData["data"] = data;
sendCommand(editor, function(incomeObject){ // sendCommand(editor, function(incomeObject){
if(null != incomeObject && "save" == incomeObject["type"]) // if(null != incomeObject && "save" == incomeObject["type"])
editor.processSavedFile(incomeObject["data"], true); // editor.processSavedFile(incomeObject["data"], true);
}, oAdditionalData);*/ // }, oAdditionalData);*/
} // }
//
// Пересылаем свои изменения // // Пересылаем свои изменения
CollaborativeEditing.Send_Changes(); // CollaborativeEditing.Send_Changes();
//Обратно выставляем, что документ не модифицирован // //Обратно выставляем, что документ не модифицирован
editor.SetUnchangedDocument(); // editor.SetUnchangedDocument();
//
// Заканчиваем сохранение, т.к. мы хотим дать пользователю продолжать набирать документ // // Заканчиваем сохранение, т.к. мы хотим дать пользователю продолжать набирать документ
// Но сохранять до прихода ответа от сервера не сможет // // Но сохранять до прихода ответа от сервера не сможет
editor.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave); // editor.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
// Если не автосохранение, то продолжаем показывать Block-сообщение // // Если не автосохранение, то продолжаем показывать Block-сообщение
if (!editor.isAutoSave) // if (!editor.isAutoSave)
editor.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save); // editor.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Save);
editor.asc_OnSaveEnd(true); // editor.asc_OnSaveEnd(true);
} else { // } else {
nState = editor.CoAuthoringApi.get_state(); // nState = editor.CoAuthoringApi.get_state();
if (3 === nState) { // if (3 === nState) {
// Отключаемся от сохранения, соединение потеряно // // Отключаемся от сохранения, соединение потеряно
if (!editor.isAutoSave) { // if (!editor.isAutoSave) {
editor.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave); // editor.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.PrepareToSave);
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); // editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
} // }
editor.isAutoSave = false; // editor.isAutoSave = false;
editor.canSave = true; // editor.canSave = true;
} else { // } else {
// Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного // // Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного
if (editor.isAutoSave) { // if (editor.isAutoSave) {
editor.isAutoSave = false; // editor.isAutoSave = false;
editor.canSave = true; // editor.canSave = true;
return; // return;
} // }
//
setTimeout( function(){ editor.CoAuthoringApi.askSaveChanges( OnSave_Callback ); }, 1000 ); // setTimeout( function(){ editor.CoAuthoringApi.askSaveChanges( OnSave_Callback ); }, 1000 );
} // }
} // }
} //}
asc_docs_api.prototype.asc_DownloadAs = function(typeFile){//передаем число соответствующее своему формату. asc_docs_api.prototype.asc_DownloadAs = function(typeFile){//передаем число соответствующее своему формату.
this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.DownloadAs); this.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.DownloadAs);
......
...@@ -21,8 +21,7 @@ var c_oAscAsyncAction = { ...@@ -21,8 +21,7 @@ var c_oAscAsyncAction = {
DownloadAs : 6, DownloadAs : 6,
Print : 7, // конвертация в PDF и сохранение у пользователя Print : 7, // конвертация в PDF и сохранение у пользователя
UploadImage : 8, UploadImage : 8,
ApplyChanges : 9, // применение изменений от другого пользователя. ApplyChanges : 9 // применение изменений от другого пользователя.
PrepareToSave : 10 // Подготовка к сохранению
}; };
//files type for Saving & DownloadAs //files type for Saving & DownloadAs
var c_oAscFileType = { var c_oAscFileType = {
......
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