Commit 6f60fee1 authored by Dmitry.Vikulov's avatar Dmitry.Vikulov Committed by Alexander.Trofimov

Fix Bug 21651 - [Charts] Не перерисовывается диаграмма при удалении листа, на...

Fix Bug 21651 - [Charts] Не перерисовывается диаграмма при удалении листа, на который ссылаются данные диаграммы

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@52933 954022d7-b5bf-4e40-9824-e11837661b57
parent e94dcd1b
...@@ -4386,10 +4386,19 @@ function DrawingObjects() { ...@@ -4386,10 +4386,19 @@ function DrawingObjects() {
_this.updateChartReferences = function(oldWorksheet, newWorksheet) { _this.updateChartReferences = function(oldWorksheet, newWorksheet) {
History.Create_NewPoint();
History.StartTransaction();
for (var i = 0; i < aObjects.length; i++) { for (var i = 0; i < aObjects.length; i++) {
var graphicObject = aObjects[i].graphicObject; var graphicObject = aObjects[i].graphicObject;
if ( graphicObject.isChart() && (graphicObject.chart.range.interval.indexOf(oldWorksheet) == 0) ) { if ( graphicObject.isChart() && (graphicObject.chart.range.interval.indexOf(oldWorksheet) == 0) ) {
var _interval = graphicObject.chart.range.interval;
graphicObject.chart.range.interval = graphicObject.chart.range.interval.replace(oldWorksheet, newWorksheet); graphicObject.chart.range.interval = graphicObject.chart.range.interval.replace(oldWorksheet, newWorksheet);
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformUndo, null, null, new UndoRedoDataGraphicObjects(graphicObject.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
History.Add(g_oUndoRedoGraphicObjects, historyitem_Chart_RangeInterval, null, null, new UndoRedoDataGraphicObjects(graphicObject.chart.Get_Id(), new UndoRedoDataGOSingleProp(_interval, graphicObject.chart.range.interval)));
History.Add(g_oUndoRedoGraphicObjects, historyitem_AutoShapes_RecalculateTransformRedo, null, null, new UndoRedoDataGraphicObjects(graphicObject.chart.Get_Id(), new UndoRedoDataGOSingleProp(null, null)));
var _range = convertFormula(graphicObject.chart.range.interval, worksheet); var _range = convertFormula(graphicObject.chart.range.interval, worksheet);
if ( _range ) { if ( _range ) {
graphicObject.chart.range.intervalObject = _range; graphicObject.chart.range.intervalObject = _range;
...@@ -4398,6 +4407,7 @@ function DrawingObjects() { ...@@ -4398,6 +4407,7 @@ function DrawingObjects() {
} }
} }
} }
History.EndTransaction();
} }
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
......
...@@ -2069,20 +2069,33 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -2069,20 +2069,33 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
return false; return false;
var i = this.wbModel.getActive(); var i = this.wbModel.getActive();
var activeName = this.wbModel.getWorksheet(i).sName;
var sheetId = this.wbModel.getWorksheet(i).getId(); var sheetId = this.wbModel.getWorksheet(i).getId();
var lockInfo = this.collaborativeEditing.getLockInfo(c_oAscLockTypeElem.Sheet, /*subType*/null, sheetId, sheetId); var lockInfo = this.collaborativeEditing.getLockInfo(c_oAscLockTypeElem.Sheet, /*subType*/null, sheetId, sheetId);
var t = this; var t = this;
var deleteCallback = function (res) { var deleteCallback = function (res) {
if (res) { if (res) {
History.Create_NewPoint();
History.StartTransaction();
// Нужно проверить все диаграммы, ссылающиеся на удаляемый лист
for (var key in t.wb.wsViews) {
var ws = t.wb.wsViews[key];
ws.objectRender.updateChartReferences(activeName, ws.model.sName);
}
// Удаляем Worksheet и получаем новый активный индекс (-1 означает, что ничего не удалилось) // Удаляем Worksheet и получаем новый активный индекс (-1 означает, что ничего не удалилось)
var activeNow = t.wbModel.removeWorksheet(i); var activeNow = t.wbModel.removeWorksheet(i);
if (-1 !== activeNow){ if (-1 !== activeNow){
t.wb.removeWorksheet(i); t.wb.removeWorksheet(i);
t.asc_showWorksheet (activeNow); t.asc_showWorksheet(activeNow);
// Посылаем callback об изменении списка листов // Посылаем callback об изменении списка листов
t.sheetsChanged(); t.sheetsChanged();
} }
History.EndTransaction();
} }
}; };
......
...@@ -1120,8 +1120,7 @@ ...@@ -1120,8 +1120,7 @@
} }
}, },
updateWorksheetByModel : function() updateWorksheetByModel : function() {
{
//расставляем ws так как они идут в модели. //расставляем ws так как они идут в модели.
var oNewWsViews = new Array(); var oNewWsViews = new Array();
for(var i in this.wsViews) for(var i in this.wsViews)
......
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