Commit c41f33f1 authored by GoshaZotov's avatar GoshaZotov

modify WorksheetView.prototype.addAutoFilter

parent bc659c1c
...@@ -11851,74 +11851,66 @@ ...@@ -11851,74 +11851,66 @@
this.arrActiveFormulaRanges = []; this.arrActiveFormulaRanges = [];
}; };
WorksheetView.prototype.addAutoFilter = function (styleName, addFormatTableOptionsObj) { WorksheetView.prototype.addAutoFilter = function (styleName, addFormatTableOptionsObj) {
// Проверка глобального лока // Проверка глобального лока
if (this.collaborativeEditing.getGlobalLock()) { if (this.collaborativeEditing.getGlobalLock()) {
return; return;
} }
if (!this.handlers.trigger("getLockDefNameManagerStatus")) {
this.handlers.trigger("onErrorEvent", c_oAscError.ID.LockCreateDefName, c_oAscError.Level.NoCritical);
return;
}
var t = this;
var ar = this.model.selectionRange.getLast().clone();
var isChangeAutoFilterToTablePart = function (addFormatTableOptionsObj) { if (!this.handlers.trigger("getLockDefNameManagerStatus")) {
var res = false; this.handlers.trigger("onErrorEvent", c_oAscError.ID.LockCreateDefName, c_oAscError.Level.NoCritical);
var worksheet = t.model; return;
}
var activeRange = AscCommonExcel.g_oRangeCache.getAscRange(addFormatTableOptionsObj.asc_getRange()); var t = this;
if (activeRange && worksheet.AutoFilter && activeRange.containsRange(worksheet.AutoFilter.Ref) && var ar = this.model.selectionRange.getLast().clone();
activeRange.r1 === worksheet.AutoFilter.Ref.r1) {
res = true;
}
return res; var isChangeAutoFilterToTablePart = function (addFormatTableOptionsObj) {
}; var res = false;
var worksheet = t.model;
var onChangeAutoFilterCallback = function (isSuccess) { var activeRange = AscCommonExcel.g_oRangeCache.getAscRange(addFormatTableOptionsObj.asc_getRange());
if (false === isSuccess) { if (activeRange && worksheet.AutoFilter && activeRange.containsRange(worksheet.AutoFilter.Ref) &&
t.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.LockedAllError, activeRange.r1 === worksheet.AutoFilter.Ref.r1) {
c_oAscError.Level.NoCritical); res = true;
t.handlers.trigger("selectionChanged"); }
return;
}
var addFilterCallBack, addNameColumn, filterRange; return res;
if (addFormatTableOptionsObj && isChangeAutoFilterToTablePart(addFormatTableOptionsObj) === true)//CHANGE FILTER TO TABLEPART };
{
filterRange = t.model.AutoFilter.Ref.clone();
addFilterCallBack = function () { var filterRange, bIsChangeFilterToTable, addNameColumn;
History.Create_NewPoint(); var onChangeAutoFilterCallback = function (isSuccess) {
History.StartTransaction(); if (false === isSuccess) {
t.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.LockedAllError,
c_oAscError.Level.NoCritical);
t.handlers.trigger("selectionChanged");
return;
}
t.model.autoFilters.changeAutoFilterToTablePart(styleName, ar, addFormatTableOptionsObj); var addFilterCallBack;
t._onUpdateFormatTable(filterRange, !!(styleName), true); if (bIsChangeFilterToTable)//CHANGE FILTER TO TABLEPART
{
addFilterCallBack = function () {
History.Create_NewPoint();
History.StartTransaction();
History.EndTransaction(); t.model.autoFilters.changeAutoFilterToTablePart(styleName, ar, addFormatTableOptionsObj);
}; t._onUpdateFormatTable(filterRange, !!(styleName), true);
addNameColumn = false; History.EndTransaction();
if (addFormatTableOptionsObj === false) { };
addNameColumn = true;
} else if (typeof addFormatTableOptionsObj == 'object') {
addNameColumn = !addFormatTableOptionsObj.asc_getIsTitle();
}
if (addNameColumn) {
filterRange.r2 = filterRange.r2 + 1;
}
t._isLockedCells(filterRange, /*subType*/null, addFilterCallBack); if (addNameColumn) {
} else//ADD filterRange.r2 = filterRange.r2 + 1;
}
t._isLockedCells(filterRange, /*subType*/null, addFilterCallBack);
} else//ADD
{ {
addFilterCallBack = function () { addFilterCallBack = function () {
History.Create_NewPoint(); History.Create_NewPoint();
History.StartTransaction(); History.StartTransaction();
if(null !== styleName) { if (null !== styleName) {
t.handlers.trigger("slowOperation", true); t.handlers.trigger("slowOperation", true);
} }
...@@ -11931,33 +11923,52 @@ ...@@ -11931,33 +11923,52 @@
} }
t._onUpdateFormatTable(filterRange, !!(styleName), true); t._onUpdateFormatTable(filterRange, !!(styleName), true);
if(null !== styleName) { if (null !== styleName) {
t.handlers.trigger("slowOperation", false); t.handlers.trigger("slowOperation", false);
} }
History.EndTransaction(); History.EndTransaction();
}; };
if (styleName === null) { if (styleName === null) {
addFilterCallBack(); addFilterCallBack();
} else { } else {
var filterInfo = t.model.autoFilters._getFilterInfoByAddTableProps(ar, addFormatTableOptionsObj); t._isLockedCells(filterRange, null, addFilterCallBack)
filterRange = filterInfo.filterRange; }
addNameColumn = filterInfo.addNameColumn; }
};
t._isLockedCells(filterRange, null, addFilterCallBack) //calculate filter range
} if (addFormatTableOptionsObj && isChangeAutoFilterToTablePart(addFormatTableOptionsObj) === true) {
} filterRange = t.model.AutoFilter.Ref.clone();
};
if (t._checkAddAutoFilter(ar, styleName, addFormatTableOptionsObj) === true) { addNameColumn = false;
this._isLockedAll(onChangeAutoFilterCallback); if (addFormatTableOptionsObj === false) {
this._isLockedDefNames(null, null); addNameColumn = true;
} else//для того, чтобы в случае ошибки кнопка отжималась! } else if (typeof addFormatTableOptionsObj == 'object') {
{ addNameColumn = !addFormatTableOptionsObj.asc_getIsTitle();
t.handlers.trigger("selectionChanged"); }
}
}; bIsChangeFilterToTable = true;
} else {
if (styleName === null) {
filterRange = ar;
} else {
var filterInfo = t.model.autoFilters._getFilterInfoByAddTableProps(ar, addFormatTableOptionsObj, true);
filterRange = filterInfo.filterRange;
addNameColumn = filterInfo.addNameColumn;
}
}
var checkFilterRange = filterInfo ? filterInfo.rangeWithoutDiff : filterRange;
if (t._checkAddAutoFilter(checkFilterRange, styleName, addFormatTableOptionsObj) === true) {
this._isLockedAll(onChangeAutoFilterCallback);
this._isLockedDefNames(null, null);
} else//для того, чтобы в случае ошибки кнопка отжималась!
{
t.handlers.trigger("selectionChanged");
}
};
WorksheetView.prototype.changeAutoFilter = function (tableName, optionType, val) { WorksheetView.prototype.changeAutoFilter = function (tableName, optionType, val) {
// Проверка глобального лока // Проверка глобального лока
......
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