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

http://bugzserver/show_bug.cgi?id=27767 - Потеря кнопки автофильтра у одной из...

http://bugzserver/show_bug.cgi?id=27767 - Потеря кнопки автофильтра у одной из двух форматированных таблиц после вставки строк со сдвигом 

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@60491 954022d7-b5bf-4e40-9824-e11837661b57
parent 3f556c1d
...@@ -1373,6 +1373,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -1373,6 +1373,7 @@ var gUndoInsDelCellsFlag = true;
this._addToHistoryFromTempObj(); this._addToHistoryFromTempObj();
this._changeFiltersApply(); this._changeFiltersApply();
this._updateButtonArray();
}, },
//при вставке пользователем строки изменяем фильтры //при вставке пользователем строки изменяем фильтры
insertRows: function(type, val, insertType) insertRows: function(type, val, insertType)
...@@ -1407,6 +1408,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -1407,6 +1408,7 @@ var gUndoInsDelCellsFlag = true;
this._addToHistoryFromTempObj(); this._addToHistoryFromTempObj();
this._changeFiltersApply(); this._changeFiltersApply();
this._updateButtonArray();
}, },
_addToHistoryFromTempObj: function() _addToHistoryFromTempObj: function()
...@@ -5380,7 +5382,6 @@ var gUndoInsDelCellsFlag = true; ...@@ -5380,7 +5382,6 @@ var gUndoInsDelCellsFlag = true;
var aWs = this._getCurrentWS(); var aWs = this._getCurrentWS();
var filter; var filter;
var filterColums; var filterColums;
var buttons = this.allButtonAF;
if(cRange.index == 'all') if(cRange.index == 'all')
{ {
filter = aWs.AutoFilter.clone(aWs); filter = aWs.AutoFilter.clone(aWs);
...@@ -5424,7 +5425,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -5424,7 +5425,7 @@ var gUndoInsDelCellsFlag = true;
//change result into filter and change info in button //change result into filter and change info in button
if(filter.result && filter.result.length > 0) if(filter.result && filter.result.length > 0)
{ {
var insertIndexes = []; //var insertIndexes = [];
for(var filR = 0; filR < filter.result.length; filR++) for(var filR = 0; filR < filter.result.length; filR++)
{ {
var curFilter = filter.result[filR]; var curFilter = filter.result[filR];
...@@ -5454,20 +5455,7 @@ var gUndoInsDelCellsFlag = true; ...@@ -5454,20 +5455,7 @@ var gUndoInsDelCellsFlag = true;
var id = this._rangeToId(newFirstCol); var id = this._rangeToId(newFirstCol);
var nextId = this._rangeToId(newNextCol); var nextId = this._rangeToId(newNextCol);
if(buttons && buttons.length && ((filter.TableColumns && filter.TableColumns.length && filter.AutoFilter) || (!filter.TableColumns)))//либо а/ф, либо форматированная таблицы с примененным фильтром
{
for(var b = 0; b < buttons.length; b++)
{
if(buttons[b].id == curFilter.id && !insertIndexes[b])
{
buttons[b].inFilter = filter.Ref;
buttons[b].id = id;
buttons[b].idNext = nextId;
insertIndexes[b] = true;
break;
}
}
}
curFilter.inFilter = filter.Ref; curFilter.inFilter = filter.Ref;
curFilter.id = id; curFilter.id = id;
curFilter.idNext = nextId; curFilter.idNext = nextId;
...@@ -5572,15 +5560,11 @@ var gUndoInsDelCellsFlag = true; ...@@ -5572,15 +5560,11 @@ var gUndoInsDelCellsFlag = true;
newResult[n].hiddenRows = []; newResult[n].hiddenRows = [];
var num = 1;
if(filter.AutoFilter !== null)
this._changeContentButton(newResult[n],num,'add',inFilter);
n++; n++;
} }
if(val < 0)//удаляем кнопки в случае удаления ячеек if(val < 0)//удаляем кнопки в случае удаления ячеек
{ {
this._changeContentButton(curFilter,Math.abs(val),'del',inFilter);
//убираем примененный фильтр //убираем примененный фильтр
if(filterColums) if(filterColums)
{ {
...@@ -5648,7 +5632,6 @@ var gUndoInsDelCellsFlag = true; ...@@ -5648,7 +5632,6 @@ var gUndoInsDelCellsFlag = true;
newResult[n] = curFilter; newResult[n] = curFilter;
var oldId = curFilter.id; var oldId = curFilter.id;
this._changeContentButton(newResult[n], null,'change', null, oldId);
n++; n++;
} }
else else
...@@ -5675,9 +5658,6 @@ var gUndoInsDelCellsFlag = true; ...@@ -5675,9 +5658,6 @@ var gUndoInsDelCellsFlag = true;
curFilter.idNext = nextId; curFilter.idNext = nextId;
newResult[n] = curFilter; newResult[n] = curFilter;
if(type == 'insCol')
this._changeContentButton(newResult[n], null,'change', null, oldId);
//смещаем примененный фильтр(у filter.FilterColumns просматриваем colId) //смещаем примененный фильтр(у filter.FilterColumns просматриваем colId)
if(filterColums) if(filterColums)
{ {
...@@ -5696,14 +5676,6 @@ var gUndoInsDelCellsFlag = true; ...@@ -5696,14 +5676,6 @@ var gUndoInsDelCellsFlag = true;
} }
} }
if(type == 'insCol' && filter.AutoFilter !== null)
{
for(var n = 0; n < newResult.length; n++)
{
this._changeContentButton(newResult[n], 1, 'add', inFilter);
}
}
if(cloneFilterColums) if(cloneFilterColums)
{ {
if(cRange.index == 'all') if(cRange.index == 'all')
...@@ -5766,9 +5738,6 @@ var gUndoInsDelCellsFlag = true; ...@@ -5766,9 +5738,6 @@ var gUndoInsDelCellsFlag = true;
filter.result = newResult; filter.result = newResult;
filter.Ref = inFilter; filter.Ref = inFilter;
if(val > 0)
this._addButtonAF(newResult);
return filter; return filter;
} }
}, },
...@@ -7611,6 +7580,44 @@ var gUndoInsDelCellsFlag = true; ...@@ -7611,6 +7580,44 @@ var gUndoInsDelCellsFlag = true;
} }
return result; return result;
},
_updateButtonArray: function()
{
var aWs = this._getCurrentWS();
this.allButtonAF = [];
if(aWs.AutoFilter)
{
var n = 0;
for(var i = 0; i < aWs.AutoFilter.result.length; i++)
{
this.allButtonAF[n] = aWs.AutoFilter.result[i].clone();
this.allButtonAF[n].inFilter = aWs.AutoFilter.Ref.clone();
n++;
}
}
if(aWs.TableParts && aWs.TableParts.length)
{
for(var i = 0; i < aWs.TableParts.length; i++)
{
if(aWs.TableParts[i] && aWs.TableParts[i].AutoFilter)
{
var tablePart = aWs.TableParts[i];
var n = this.allButtonAF.length;
for(var j = 0; j < tablePart.result.length; j++)
{
if(tablePart.result[j].showButton != false)
{
this.allButtonAF[n] = tablePart.result[j].clone();
this.allButtonAF[n].inFilter = tablePart.Ref.clone();
n++;
}
}
}
}
}
} }
}; };
......
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