Commit 3272c457 authored by Igor.Zotov's avatar Igor.Zotov Committed by Alexander.Trofimov

http://bugzserver/show_bug.cgi?id=27340 - [CoEdit] Ошибка в консоли при...

http://bugzserver/show_bug.cgi?id=27340 -  [CoEdit] Ошибка в консоли при скрытии данных через неверно расположенную кнопку автофильтра, которая была получена после удаления строк и применения undo (edit)
изменил undo для удаления/добавления строк в форматированные таблицы/автофильтры

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@59518 954022d7-b5bf-4e40-9824-e11837661b57
parent 7ae87a2e
...@@ -3020,7 +3020,7 @@ UndoRedoWoorksheet.prototype = { ...@@ -3020,7 +3020,7 @@ UndoRedoWoorksheet.prototype = {
// ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить) // ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить)
worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId); worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId);
if(gUndoInsDelCellsFlag) if(!bUndo)
worksheetView.autoFilters.insertRows(bInsert ? "insCell" : "delCell", range, operType); worksheetView.autoFilters.insertRows(bInsert ? "insCell" : "delCell", range, operType);
worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range); worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range);
} }
...@@ -3059,7 +3059,7 @@ UndoRedoWoorksheet.prototype = { ...@@ -3059,7 +3059,7 @@ UndoRedoWoorksheet.prototype = {
// ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить) // ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить)
worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId); worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId);
if(gUndoInsDelCellsFlag) if(!bUndo)
worksheetView.autoFilters.insertColumn(bInsert ? "insCell" : "delCell", range, operType); worksheetView.autoFilters.insertColumn(bInsert ? "insCell" : "delCell", range, operType);
worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range); worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range);
} }
...@@ -3098,7 +3098,7 @@ UndoRedoWoorksheet.prototype = { ...@@ -3098,7 +3098,7 @@ UndoRedoWoorksheet.prototype = {
// ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить) // ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить)
worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId); worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId);
if(gUndoInsDelCellsFlag) if(!bUndo)
worksheetView.autoFilters.insertColumn(bInsert ? "insCell" : "delCell", range.bbox, operType); worksheetView.autoFilters.insertColumn(bInsert ? "insCell" : "delCell", range.bbox, operType);
worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range.bbox); worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range.bbox);
} }
...@@ -3137,7 +3137,7 @@ UndoRedoWoorksheet.prototype = { ...@@ -3137,7 +3137,7 @@ UndoRedoWoorksheet.prototype = {
// ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить) // ToDo Так делать неправильно, нужно поправить (перенести логику в model, а отрисовку отделить)
worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId); worksheetView = this.wb.oApi.wb.getWorksheetById(nSheetId);
if(gUndoInsDelCellsFlag) if(!bUndo)
worksheetView.autoFilters.insertRows(bInsert ? "insCell" : "delCell",range.bbox, operType); worksheetView.autoFilters.insertRows(bInsert ? "insCell" : "delCell",range.bbox, operType);
worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range.bbox); worksheetView.cellCommentator.updateCommentsDependencies(bInsert, operType, range.bbox);
} }
......
...@@ -1946,6 +1946,32 @@ var gUndoInsDelCellsFlag = true; ...@@ -1946,6 +1946,32 @@ var gUndoInsDelCellsFlag = true;
} }
} }
} }
else if(cloneData.oldFilter && cloneData.newFilterRef)//при наличии newFilterRef
{
if(aWs.AutoFilter && cloneData.newFilterRef && cloneData.newFilterRef.isEqual(aWs.AutoFilter.Ref))
{
aWs.AutoFilter = cloneData.oldFilter;
this._addButtonAF({result: cloneData.oldFilter.result,isVis: true});
}
else if(aWs.TableParts)
{
for(var l = 0; l < aWs.TableParts.length; l++)
{
if(cloneData.newFilterRef && cloneData.newFilterRef.isEqual(aWs.TableParts[l].Ref))
{
aWs.TableParts[l] = cloneData.oldFilter;
if(aWs.TableParts[l].AutoFilter != null)
this._addButtonAF({result: cloneData.oldFilter.result,isVis: true});
var splitRange = cloneData.oldFilter.Ref;
this._setColorStyleTable(splitRange, cloneData.oldFilter, null, true);
this._checkShowButtonsFlag(aWs.TableParts[l]);
break;
}
}
}
}
else if(cloneData.oldFilter)//в случае удаления/добавления строк else if(cloneData.oldFilter)//в случае удаления/добавления строк
{ {
if(aWs.AutoFilter && cloneData.oldFilter.Ref.isIntersect(aWs.AutoFilter.Ref)) if(aWs.AutoFilter && cloneData.oldFilter.Ref.isIntersect(aWs.AutoFilter.Ref))
...@@ -2246,8 +2272,13 @@ var gUndoInsDelCellsFlag = true; ...@@ -2246,8 +2272,13 @@ var gUndoInsDelCellsFlag = true;
ws.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.AutoFilterChangeFormatTableError, c_oAscError.Level.NoCritical); ws.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.AutoFilterChangeFormatTableError, c_oAscError.Level.NoCritical);
return false; return false;
} }
else if(activeCells.r1 < tableRange.r1 && activeCells.r2 >= tableRange.r1 && activeCells.r2 < tableRange.r2)//TODO заглушка!!!
{
ws.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.AutoFilterChangeFormatTableError, c_oAscError.Level.NoCritical);
return false;
} }
else if(DeleteColumns && activeCells.c1 < tableRange.c1 && activeCells.c2 > tableRange.c1 && activeCells.c2 < tableRange.c2)//TODO заглушка!!! }
else if(DeleteColumns && activeCells.c1 < tableRange.c1 && activeCells.c2 >= tableRange.c1 && activeCells.c2 < tableRange.c2)//TODO заглушка!!!
{ {
ws.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.AutoFilterChangeFormatTableError, c_oAscError.Level.NoCritical); ws.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.AutoFilterChangeFormatTableError, c_oAscError.Level.NoCritical);
return false; return false;
...@@ -5055,7 +5086,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -5055,7 +5086,7 @@ var gUndoInsDelCellsFlag = true;
var val2 = colStart - startRangeCell; var val2 = colStart - startRangeCell;
var retVal = this._editFilterAfterInsertColumn(range, valNew, startRangeCell, type, activeCells); var retVal = this._editFilterAfterInsertColumn(range, valNew, startRangeCell, type, activeCells);
if(!retVal) if(!retVal)
this._editFilterAfterInsertColumn(range,val2,undefined,type,activeCells); this._editFilterAfterInsertColumn(range,val2,undefined,type,activeCells, true);
} }
else else
{ {
...@@ -5088,7 +5119,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -5088,7 +5119,7 @@ var gUndoInsDelCellsFlag = true;
}, },
//change current filter after insert column //change current filter after insert column
_editFilterAfterInsertColumn: function(cRange,val,col,type,activeCells) _editFilterAfterInsertColumn: function(cRange,val,col,type,activeCells, notAddToHistory)
{ {
var bUndoChanges = this.worksheet.model.workbook.bUndoChanges; var bUndoChanges = this.worksheet.model.workbook.bUndoChanges;
var bRedoChanges = this.worksheet.model.workbook.bRedoChanges; var bRedoChanges = this.worksheet.model.workbook.bRedoChanges;
...@@ -5248,21 +5279,22 @@ var gUndoInsDelCellsFlag = true; ...@@ -5248,21 +5279,22 @@ var gUndoInsDelCellsFlag = true;
//change result into filter and change info in button //change result into filter and change info in button
filter = this._changeInfoFilterAfterInsertCols(filter, type, col, cRange, val, filterColums); filter = this._changeInfoFilterAfterInsertCols(filter, type, col, cRange, val, filterColums);
}
//записываем в историю, если активная область касается данных фильтров //записываем в историю, если активная область касается данных фильтров
if(!bUndoChanges && !bRedoChanges && val < 0) if(!bUndoChanges && !bRedoChanges && !notAddToHistory)
{ {
History.TurnOn(); History.TurnOn();
//History.Create_NewPoint(); //History.Create_NewPoint();
History.StartTransaction(); History.StartTransaction();
var changeElement = var changeElement =
{ {
oldFilter: oldFilter oldFilter: oldFilter,
newFilterRef: filter.Ref
}; };
this._addHistoryObj(changeElement, null, null, true, oldFilter.Ref); this._addHistoryObj(changeElement, null, null, true, oldFilter.Ref);
History.EndTransaction(); History.EndTransaction();
} }
}
if(cRange.index == 'all') if(cRange.index == 'all')
{ {
......
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