Commit 8f1310d8 authored by Igor.Zotov's avatar Igor.Zotov Committed by Alexander.Trofimov

+ к rev.61177

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@61195 954022d7-b5bf-4e40-9824-e11837661b57
parent a20d4e4d
...@@ -1503,7 +1503,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -1503,7 +1503,7 @@ var gUndoInsDelCellsFlag = true;
var aWs = this._getCurrentWS(); var aWs = this._getCurrentWS();
var ws = this.worksheet; var ws = this.worksheet;
var t = this; var t = this;
var curFilter, oldFilter, newEndId, activeCells, curCell, sortRange, filterRef; var curFilter, sortRange, filterRef, startCol;
var onSortAutoFilterCallback = function(success) var onSortAutoFilterCallback = function(success)
{ {
...@@ -1514,7 +1514,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -1514,7 +1514,7 @@ var gUndoInsDelCellsFlag = true;
History.Create_NewPoint(); History.Create_NewPoint();
History.StartTransaction(); History.StartTransaction();
oldFilter = curFilter.clone(aWs); var oldFilter = curFilter.clone(aWs);
//изменяем содержимое фильтра //изменяем содержимое фильтра
if(!curFilter.SortState) if(!curFilter.SortState)
...@@ -1527,16 +1527,21 @@ var gUndoInsDelCellsFlag = true; ...@@ -1527,16 +1527,21 @@ var gUndoInsDelCellsFlag = true;
if(!curFilter.SortState.SortConditions[0]) if(!curFilter.SortState.SortConditions[0])
curFilter.SortState.SortConditions[0] = new SortCondition(); curFilter.SortState.SortConditions[0] = new SortCondition();
curFilter.SortState.SortConditions[0].Ref = cellId + ":" + newEndId; var cellIdRange = new Asc.Range(startCol, filterRef.r1, startCol, filterRef.r1);
var sortCol = new Asc.Range(startCol, filterRef.r1, startCol, filterRef.r2);
curFilter.SortState.SortConditions[0].Ref = sortCol.getName();
curFilter.SortState.SortConditions[0].ConditionDescending = type; curFilter.SortState.SortConditions[0].ConditionDescending = type;
cellId = t._rangeToId(cellIdRange);
//сама сортировка //сама сортировка
ws.cellCommentator.sortComments(sortRange.sort(type, activeCells.c1)); ws.cellCommentator.sortComments(sortRange.sort(type, startCol));
if(curFilter.TableStyleInfo) if(curFilter.TableStyleInfo)
t._setColorStyleTable(curFilter.Ref, curFilter); t._setColorStyleTable(curFilter.Ref, curFilter);
t._addHistoryObj(oldFilter, historyitem_AutoFilter_Sort, t._addHistoryObj(oldFilter, historyitem_AutoFilter_Sort,
{activeCells: activeCells, type: type, cellId: cellId}, null, curFilter.Ref); {activeCells: cellIdRange, type: type, cellId: cellId}, null, curFilter.Ref);
History.EndTransaction(); History.EndTransaction();
if(!aWs.workbook.bUndoChanges && !aWs.workbook.bRedoChanges) if(!aWs.workbook.bUndoChanges && !aWs.workbook.bRedoChanges)
...@@ -1572,8 +1577,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -1572,8 +1577,7 @@ var gUndoInsDelCellsFlag = true;
//в данному случае может быть захвачен а/ф, если он присутвует(надо проверить), либо нажата кнопка а/ф //в данному случае может быть захвачен а/ф, если он присутвует(надо проверить), либо нажата кнопка а/ф
if(curFilter && (filterRef.isEqual(activeRange) || cellId)) if(curFilter && (filterRef.isEqual(activeRange) || cellId))
{ {
if(!cellId) startCol = activeRange.startCol;
cellId = Asc.Range(activeRange.startCol, filterRef.r1, activeRange.startCol, filterRef.r1);
} }
else//внутри а/ф либо без а/ф либо часть а/ф else//внутри а/ф либо без а/ф либо часть а/ф
{ {
...@@ -1588,22 +1592,10 @@ var gUndoInsDelCellsFlag = true; ...@@ -1588,22 +1592,10 @@ var gUndoInsDelCellsFlag = true;
filterRef = curFilter.Ref; filterRef = curFilter.Ref;
if(!cellId && filterRef.r1 == activeRange.r1 && filterRef.c1 == activeRange.c1 && filterRef.r2 == activeRange.r2 && filterRef.c2 == activeRange.c2)//если выделен вся ф/т if(!cellId && filterRef.r1 == activeRange.r1 && filterRef.c1 == activeRange.c1 && filterRef.r2 == activeRange.r2 && filterRef.c2 == activeRange.c2)//если выделен вся ф/т
{ startCol = activeRange.startCol;
cellId = Asc.Range(activeRange.startCol, filterRef.r1, activeRange.startCol, filterRef.r1);
}
else if(!cellId && filterRef.containsRange(activeRange))//если находимся внутри ф/т else if(!cellId && filterRef.containsRange(activeRange))//если находимся внутри ф/т
{ startCol = activeRange.startCol;
cellId = Asc.Range(activeRange.startCol, filterRef.r1, activeRange.startCol, filterRef.r1);
} }
}
//TODO преобразование range - строка. позже избваиться от преобразования, ref при открытии преобразовать в range
if(typeof cellId !== "string")
cellId = t._rangeToId(cellId);
activeCells = t._idToRange(cellId);
newEndId = t._rangeToId(new Asc.Range(activeCells.c1, filterRef.r1, activeCells.c2, activeCells.r2));
sortRange = ws.model.getRange3(filterRef.r1 + 1, filterRef.c1, filterRef.r2, filterRef.c2); sortRange = ws.model.getRange3(filterRef.r1 + 1, filterRef.c1, filterRef.r2, filterRef.c2);
if(isTurnOffHistory) if(isTurnOffHistory)
......
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