Commit ea4caa8e authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

В Excel перешел на флаг IsUserSave, вынес его в base

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@66193 954022d7-b5bf-4e40-9824-e11837661b57
parent b67cba22
......@@ -40,6 +40,7 @@ function baseEditorsApi(name) {
this.isOnFirstConnectEnd = false;
this.canSave = true; // Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение
this.IsUserSave = false; // Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет)
// Version History
this.VersionHistory = null; // Объект, который отвечает за точку в списке версий
......
......@@ -84,7 +84,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.autoSaveGapSlow = 10 * 60 * 1000; // Интервал медленного автосохранения (когда совместно) - 10 минут
this.autoSaveGap = 0; // Интервал автосохранения (0 - означает, что автосохранения нет) в милесекундах
this.isAutoSave = false; // Флаг, означает что запущено автосохранение
this.waitSave = false; // Отложенное сохранение, происходит во время долгих операций
......@@ -518,8 +517,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
return;
}
this.isAutoSave = !!isAutoSave;
if (!this.isAutoSave) {
this.IsUserSave = !isAutoSave;
if (this.IsUserSave) {
this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
}
/* Нужно закрыть редактор (до выставления флага canSave, т.к. мы должны успеть отправить
......@@ -1807,14 +1806,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
// Нужно снять lock с сохранения
this.CoAuthoringApi.onUnSaveLock = function() {
t.canSave = true;
t.isAutoSave = false;
t.IsUserSave = false;
t.lastSaveTime = null;
};
this.CoAuthoringApi.unSaveLock();
return;
}
if (this.isAutoSave) {
if (!this.IsUserSave) {
this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
}
......@@ -1822,9 +1821,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
// Принимаем чужие изменения
this.collaborativeEditing.applyChanges();
// Сохраняем файл на сервер
//this._asc_save();
// Cбросим флаги модификации
History.Save();
......@@ -1837,7 +1833,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
}
t.canSave = true;
t.isAutoSave = false;
t.IsUserSave = false;
t.lastSaveTime = null;
t.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
......@@ -1856,15 +1852,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
nState = t.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно
if (!this.isAutoSave) {
if (this.IsUserSave) {
this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
}
this.isAutoSave = false;
this.IsUserSave = false;
this.canSave = true;
} else {
// Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного
if (this.isAutoSave) {
this.isAutoSave = false;
if (!this.IsUserSave) {
this.canSave = true;
return;
}
......
......@@ -131,10 +131,7 @@ function asc_docs_api(name)
this.LongActionCallbacksParams = [];
this.fCurCallback = null;
// Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет)
this.IsUserSave = false;
var oThis = this;
// init OnMessage
InitOnMessage(function (error, url) {
......@@ -1380,68 +1377,65 @@ asc_docs_api.prototype.Share = function(){
function OnSave_Callback(e) {
if (false == e["saveLock"]) {
if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function () {
editor.canSave = true;
};
editor.CoAuthoringApi.unSaveLock();
return;
}
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
if (false == e["saveLock"]) {
if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function() {
editor.canSave = true;
};
editor.CoAuthoringApi.unSaveLock();
return;
}
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType)
CollaborativeEditing.Clear_CollaborativeMarks();
if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType) {
CollaborativeEditing.Clear_CollaborativeMarks();
}
// Принимаем чужие изменения
CollaborativeEditing.Apply_Changes();
// Принимаем чужие изменения
CollaborativeEditing.Apply_Changes();
editor.CoAuthoringApi.onUnSaveLock = function () {
editor.CoAuthoringApi.onUnSaveLock = null;
editor.CoAuthoringApi.onUnSaveLock = function() {
editor.CoAuthoringApi.onUnSaveLock = null;
// Выставляем, что документ не модифицирован
editor.SetUnchangedDocument();
editor.canSave = true;
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Выставляем, что документ не модифицирован
editor.SetUnchangedDocument();
editor.canSave = true;
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
if (undefined !== window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["OnSave"]();
}
};
if (undefined !== window["AscDesktopEditor"]) {
window["AscDesktopEditor"]["OnSave"]();
}
};
// Пересылаем свои изменения
CollaborativeEditing.Send_Changes(editor.IsUserSave);
editor.IsUserSave = false;
} else {
var nState = editor.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно
editor.canSave = true;
} else {
var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000);
setTimeout(function () {
editor.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}, TimeoutInterval);
}
}
// Пересылаем свои изменения
CollaborativeEditing.Send_Changes(editor.IsUserSave);
editor.IsUserSave = false;
} else {
var nState = editor.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно
editor.IsUserSave = false;
editor.canSave = true;
} else {
var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000);
setTimeout(function() {
editor.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}, TimeoutInterval);
}
}
}
asc_docs_api.prototype.asc_Save = function (isNoUserSave)
{
if (true !== isNoUserSave)
this.IsUserSave = true;
if (!this.asc_IsLongAction() && true === this.canSave)
{
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}
asc_docs_api.prototype.asc_Save = function(isAutoSave) {
this.IsUserSave = !isAutoSave;
if (true === this.canSave && !this.asc_IsLongAction()) {
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}
};
asc_docs_api.prototype.processSavedFile = function(url, downloadType){
if(downloadType)
......
......@@ -425,9 +425,6 @@ function asc_docs_api(name)
this.fCurCallback = null;
// Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет)
this.IsUserSave = false;
var oThis = this;
// init OnMessage
InitOnMessage(function (error, url) {
......@@ -2096,74 +2093,71 @@ asc_docs_api.prototype.Share = function(){
};
function OnSave_Callback(e) {
if (false == e["saveLock"]) {
if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function () {
editor.canSave = true;
};
editor.CoAuthoringApi.unSaveLock();
return;
}
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType)
CollaborativeEditing.Clear_CollaborativeMarks();
if (false == e["saveLock"]) {
if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function() {
editor.canSave = true;
};
editor.CoAuthoringApi.unSaveLock();
return;
}
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
// Принимаем чужие изменения
var HaveOtherChanges = CollaborativeEditing.Have_OtherChanges();
CollaborativeEditing.Apply_Changes();
if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType) {
CollaborativeEditing.Clear_CollaborativeMarks();
}
editor.CoAuthoringApi.onUnSaveLock = function () {
editor.CoAuthoringApi.onUnSaveLock = null;
// Принимаем чужие изменения
var HaveOtherChanges = CollaborativeEditing.Have_OtherChanges();
CollaborativeEditing.Apply_Changes();
// Выставляем, что документ не модифицирован
editor.CheckChangedDocument();
editor.canSave = true;
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
editor.CoAuthoringApi.onUnSaveLock = function() {
editor.CoAuthoringApi.onUnSaveLock = null;
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
// Выставляем, что документ не модифицирован
editor.CheckChangedDocument();
editor.canSave = true;
editor.sync_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
if (undefined !== window["AscDesktopEditor"])
{
window["AscDesktopEditor"]["OnSave"]();
}
};
// Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave();
var CursorInfo = null;
if (true === CollaborativeEditing.Is_Fast())
CursorInfo = History.Get_DocumentPositionBinary();
if (undefined !== window["AscDesktopEditor"]) {
window["AscDesktopEditor"]["OnSave"]();
}
};
// Пересылаем свои изменения
CollaborativeEditing.Send_Changes(editor.IsUserSave, {UserId : editor.CoAuthoringApi.getUserConnectionId(), CursorInfo : CursorInfo}, HaveOtherChanges);
editor.IsUserSave = false;
} else {
var nState = editor.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно
editor.canSave = true;
} else {
var CursorInfo = null;
if (true === CollaborativeEditing.Is_Fast()) {
CursorInfo = History.Get_DocumentPositionBinary();
}
var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000);
setTimeout(function () {
editor.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}, TimeoutInterval);
}
}
// Пересылаем свои изменения
CollaborativeEditing.Send_Changes(editor.IsUserSave, {UserId: editor.CoAuthoringApi.getUserConnectionId(), CursorInfo: CursorInfo}, HaveOtherChanges);
editor.IsUserSave = false;
} else {
var nState = editor.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно
editor.IsUserSave = false;
editor.canSave = true;
} else {
var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000);
setTimeout(function() {
editor.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}, TimeoutInterval);
}
}
}
asc_docs_api.prototype.asc_Save = function (isNoUserSave)
{
if (true !== isNoUserSave)
this.IsUserSave = true;
if (true === this.canSave && !this.asc_IsLongAction())
{
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}
asc_docs_api.prototype.asc_Save = function(isAutoSave) {
this.IsUserSave = !isAutoSave;
if (true === this.canSave && !this.asc_IsLongAction()) {
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}
};
asc_docs_api.prototype.asc_DownloadAs = function(typeFile, bIsDownloadEvent) {//передаем число соответствующее своему формату.
......
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