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) { ...@@ -40,6 +40,7 @@ function baseEditorsApi(name) {
this.isOnFirstConnectEnd = false; this.isOnFirstConnectEnd = false;
this.canSave = true; // Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение this.canSave = true; // Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение
this.IsUserSave = false; // Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет)
// Version History // Version History
this.VersionHistory = null; // Объект, который отвечает за точку в списке версий this.VersionHistory = null; // Объект, который отвечает за точку в списке версий
......
...@@ -84,7 +84,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -84,7 +84,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.autoSaveGapSlow = 10 * 60 * 1000; // Интервал медленного автосохранения (когда совместно) - 10 минут this.autoSaveGapSlow = 10 * 60 * 1000; // Интервал медленного автосохранения (когда совместно) - 10 минут
this.autoSaveGap = 0; // Интервал автосохранения (0 - означает, что автосохранения нет) в милесекундах this.autoSaveGap = 0; // Интервал автосохранения (0 - означает, что автосохранения нет) в милесекундах
this.isAutoSave = false; // Флаг, означает что запущено автосохранение
this.waitSave = false; // Отложенное сохранение, происходит во время долгих операций this.waitSave = false; // Отложенное сохранение, происходит во время долгих операций
...@@ -518,8 +517,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -518,8 +517,8 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
return; return;
} }
this.isAutoSave = !!isAutoSave; this.IsUserSave = !isAutoSave;
if (!this.isAutoSave) { if (this.IsUserSave) {
this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
} }
/* Нужно закрыть редактор (до выставления флага canSave, т.к. мы должны успеть отправить /* Нужно закрыть редактор (до выставления флага canSave, т.к. мы должны успеть отправить
...@@ -1807,14 +1806,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1807,14 +1806,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
// Нужно снять lock с сохранения // Нужно снять lock с сохранения
this.CoAuthoringApi.onUnSaveLock = function() { this.CoAuthoringApi.onUnSaveLock = function() {
t.canSave = true; t.canSave = true;
t.isAutoSave = false; t.IsUserSave = false;
t.lastSaveTime = null; t.lastSaveTime = null;
}; };
this.CoAuthoringApi.unSaveLock(); this.CoAuthoringApi.unSaveLock();
return; return;
} }
if (this.isAutoSave) { if (!this.IsUserSave) {
this.asc_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); 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"; ...@@ -1822,9 +1821,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
// Принимаем чужие изменения // Принимаем чужие изменения
this.collaborativeEditing.applyChanges(); this.collaborativeEditing.applyChanges();
// Сохраняем файл на сервер
//this._asc_save();
// Cбросим флаги модификации // Cбросим флаги модификации
History.Save(); History.Save();
...@@ -1837,7 +1833,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1837,7 +1833,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
t.canSave = true; t.canSave = true;
t.isAutoSave = false; t.IsUserSave = false;
t.lastSaveTime = null; t.lastSaveTime = null;
t.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); 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"; ...@@ -1856,15 +1852,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
nState = t.CoAuthoringApi.get_state(); nState = t.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) { if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно // Отключаемся от сохранения, соединение потеряно
if (!this.isAutoSave) { if (this.IsUserSave) {
this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); this.asc_EndAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
} }
this.isAutoSave = false; this.IsUserSave = false;
this.canSave = true; this.canSave = true;
} else { } else {
// Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного // Если автосохранение, то не будем ждать ответа, а просто перезапустим таймер на немного
if (this.isAutoSave) { if (!this.IsUserSave) {
this.isAutoSave = false;
this.canSave = true; this.canSave = true;
return; return;
} }
......
...@@ -132,9 +132,6 @@ function asc_docs_api(name) ...@@ -132,9 +132,6 @@ function asc_docs_api(name)
this.fCurCallback = null; this.fCurCallback = null;
// Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет)
this.IsUserSave = false;
var oThis = this; var oThis = this;
// init OnMessage // init OnMessage
InitOnMessage(function (error, url) { InitOnMessage(function (error, url) {
...@@ -1384,7 +1381,7 @@ function OnSave_Callback(e) { ...@@ -1384,7 +1381,7 @@ function OnSave_Callback(e) {
if (editor.asc_IsLongAction()) { if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа // Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения // Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function () { editor.CoAuthoringApi.onUnSaveLock = function() {
editor.canSave = true; editor.canSave = true;
}; };
editor.CoAuthoringApi.unSaveLock(); editor.CoAuthoringApi.unSaveLock();
...@@ -1392,13 +1389,14 @@ function OnSave_Callback(e) { ...@@ -1392,13 +1389,14 @@ function OnSave_Callback(e) {
} }
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType) if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType) {
CollaborativeEditing.Clear_CollaborativeMarks(); CollaborativeEditing.Clear_CollaborativeMarks();
}
// Принимаем чужие изменения // Принимаем чужие изменения
CollaborativeEditing.Apply_Changes(); CollaborativeEditing.Apply_Changes();
editor.CoAuthoringApi.onUnSaveLock = function () { editor.CoAuthoringApi.onUnSaveLock = function() {
editor.CoAuthoringApi.onUnSaveLock = null; editor.CoAuthoringApi.onUnSaveLock = null;
// Выставляем, что документ не модифицирован // Выставляем, что документ не модифицирован
...@@ -1409,8 +1407,7 @@ function OnSave_Callback(e) { ...@@ -1409,8 +1407,7 @@ function OnSave_Callback(e) {
// Обновляем состояние возможности сохранения документа // Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave(); editor._onUpdateDocumentCanSave();
if (undefined !== window["AscDesktopEditor"]) if (undefined !== window["AscDesktopEditor"]) {
{
window["AscDesktopEditor"]["OnSave"](); window["AscDesktopEditor"]["OnSave"]();
} }
}; };
...@@ -1422,23 +1419,20 @@ function OnSave_Callback(e) { ...@@ -1422,23 +1419,20 @@ function OnSave_Callback(e) {
var nState = editor.CoAuthoringApi.get_state(); var nState = editor.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) { if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно // Отключаемся от сохранения, соединение потеряно
editor.IsUserSave = false;
editor.canSave = true; editor.canSave = true;
} else { } else {
var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000); var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000);
setTimeout(function () { setTimeout(function() {
editor.CoAuthoringApi.askSaveChanges(OnSave_Callback); editor.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}, TimeoutInterval); }, TimeoutInterval);
} }
} }
} }
asc_docs_api.prototype.asc_Save = function (isNoUserSave) asc_docs_api.prototype.asc_Save = function(isAutoSave) {
{ this.IsUserSave = !isAutoSave;
if (true !== isNoUserSave) if (true === this.canSave && !this.asc_IsLongAction()) {
this.IsUserSave = true;
if (!this.asc_IsLongAction() && true === this.canSave)
{
this.canSave = false; this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback); this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
} }
......
...@@ -425,9 +425,6 @@ function asc_docs_api(name) ...@@ -425,9 +425,6 @@ function asc_docs_api(name)
this.fCurCallback = null; this.fCurCallback = null;
// Флаг, контролирующий сохранение было сделано пользователем или нет (по умолчанию - нет)
this.IsUserSave = false;
var oThis = this; var oThis = this;
// init OnMessage // init OnMessage
InitOnMessage(function (error, url) { InitOnMessage(function (error, url) {
...@@ -2100,7 +2097,7 @@ function OnSave_Callback(e) { ...@@ -2100,7 +2097,7 @@ function OnSave_Callback(e) {
if (editor.asc_IsLongAction()) { if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа // Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения // Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function () { editor.CoAuthoringApi.onUnSaveLock = function() {
editor.canSave = true; editor.canSave = true;
}; };
editor.CoAuthoringApi.unSaveLock(); editor.CoAuthoringApi.unSaveLock();
...@@ -2108,14 +2105,15 @@ function OnSave_Callback(e) { ...@@ -2108,14 +2105,15 @@ function OnSave_Callback(e) {
} }
editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save); editor.sync_StartAction(c_oAscAsyncActionType.Information, c_oAscAsyncAction.Save);
if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType) if (c_oAscCollaborativeMarksShowType.LastChanges === editor.CollaborativeMarksShowType) {
CollaborativeEditing.Clear_CollaborativeMarks(); CollaborativeEditing.Clear_CollaborativeMarks();
}
// Принимаем чужие изменения // Принимаем чужие изменения
var HaveOtherChanges = CollaborativeEditing.Have_OtherChanges(); var HaveOtherChanges = CollaborativeEditing.Have_OtherChanges();
CollaborativeEditing.Apply_Changes(); CollaborativeEditing.Apply_Changes();
editor.CoAuthoringApi.onUnSaveLock = function () { editor.CoAuthoringApi.onUnSaveLock = function() {
editor.CoAuthoringApi.onUnSaveLock = null; editor.CoAuthoringApi.onUnSaveLock = null;
// Выставляем, что документ не модифицирован // Выставляем, что документ не модифицирован
...@@ -2126,41 +2124,37 @@ function OnSave_Callback(e) { ...@@ -2126,41 +2124,37 @@ function OnSave_Callback(e) {
// Обновляем состояние возможности сохранения документа // Обновляем состояние возможности сохранения документа
editor._onUpdateDocumentCanSave(); editor._onUpdateDocumentCanSave();
if (undefined !== window["AscDesktopEditor"]) if (undefined !== window["AscDesktopEditor"]) {
{
window["AscDesktopEditor"]["OnSave"](); window["AscDesktopEditor"]["OnSave"]();
} }
}; };
var CursorInfo = null; var CursorInfo = null;
if (true === CollaborativeEditing.Is_Fast()) if (true === CollaborativeEditing.Is_Fast()) {
CursorInfo = History.Get_DocumentPositionBinary(); CursorInfo = History.Get_DocumentPositionBinary();
}
// Пересылаем свои изменения // Пересылаем свои изменения
CollaborativeEditing.Send_Changes(editor.IsUserSave, {UserId : editor.CoAuthoringApi.getUserConnectionId(), CursorInfo : CursorInfo}, HaveOtherChanges); CollaborativeEditing.Send_Changes(editor.IsUserSave, {UserId: editor.CoAuthoringApi.getUserConnectionId(), CursorInfo: CursorInfo}, HaveOtherChanges);
editor.IsUserSave = false; editor.IsUserSave = false;
} else { } else {
var nState = editor.CoAuthoringApi.get_state(); var nState = editor.CoAuthoringApi.get_state();
if (ConnectionState.Close === nState) { if (ConnectionState.Close === nState) {
// Отключаемся от сохранения, соединение потеряно // Отключаемся от сохранения, соединение потеряно
editor.IsUserSave = false;
editor.canSave = true; editor.canSave = true;
} else { } else {
var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000); var TimeoutInterval = (true === CollaborativeEditing.Is_Fast() ? 1 : 1000);
setTimeout(function () { setTimeout(function() {
editor.CoAuthoringApi.askSaveChanges(OnSave_Callback); editor.CoAuthoringApi.askSaveChanges(OnSave_Callback);
}, TimeoutInterval); }, TimeoutInterval);
} }
} }
} }
asc_docs_api.prototype.asc_Save = function (isNoUserSave) asc_docs_api.prototype.asc_Save = function(isAutoSave) {
{ this.IsUserSave = !isAutoSave;
if (true !== isNoUserSave) if (true === this.canSave && !this.asc_IsLongAction()) {
this.IsUserSave = true;
if (true === this.canSave && !this.asc_IsLongAction())
{
this.canSave = false; this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback); this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
} }
......
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