[SSE] AutoFilterDialog: рефакторинг, использовать setupDataCells вместо setupListCells.

This commit is contained in:
Julia Radzhabova 2016-04-15 17:57:26 +03:00
parent ff4ff15f16
commit 4f46e5edfd

View file

@ -603,7 +603,8 @@ define([
this.cellsList.onKeyDown = _.bind(this.onListKeyDown, this); this.cellsList.onKeyDown = _.bind(this.onListKeyDown, this);
} }
this.setupListCells(); this.setupDataCells();
this._setDefaults();
}, },
show: function () { show: function () {
@ -826,72 +827,13 @@ define([
this.config = config; this.config = config;
this.configTo = config; this.configTo = config;
}, },
setupListCells: function () {
// TODO: рефакторинг, использовать setupDataCells(); _setDefaults: function() {
var isCustomFilter = (this.configTo.asc_getFilterObj().asc_getType() === Asc.c_oAscAutoFilterTypes.CustomFilters);
function isNumeric(value) {
return !isNaN(parseFloat(value)) && isFinite(value);
}
var me = this, isnumber, value, index = 0, haveUnselectedCell = false,
throughIndex = 1,
isCustomFilter = (this.configTo.asc_getFilterObj().asc_getType() === Asc.c_oAscAutoFilterTypes.CustomFilters);
if (_.isUndefined(this.config)) {
return;
}
this.filterExcludeCells.reset();
var arr = [];
arr.push(new Common.UI.DataViewModel({
id : ++index,
selected : false,
allowSelected : true,
value : this.textSelectAll,
groupid : '0',
check : true,
throughIndex : 0
}));
this.throughIndexes.push(true);
this.config.asc_getValues().forEach(function (item) {
value = item.asc_getText();
isnumber = isNumeric(value);
arr.push(new Common.UI.DataViewModel({
id : ++index,
selected : false,
allowSelected : true,
cellvalue : value,
value : isnumber ? value : (value.length > 0 ? value: me.textEmptyItem),
intval : isnumber ? parseFloat(value) : undefined,
strval : !isnumber ? value : '',
groupid : '1',
check : item.asc_getVisible(),
throughIndex : throughIndex
}));
if (!item.asc_getVisible()) {
haveUnselectedCell = true;
}
me.throughIndexes.push(item.asc_getVisible());
++throughIndex;
});
me.cells.reset(arr);
this.checkCellTrigerBlock = true;
this.cells.at(0).set('check', !haveUnselectedCell);
this.checkCellTrigerBlock = undefined;
//TODO: установка всех значений для UI в отдельный метод
this.miSortLow2High.setChecked(false, true); this.miSortLow2High.setChecked(false, true);
this.miSortHigh2Low.setChecked(false, true); this.miSortHigh2Low.setChecked(false, true);
var sort = this.config.asc_getSortState(); var sort = this.configTo.asc_getSortState();
if (sort) { if (sort) {
if ('ascending' === sort) { if ('ascending' === sort) {
this.miSortLow2High.setChecked(true, true); this.miSortLow2High.setChecked(true, true);
@ -902,10 +844,6 @@ define([
// this.chCustomFilter.setValue(isCustomFilter); // this.chCustomFilter.setValue(isCustomFilter);
this.btnOk.setDisabled(isCustomFilter); this.btnOk.setDisabled(isCustomFilter);
this.cellsList.scroller.update({minScrollbarLength : 40, alwaysVisibleY: true, suppressScrollX: true});
this.config = undefined;
}, },
setupDataCells: function() { setupDataCells: function() {
@ -918,7 +856,8 @@ define([
value, value,
index = 0, index = 0,
applyfilter = true, applyfilter = true,
throughIndex = 1; throughIndex = 1,
haveUnselectedCell = false;
this.cells.forEach(function (item) { this.cells.forEach(function (item) {
value = item.get('check'); value = item.get('check');
@ -929,6 +868,8 @@ define([
var arr = [], arrEx = []; var arr = [], arrEx = [];
if (!me.filter) { if (!me.filter) {
if (me.throughIndexes[0]==undefined)
me.throughIndexes[0] = true;
arr.push(new Common.UI.DataViewModel({ arr.push(new Common.UI.DataViewModel({
id : ++index, id : ++index,
selected : false, selected : false,
@ -951,6 +892,9 @@ define([
} }
} }
if (me.throughIndexes[throughIndex]==undefined)
me.throughIndexes[throughIndex] = item.asc_getVisible();
if (applyfilter) { if (applyfilter) {
arr.push(new Common.UI.DataViewModel({ arr.push(new Common.UI.DataViewModel({
id : ++index, id : ++index,
@ -964,6 +908,9 @@ define([
check : me.throughIndexes[throughIndex], check : me.throughIndexes[throughIndex],
throughIndex : throughIndex throughIndex : throughIndex
})); }));
if (!me.throughIndexes[throughIndex]) {
haveUnselectedCell = true;
}
} else { } else {
arrEx.push(new Common.UI.DataViewModel({ arrEx.push(new Common.UI.DataViewModel({
cellvalue : value cellvalue : value
@ -975,9 +922,13 @@ define([
this.cells.reset(arr); this.cells.reset(arr);
this.filterExcludeCells.reset(arrEx); this.filterExcludeCells.reset(arrEx);
// if (this.cells.length) { if (this.cells.length) {
this.checkCellTrigerBlock = true;
this.cells.at(0).set('check', !haveUnselectedCell);
this.checkCellTrigerBlock = undefined;
// this.chCustomFilter.setValue(this.configTo.asc_getFilterObj().asc_getType() === Asc.c_oAscAutoFilterTypes.CustomFilters); // this.chCustomFilter.setValue(this.configTo.asc_getFilterObj().asc_getType() === Asc.c_oAscAutoFilterTypes.CustomFilters);
// } }
this.cellsList.scroller.update({minScrollbarLength : 40, alwaysVisibleY: true, suppressScrollX: true}); this.cellsList.scroller.update({minScrollbarLength : 40, alwaysVisibleY: true, suppressScrollX: true});
}, },