Commit ebb92476 authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

Реализована возможность откатывать все действия в истории сразу.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@62413 954022d7-b5bf-4e40-9824-e11837661b57
parent 9d602752
...@@ -12248,7 +12248,7 @@ CDocument.prototype = ...@@ -12248,7 +12248,7 @@ CDocument.prototype =
this.History.Create_NewPoint(Description); this.History.Create_NewPoint(Description);
}, },
Document_Undo : function() Document_Undo : function(Options)
{ {
if ( true === CollaborativeEditing.Get_GlobalLock() ) if ( true === CollaborativeEditing.Get_GlobalLock() )
return; return;
...@@ -12256,7 +12256,7 @@ CDocument.prototype = ...@@ -12256,7 +12256,7 @@ CDocument.prototype =
this.DrawingDocument.EndTrackTable( null, true ); this.DrawingDocument.EndTrackTable( null, true );
this.DrawingObjects.TurnOffCheckChartSelection(); this.DrawingObjects.TurnOffCheckChartSelection();
this.History.Undo(); this.History.Undo(Options);
this.DrawingObjects.TurnOnCheckChartSelection(); this.DrawingObjects.TurnOnCheckChartSelection();
this.Recalculate( false, false, this.History.RecalculateData ); this.Recalculate( false, false, this.History.RecalculateData );
......
...@@ -137,7 +137,7 @@ CHistory.prototype = ...@@ -137,7 +137,7 @@ CHistory.prototype =
return false; return false;
}, },
Undo : function() Undo : function(Options)
{ {
this.Check_UninonLastPoints(); this.Check_UninonLastPoints();
...@@ -154,19 +154,39 @@ CHistory.prototype = ...@@ -154,19 +154,39 @@ CHistory.prototype =
this.Document.Selection_Remove(); this.Document.Selection_Remove();
var Point = this.Points[this.Index--];
this.Internal_RecalcData_Clear(); this.Internal_RecalcData_Clear();
// Откатываем все действия в обратном порядке (относительно их выполенения) var Point = null;
for ( var Index = Point.Items.length - 1; Index >= 0; Index-- ) if (undefined !== Options && null !== Options && true === Options.All)
{ {
var Item = Point.Items[Index]; while (this.Index >= 0)
Item.Class.Undo( Item.Data ); {
Item.Class.Refresh_RecalcData( Item.Data ); Point = this.Points[this.Index--];
// Откатываем все действия в обратном порядке (относительно их выполенения)
for (var Index = Point.Items.length - 1; Index >= 0; Index--)
{
var Item = Point.Items[Index];
Item.Class.Undo(Item.Data);
Item.Class.Refresh_RecalcData(Item.Data);
}
}
}
else
{
Point = this.Points[this.Index--];
// Откатываем все действия в обратном порядке (относительно их выполенения)
for (var Index = Point.Items.length - 1; Index >= 0; Index--)
{
var Item = Point.Items[Index];
Item.Class.Undo(Item.Data);
Item.Class.Refresh_RecalcData(Item.Data);
}
} }
this.Document.Set_SelectionState( Point.State ); if (null != Point)
this.Document.Set_SelectionState( Point.State );
return this.RecalculateData; return this.RecalculateData;
}, },
......
...@@ -7587,8 +7587,9 @@ asc_docs_api.prototype.asc_showRevision = function () { ...@@ -7587,8 +7587,9 @@ asc_docs_api.prototype.asc_showRevision = function () {
// ToDo Add code load file with changes // ToDo Add code load file with changes
} }
}; };
asc_docs_api.prototype.asc_undoAllChanges = function () { asc_docs_api.prototype.asc_undoAllChanges = function ()
// ToDo Add code here {
this.WordControl.m_oLogicDocument.Document_Undo({All : true});
}; };
window["asc_docs_api"] = asc_docs_api; window["asc_docs_api"] = asc_docs_api;
......
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