Commit 54ada507 authored by Ilya Kirillov's avatar Ilya Kirillov

Added functions for set/get global lock. New scheme with undo in fast...

Added functions for set/get global lock. New scheme with undo in fast collaboration were moved to standard shortcut Ctrl+Z.
parent 2ae01c88
...@@ -148,6 +148,19 @@ CCollaborativeEditing.prototype.Check_MergeData = function() ...@@ -148,6 +148,19 @@ CCollaborativeEditing.prototype.Check_MergeData = function()
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
CCollaborativeEditing.prototype.Get_GlobalLock = function() CCollaborativeEditing.prototype.Get_GlobalLock = function()
{ {
return false;
};
CCollaborativeEditing.prototype.Set_GlobalLock = function(isLock)
{
};
CCollaborativeEditing.prototype.Get_GlobalLockSelection = function()
{
return false;
};
CCollaborativeEditing.prototype.Set_GlobalLockSelection = function(isLock)
{
}; };
CCollaborativeEditing.prototype.OnStart_CheckLock = function() CCollaborativeEditing.prototype.OnStart_CheckLock = function()
......
...@@ -219,8 +219,8 @@ function CCollaborativeEditingBase() ...@@ -219,8 +219,8 @@ function CCollaborativeEditingBase()
this.m_aEndActions = []; // Массив действий, которые надо выполнить после принятия чужих изменений this.m_aEndActions = []; // Массив действий, которые надо выполнить после принятия чужих изменений
this.m_bGlobalLock = false; // Запрещаем производить любые "редактирующие" действия (т.е. то, что в историю запишется) this.m_bGlobalLock = 0; // Запрещаем производить любые "редактирующие" действия (т.е. то, что в историю запишется)
this.m_bGlobalLockSelection = false; // Запрещаем изменять селект и курсор this.m_bGlobalLockSelection = 0; // Запрещаем изменять селект и курсор
this.m_aCheckLocks = []; // Массив для проверки залоченности объектов, которые мы собираемся изменять this.m_aCheckLocks = []; // Массив для проверки залоченности объектов, которые мы собираемся изменять
this.m_aNewObjects = []; // Массив со списком чужих новых объектов this.m_aNewObjects = []; // Массив со списком чужих новых объектов
...@@ -464,8 +464,8 @@ CCollaborativeEditingBase.prototype.Release_Locks = function() ...@@ -464,8 +464,8 @@ CCollaborativeEditingBase.prototype.Release_Locks = function()
}; };
CCollaborativeEditingBase.prototype.OnStart_Load_Objects = function() CCollaborativeEditingBase.prototype.OnStart_Load_Objects = function()
{ {
AscCommon.CollaborativeEditing.m_bGlobalLock = true; AscCommon.CollaborativeEditing.Set_GlobalLock(true);
AscCommon.CollaborativeEditing.m_bGlobalLockSelection = true; AscCommon.CollaborativeEditing.Set_GlobalLockSelection(true);
// Вызываем функцию для загрузки необходимых элементов (новые картинки и шрифты) // Вызываем функцию для загрузки необходимых элементов (новые картинки и шрифты)
editor.pre_Save(AscCommon.CollaborativeEditing.m_aNewImages); editor.pre_Save(AscCommon.CollaborativeEditing.m_aNewImages);
}; };
...@@ -505,7 +505,25 @@ CCollaborativeEditingBase.prototype.Check_MergeData = function() ...@@ -505,7 +505,25 @@ CCollaborativeEditingBase.prototype.Check_MergeData = function()
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
CCollaborativeEditingBase.prototype.Get_GlobalLock = function() CCollaborativeEditingBase.prototype.Get_GlobalLock = function()
{ {
return this.m_bGlobalLock; return (0 === this.m_bGlobalLock ? false : true);
};
CCollaborativeEditingBase.prototype.Set_GlobalLock = function(isLock)
{
if (isLock)
this.m_bGlobalLock++;
else
this.m_bGlobalLock = Math.max(0, this.m_bGlobalLock - 1);
};
CCollaborativeEditingBase.prototype.Set_GlobalLockSelection = function(isLock)
{
if (isLock)
this.m_bGlobalLockSelection++;
else
this.m_bGlobalLockSelection = Math.max(0, this.m_bGlobalLockSelection - 1);
};
CCollaborativeEditingBase.prototype.Get_GlobalLockSelection = function()
{
return (0 === this.m_bGlobalLockSelection ? false : true);
}; };
CCollaborativeEditingBase.prototype.OnStart_CheckLock = function() CCollaborativeEditingBase.prototype.OnStart_CheckLock = function()
{ {
......
...@@ -5466,7 +5466,7 @@ Asc['asc_docs_api'].prototype["Native_Editor_Initialize_Settings"] = function(_p ...@@ -5466,7 +5466,7 @@ Asc['asc_docs_api'].prototype["Native_Editor_Initialize_Settings"] = function(_p
if (_val === true) if (_val === true)
{ {
this.ShowParaMarks = false; this.ShowParaMarks = false;
AscCommon.CollaborativeEditing.m_bGlobalLock = true; AscCommon.CollaborativeEditing.Set_GlobalLock(true);
this.isViewMode = true; this.isViewMode = true;
this.WordControl.m_oDrawingDocument.IsViewMode = true; this.WordControl.m_oDrawingDocument.IsViewMode = true;
......
...@@ -290,8 +290,8 @@ CCollaborativeEditing.prototype.OnEnd_Load_Objects = function() ...@@ -290,8 +290,8 @@ CCollaborativeEditing.prototype.OnEnd_Load_Objects = function()
// Данная функция вызывается, когда загрузились внешние объекты (картинки и шрифты) // Данная функция вызывается, когда загрузились внешние объекты (картинки и шрифты)
// Снимаем лок // Снимаем лок
AscCommon.CollaborativeEditing.m_bGlobalLock = false; AscCommon.CollaborativeEditing.Set_GlobalLock(false);
AscCommon.CollaborativeEditing.m_bGlobalLockSelection = false; AscCommon.CollaborativeEditing.Set_GlobalLockSelection(false);
// Запускаем полный пересчет документа // Запускаем полный пересчет документа
var LogicDocument = editor.WordControl.m_oLogicDocument; var LogicDocument = editor.WordControl.m_oLogicDocument;
...@@ -335,7 +335,9 @@ CCollaborativeEditing.prototype.OnEnd_CheckLock = function() ...@@ -335,7 +335,9 @@ CCollaborativeEditing.prototype.OnEnd_CheckLock = function()
// Ставим глобальный лок, только во время совместного редактирования // Ставим глобальный лок, только во время совместного редактирования
if ( true === this.m_bUse ) if ( true === this.m_bUse )
this.m_bGlobalLock = true; {
this.Set_GlobalLock(true);
}
else else
{ {
// Пробегаемся по массиву и проставляем, что залочено нами // Пробегаемся по массиву и проставляем, что залочено нами
...@@ -389,13 +391,13 @@ CCollaborativeEditing.prototype.OnEnd_CheckLock = function() ...@@ -389,13 +391,13 @@ CCollaborativeEditing.prototype.OnEnd_CheckLock = function()
CCollaborativeEditing.prototype.OnCallback_AskLock = function(result) CCollaborativeEditing.prototype.OnCallback_AskLock = function(result)
{ {
if (true === AscCommon.CollaborativeEditing.m_bGlobalLock) if (true === AscCommon.CollaborativeEditing.Get_GlobalLock())
{ {
if (false == editor.checkLongActionCallback(AscCommon.CollaborativeEditing.OnCallback_AskLock, result)) if (false == editor.checkLongActionCallback(AscCommon.CollaborativeEditing.OnCallback_AskLock, result))
return; return;
// Снимаем глобальный лок // Снимаем глобальный лок
AscCommon.CollaborativeEditing.m_bGlobalLock = false; AscCommon.CollaborativeEditing.Set_GlobalLock(false);
if (result["lock"]) if (result["lock"])
{ {
......
...@@ -101,7 +101,7 @@ Asc['asc_docs_api'].prototype["Native_Editor_Initialize_Settings"] = function(_p ...@@ -101,7 +101,7 @@ Asc['asc_docs_api'].prototype["Native_Editor_Initialize_Settings"] = function(_p
if (_val === true) if (_val === true)
{ {
this.ShowParaMarks = false; this.ShowParaMarks = false;
AscCommon.CollaborativeEditing.m_bGlobalLock = true; AscCommon.CollaborativeEditing.Set_GlobalLock(true);
this.isViewMode = true; this.isViewMode = true;
this.WordControl.m_oDrawingDocument.IsViewMode = true; this.WordControl.m_oDrawingDocument.IsViewMode = true;
......
...@@ -5684,7 +5684,7 @@ background-repeat: no-repeat;\ ...@@ -5684,7 +5684,7 @@ background-repeat: no-repeat;\
if (!this.isViewMode && this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Theme) === false) if (!this.isViewMode && this.WordControl.m_oLogicDocument.Document_Is_SelectionLocked(AscCommon.changestype_Theme) === false)
{ {
AscCommon.CollaborativeEditing.m_bGlobalLock = true; AscCommon.CollaborativeEditing.Set_GlobalLock(true);
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_ChangeTheme); this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Presentation_ChangeTheme);
this.ThemeLoader.StartLoadTheme(indexTheme); this.ThemeLoader.StartLoadTheme(indexTheme);
} }
...@@ -5695,7 +5695,7 @@ background-repeat: no-repeat;\ ...@@ -5695,7 +5695,7 @@ background-repeat: no-repeat;\
}; };
asc_docs_api.prototype.EndLoadTheme = function(theme_load_info) asc_docs_api.prototype.EndLoadTheme = function(theme_load_info)
{ {
AscCommon.CollaborativeEditing.m_bGlobalLock = false; AscCommon.CollaborativeEditing.Set_GlobalLock(false);
// применение темы // применение темы
var _array = this.WordControl.Thumbnails.GetSelectedArray(); var _array = this.WordControl.Thumbnails.GetSelectedArray();
......
...@@ -202,8 +202,8 @@ CWordCollaborativeEditing.prototype.OnEnd_Load_Objects = function() ...@@ -202,8 +202,8 @@ CWordCollaborativeEditing.prototype.OnEnd_Load_Objects = function()
// Данная функция вызывается, когда загрузились внешние объекты (картинки и шрифты) // Данная функция вызывается, когда загрузились внешние объекты (картинки и шрифты)
// Снимаем лок // Снимаем лок
AscCommon.CollaborativeEditing.m_bGlobalLock = false; AscCommon.CollaborativeEditing.Set_GlobalLock(false);
AscCommon.CollaborativeEditing.m_bGlobalLockSelection = false; AscCommon.CollaborativeEditing.Set_GlobalLockSelection(false);
// Запускаем полный пересчет документа // Запускаем полный пересчет документа
var LogicDocument = editor.WordControl.m_oLogicDocument; var LogicDocument = editor.WordControl.m_oLogicDocument;
...@@ -265,7 +265,9 @@ CWordCollaborativeEditing.prototype.OnEnd_CheckLock = function(DontLockInFastMod ...@@ -265,7 +265,9 @@ CWordCollaborativeEditing.prototype.OnEnd_CheckLock = function(DontLockInFastMod
// Ставим глобальный лок, только во время совместного редактирования // Ставим глобальный лок, только во время совместного редактирования
if (-1 === this.m_nUseType) if (-1 === this.m_nUseType)
this.m_bGlobalLock = true; {
this.Set_GlobalLock(true);
}
else else
{ {
// Пробегаемся по массиву и проставляем, что залочено нами // Пробегаемся по массиву и проставляем, что залочено нами
...@@ -296,7 +298,7 @@ CWordCollaborativeEditing.prototype.OnCallback_AskLock = function(result) ...@@ -296,7 +298,7 @@ CWordCollaborativeEditing.prototype.OnCallback_AskLock = function(result)
var oThis = AscCommon.CollaborativeEditing; var oThis = AscCommon.CollaborativeEditing;
var oEditor = editor; var oEditor = editor;
if (true === oThis.m_bGlobalLock) if (true === oThis.Get_GlobalLock())
{ {
// Здесь проверяем есть ли длинная операция, если она есть, то до ее окончания нельзя делать // Здесь проверяем есть ли длинная операция, если она есть, то до ее окончания нельзя делать
// Undo, иначе точка истории уберется, а изменения допишутся в предыдущую. // Undo, иначе точка истории уберется, а изменения допишутся в предыдущую.
...@@ -304,7 +306,7 @@ CWordCollaborativeEditing.prototype.OnCallback_AskLock = function(result) ...@@ -304,7 +306,7 @@ CWordCollaborativeEditing.prototype.OnCallback_AskLock = function(result)
return; return;
// Снимаем глобальный лок // Снимаем глобальный лок
oThis.m_bGlobalLock = false; oThis.Set_GlobalLock(false);
if (result["lock"]) if (result["lock"])
{ {
......
...@@ -3510,7 +3510,7 @@ CDocument.prototype.RecalculateCurPos = function() ...@@ -3510,7 +3510,7 @@ CDocument.prototype.RecalculateCurPos = function()
if (true === this.TurnOffRecalcCurPos) if (true === this.TurnOffRecalcCurPos)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
this.DrawingDocument.UpdateTargetTransform(null); this.DrawingDocument.UpdateTargetTransform(null);
...@@ -3526,7 +3526,7 @@ CDocument.prototype.Internal_CheckCurPage = function() ...@@ -3526,7 +3526,7 @@ CDocument.prototype.Internal_CheckCurPage = function()
if (true === this.TurnOffRecalcCurPos) if (true === this.TurnOffRecalcCurPos)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
var nCurPage = this.Controller.GetCurPage(); var nCurPage = this.Controller.GetCurPage();
...@@ -6767,11 +6767,7 @@ CDocument.prototype.OnKeyDown = function(e) ...@@ -6767,11 +6767,7 @@ CDocument.prototype.OnKeyDown = function(e)
} }
else if (e.KeyCode == 90 && false === editor.isViewMode && true === e.CtrlKey) // Ctrl + Z - Undo else if (e.KeyCode == 90 && false === editor.isViewMode && true === e.CtrlKey) // Ctrl + Z - Undo
{ {
if (true === e.ShiftKey) this.Document_Undo();
this.CollaborativeEditing.Undo();
else
this.Document_Undo();
bRetValue = keydownresult_PreventAll; bRetValue = keydownresult_PreventAll;
} }
else if (e.KeyCode == 93 || 57351 == e.KeyCode /*в Opera такой код*/) // контекстное меню else if (e.KeyCode == 93 || 57351 == e.KeyCode /*в Opera такой код*/) // контекстное меню
...@@ -8027,7 +8023,7 @@ CDocument.prototype.Document_UpdateInterfaceState = function(bSaveCurRevisionCha ...@@ -8027,7 +8023,7 @@ CDocument.prototype.Document_UpdateInterfaceState = function(bSaveCurRevisionCha
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
// Удаляем весь список // Удаляем весь список
...@@ -8054,7 +8050,7 @@ CDocument.prototype.Document_UpdateRulersState = function() ...@@ -8054,7 +8050,7 @@ CDocument.prototype.Document_UpdateRulersState = function()
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
this.DrawingDocument.Set_RulerState_Start(); this.DrawingDocument.Set_RulerState_Start();
...@@ -8095,7 +8091,7 @@ CDocument.prototype.Document_UpdateSelectionState = function() ...@@ -8095,7 +8091,7 @@ CDocument.prototype.Document_UpdateSelectionState = function()
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
this.DrawingDocument.UpdateTargetTransform(null); this.DrawingDocument.UpdateTargetTransform(null);
...@@ -8140,7 +8136,7 @@ CDocument.prototype.Document_UpdateUndoRedoState = function() ...@@ -8140,7 +8136,7 @@ CDocument.prototype.Document_UpdateUndoRedoState = function()
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
// TODO: Возможно стоит перенсти эту проверку в класс CHistory и присылать // TODO: Возможно стоит перенсти эту проверку в класс CHistory и присылать
...@@ -8156,7 +8152,7 @@ CDocument.prototype.Document_UpdateCopyCutState = function() ...@@ -8156,7 +8152,7 @@ CDocument.prototype.Document_UpdateCopyCutState = function()
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
// Во время работы селекта не обновляем состояние // Во время работы селекта не обновляем состояние
...@@ -8170,7 +8166,7 @@ CDocument.prototype.Document_UpdateCanAddHyperlinkState = function() ...@@ -8170,7 +8166,7 @@ CDocument.prototype.Document_UpdateCanAddHyperlinkState = function()
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === AscCommon.CollaborativeEditing.m_bGlobalLockSelection) if (true === AscCommon.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
// Проверяем можно ли добавить гиперссылку // Проверяем можно ли добавить гиперссылку
...@@ -8181,7 +8177,7 @@ CDocument.prototype.Document_UpdateSectionPr = function() ...@@ -8181,7 +8177,7 @@ CDocument.prototype.Document_UpdateSectionPr = function()
if (true === this.TurnOffInterfaceEvents) if (true === this.TurnOffInterfaceEvents)
return; return;
if (true === this.CollaborativeEditing.m_bGlobalLockSelection) if (true === this.CollaborativeEditing.Get_GlobalLockSelection())
return; return;
// Обновляем ориентацию страницы // Обновляем ориентацию страницы
...@@ -8363,16 +8359,27 @@ CDocument.prototype.Document_Undo = function(Options) ...@@ -8363,16 +8359,27 @@ CDocument.prototype.Document_Undo = function(Options)
if (true === AscCommon.CollaborativeEditing.Get_GlobalLock()) if (true === AscCommon.CollaborativeEditing.Get_GlobalLock())
return; return;
this.DrawingDocument.EndTrackTable(null, true); if (true !== this.History.Can_Undo() && this.Api && this.CollaborativeEditing && true === this.CollaborativeEditing.Is_Fast() && true !== this.CollaborativeEditing.Is_SingleUser())
this.DrawingObjects.TurnOffCheckChartSelection(); {
if (this.CollaborativeEditing.CanUndo())
{
this.CollaborativeEditing.Set_GlobalLock(true);
this.Api.asc_Save(true, true);
}
}
else
{
this.DrawingDocument.EndTrackTable(null, true);
this.DrawingObjects.TurnOffCheckChartSelection();
this.History.Undo(Options); this.History.Undo(Options);
this.DrawingObjects.TurnOnCheckChartSelection(); this.DrawingObjects.TurnOnCheckChartSelection();
this.Recalculate(false, false, this.History.RecalculateData); this.Recalculate(false, false, this.History.RecalculateData);
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.Document_UpdateRulersState(); this.Document_UpdateRulersState();
}
}; };
CDocument.prototype.Document_Redo = function() CDocument.prototype.Document_Redo = function()
{ {
......
...@@ -221,12 +221,7 @@ CHistory.prototype = ...@@ -221,12 +221,7 @@ CHistory.prototype =
// Проверяем можно ли сделать Undo // Проверяем можно ли сделать Undo
if (true !== this.Can_Undo()) if (true !== this.Can_Undo())
{
if (this.Api && this.CollaborativeEditing && true === this.CollaborativeEditing.Is_Fast() && true !== this.CollaborativeEditing.Is_SingleUser())
this.Api.sync_TryUndoInFastCollaborative();
return null; return null;
}
// Запоминаем самое последнее состояние документа для Redo // Запоминаем самое последнее состояние документа для Redo
if ( this.Index === this.Points.length - 1 ) if ( this.Index === this.Points.length - 1 )
......
...@@ -279,7 +279,7 @@ CDocument.prototype.Preview_MailMergeResult = function(Index) ...@@ -279,7 +279,7 @@ CDocument.prototype.Preview_MailMergeResult = function(Index)
{ {
this.MailMergePreview = true; this.MailMergePreview = true;
this.Selection_Remove(); this.Selection_Remove();
AscCommon.CollaborativeEditing.m_bGlobalLock = true; AscCommon.CollaborativeEditing.Set_GlobalLock(true);
} }
this.FieldsManager.Update_MailMergeFields(this.MailMergeMap[Index]); this.FieldsManager.Update_MailMergeFields(this.MailMergeMap[Index]);
...@@ -293,7 +293,7 @@ CDocument.prototype.EndPreview_MailMergeResult = function() ...@@ -293,7 +293,7 @@ CDocument.prototype.EndPreview_MailMergeResult = function()
return; return;
this.MailMergePreview = false; this.MailMergePreview = false;
AscCommon.CollaborativeEditing.m_bGlobalLock = false; AscCommon.CollaborativeEditing.Set_GlobalLock(false);
this.FieldsManager.Restore_MailMergeTemplate(); this.FieldsManager.Restore_MailMergeTemplate();
this.Recalculate_FromStart(true); this.Recalculate_FromStart(true);
......
...@@ -1999,7 +1999,7 @@ background-repeat: no-repeat;\ ...@@ -1999,7 +1999,7 @@ background-repeat: no-repeat;\
asc_docs_api.prototype.asc_SelectionCut = function() asc_docs_api.prototype.asc_SelectionCut = function()
{ {
if (AscCommon.CollaborativeEditing.m_bGlobalLock) if (AscCommon.CollaborativeEditing.Get_GlobalLock())
return; return;
var _logicDoc = this.WordControl.m_oLogicDocument; var _logicDoc = this.WordControl.m_oLogicDocument;
...@@ -2016,7 +2016,7 @@ background-repeat: no-repeat;\ ...@@ -2016,7 +2016,7 @@ background-repeat: no-repeat;\
asc_docs_api.prototype.asc_PasteData = function(_format, data1, data2) asc_docs_api.prototype.asc_PasteData = function(_format, data1, data2)
{ {
if (AscCommon.CollaborativeEditing.m_bGlobalLock) if (AscCommon.CollaborativeEditing.Get_GlobalLock())
return; return;
this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_PasteHotKey); this.WordControl.m_oLogicDocument.Create_NewHistoryPoint(AscDFH.historydescription_Document_PasteHotKey);
...@@ -2033,7 +2033,7 @@ background-repeat: no-repeat;\ ...@@ -2033,7 +2033,7 @@ background-repeat: no-repeat;\
} }
}; };
asc_docs_api.prototype.onSaveCallback = function(e) asc_docs_api.prototype.onSaveCallback = function(e, isUndoRequest)
{ {
var t = this; var t = this;
if (false == e["saveLock"]) if (false == e["saveLock"])
...@@ -2086,12 +2086,20 @@ background-repeat: no-repeat;\ ...@@ -2086,12 +2086,20 @@ background-repeat: no-repeat;\
CursorInfo = History.Get_DocumentPositionBinary(); CursorInfo = History.Get_DocumentPositionBinary();
} }
// Пересылаем свои изменения if (isUndoRequest)
AscCommon.CollaborativeEditing.Send_Changes(this.IsUserSave, { {
UserId : this.CoAuthoringApi.getUserConnectionId(), AscCommon.CollaborativeEditing.Set_GlobalLock(false);
UserShortId : this.DocInfo.get_UserId(), AscCommon.CollaborativeEditing.Undo();
CursorInfo : CursorInfo }
}, HaveOtherChanges); else
{
// Пересылаем свои изменения
AscCommon.CollaborativeEditing.Send_Changes(this.IsUserSave, {
UserId : this.CoAuthoringApi.getUserConnectionId(),
UserShortId : this.DocInfo.get_UserId(),
CursorInfo : CursorInfo
}, HaveOtherChanges);
}
} }
else else
{ {
...@@ -2109,14 +2117,14 @@ background-repeat: no-repeat;\ ...@@ -2109,14 +2117,14 @@ background-repeat: no-repeat;\
{ {
t.CoAuthoringApi.askSaveChanges(function(event) t.CoAuthoringApi.askSaveChanges(function(event)
{ {
t.onSaveCallback(event); t.onSaveCallback(event, isUndoRequest);
}); });
}, TimeoutInterval); }, TimeoutInterval);
} }
} }
}; };
asc_docs_api.prototype.asc_Save = function(isAutoSave) asc_docs_api.prototype.asc_Save = function(isAutoSave, isUndoRequest)
{ {
this.IsUserSave = !isAutoSave; this.IsUserSave = !isAutoSave;
if (true === this.canSave && !this.isLongAction()) if (true === this.canSave && !this.isLongAction())
...@@ -2126,7 +2134,7 @@ background-repeat: no-repeat;\ ...@@ -2126,7 +2134,7 @@ background-repeat: no-repeat;\
var t = this; var t = this;
this.CoAuthoringApi.askSaveChanges(function(e) this.CoAuthoringApi.askSaveChanges(function(e)
{ {
t.onSaveCallback(e); t.onSaveCallback(e, isUndoRequest);
}); });
} }
}; };
...@@ -7373,7 +7381,7 @@ background-repeat: no-repeat;\ ...@@ -7373,7 +7381,7 @@ background-repeat: no-repeat;\
this.asc_SpellCheckDisconnect(); this.asc_SpellCheckDisconnect();
this.ShowParaMarks = false; this.ShowParaMarks = false;
AscCommon.CollaborativeEditing.m_bGlobalLock = true; AscCommon.CollaborativeEditing.Set_GlobalLock(true);
//this.isShowTableEmptyLine = false; //this.isShowTableEmptyLine = false;
//this.WordControl.m_bIsRuler = true; //this.WordControl.m_bIsRuler = true;
......
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