[SSE] Изменение работы с фильтрами в соответствии с макетами - добавлен пункт "Add current selection to filter"

This commit is contained in:
Julia Radzhabova 2016-04-19 11:53:12 +03:00
parent 2f48acc238
commit 81d10f0967
2 changed files with 93 additions and 22 deletions

View file

@ -590,6 +590,8 @@ define([
this.cellsList.store.comparator = function(item1, item2) { this.cellsList.store.comparator = function(item1, item2) {
if ('0' == item1.get('groupid')) return -1; if ('0' == item1.get('groupid')) return -1;
if ('0' == item2.get('groupid')) return 1; if ('0' == item2.get('groupid')) return 1;
if ('2' == item1.get('groupid')) return -1;
if ('2' == item2.get('groupid')) return 1;
var n1 = item1.get('intval'), var n1 = item1.get('intval'),
n2 = item2.get('intval'), n2 = item2.get('intval'),
@ -792,11 +794,13 @@ define([
var check = !record.get('check'), var check = !record.get('check'),
me = this, me = this,
idxs = (me.filter) ? me.filteredIndexes : me.throughIndexes; idxs = (me.filter) ? me.filteredIndexes : me.throughIndexes;
if ('1' !== record.get('groupid')) { if ('0' == record.get('groupid')) {
this.cells.each(function(cell) { this.cells.each(function(cell) {
cell.set('check', check); if ('2' !== cell.get('groupid')) {
if (cell.get('throughIndex')>0) cell.set('check', check);
idxs[parseInt(cell.get('throughIndex'))] = check; if (cell.get('throughIndex')>1)
idxs[parseInt(cell.get('throughIndex'))] = check;
}
}); });
} else { } else {
record.set('check', check); record.set('check', check);
@ -818,7 +822,9 @@ define([
}, },
_setDefaults: function() { _setDefaults: function() {
var isCustomFilter = (this.configTo.asc_getFilterObj().asc_getType() === Asc.c_oAscAutoFilterTypes.CustomFilters); this.initialFilterType = this.configTo.asc_getFilterObj().asc_getType();
var isCustomFilter = (this.initialFilterType === Asc.c_oAscAutoFilterTypes.CustomFilters);
this.miSortLow2High.setChecked(false, true); this.miSortLow2High.setChecked(false, true);
this.miSortHigh2Low.setChecked(false, true); this.miSortHigh2Low.setChecked(false, true);
@ -842,7 +848,7 @@ define([
var me = this, var me = this,
isnumber, value, isnumber, value,
index = 0, throughIndex = 1, index = 0, throughIndex = 2,
applyfilter = true, applyfilter = true,
haveUnselectedCell = false, haveUnselectedCell = false,
arr = [], arrEx = [], arr = [], arrEx = [],
@ -886,18 +892,31 @@ define([
++throughIndex; ++throughIndex;
}); });
if (me.filter || idxs==undefined) if (me.filter || idxs[0]==undefined)
idxs[0] = true; idxs[0] = true;
if (!me.filter || arr.length>0) if (!me.filter || arr.length>0)
arr.unshift(new Common.UI.DataViewModel({ arr.unshift(new Common.UI.DataViewModel({
id : ++index, id : ++index,
selected : false, selected : false,
allowSelected : true, allowSelected : true,
value : this.textSelectAll, value : (me.filter) ? this.textSelectAllResults : this.textSelectAll,
groupid : '0', groupid : '0',
check : idxs[0], check : idxs[0],
throughIndex : 0 throughIndex : 0
})); }));
if (me.filter && arr.length>1) {
if (idxs[1]==undefined)
idxs[1] = false;
arr.splice(1, 0, new Common.UI.DataViewModel({
id : ++index,
selected : false,
allowSelected : true,
value : this.textAddSelection,
groupid : '2',
check : idxs[1],
throughIndex : 1
}));
}
this.cells.reset(arr); this.cells.reset(arr);
this.filterExcludeCells.reset(arrEx); this.filterExcludeCells.reset(arrEx);
@ -907,7 +926,7 @@ define([
this.cells.at(0).set('check', !haveUnselectedCell); this.cells.at(0).set('check', !haveUnselectedCell);
this.checkCellTrigerBlock = undefined; this.checkCellTrigerBlock = undefined;
// this.chCustomFilter.setValue(this.configTo.asc_getFilterObj().asc_getType() === Asc.c_oAscAutoFilterTypes.CustomFilters); // this.chCustomFilter.setValue(this.initialFilterType === Asc.c_oAscAutoFilterTypes.CustomFilters);
} }
this.cellsList.scroller.update({minScrollbarLength : 40, alwaysVisibleY: true, suppressScrollX: true}); this.cellsList.scroller.update({minScrollbarLength : 40, alwaysVisibleY: true, suppressScrollX: true});
@ -917,13 +936,15 @@ define([
var me = this, isValid= false; var me = this, isValid= false;
if (this.cells) { if (this.cells) {
this.cells.forEach(function(item){ if (this.filter && this.filteredIndexes[1])
if ('1' === item.get('groupid')) { isValid = true;
if (item.get('check')) { else
this.cells.forEach(function(item){
if ('1' == item.get('groupid') && item.get('check')) {
isValid = true; isValid = true;
return true;
} }
} });
});
} }
if (!isValid) { if (!isValid) {
@ -942,12 +963,32 @@ define([
save: function () { save: function () {
if (this.api && this.configTo && this.cells && this.filterExcludeCells) { if (this.api && this.configTo && this.cells && this.filterExcludeCells) {
var arr = this.configTo.asc_getValues(), var arr = this.configTo.asc_getValues(),
me = this, isValid = false;
idxs = (me.filter) ? me.filteredIndexes : me.throughIndexes; if (this.filter && this.filteredIndexes[1]) {
arr.forEach(function(item, index) { if (this.initialFilterType === Asc.c_oAscAutoFilterTypes.CustomFilters) {
item.asc_setVisible(idxs[index+1]); arr.forEach(function(item, index) {
}); item.asc_setVisible(true);
this.api.asc_applyAutoFilter('mainFilter', this.configTo); });
}
this.cells.each(function(cell) {
if ('1' == cell.get('groupid')) {
arr[parseInt(cell.get('throughIndex'))-2].asc_setVisible(cell.get('check'));
}
});
arr.forEach(function(item, index) {
if (item.asc_getVisible()) {
isValid = true;
return true;
}
});
} else {
var idxs = (this.filter) ? this.filteredIndexes : this.throughIndexes;
arr.forEach(function(item, index) {
item.asc_setVisible(idxs[index+2]);
});
isValid = true;
}
if (isValid) this.api.asc_applyAutoFilter('mainFilter', this.configTo);
} }
}, },
@ -992,8 +1033,9 @@ define([
txtNotEnds : "Does not end with...", txtNotEnds : "Does not end with...",
txtContains : "Contains...", txtContains : "Contains...",
txtNotContains : "Does not contain...", txtNotContains : "Does not contain...",
textNoFilter : "None" textNoFilter : "None",
textSelectAllResults: 'Select All Search Results',
textAddSelection : 'Add current selection to filter'
}, SSE.Views.AutoFilterDialog || {})); }, SSE.Views.AutoFilterDialog || {}));
}); });

View file

@ -241,6 +241,35 @@
"SSE.Views.AutoFilterDialog.txtEmpty": "Enter cell filter", "SSE.Views.AutoFilterDialog.txtEmpty": "Enter cell filter",
"SSE.Views.AutoFilterDialog.txtTitle": "Filter", "SSE.Views.AutoFilterDialog.txtTitle": "Filter",
"SSE.Views.AutoFilterDialog.warnNoSelected": "You must choose at least one value", "SSE.Views.AutoFilterDialog.warnNoSelected": "You must choose at least one value",
"SSE.Views.AutoFilterDialog.txtSortLow2High": "Sort Lowest to Highest",
"SSE.Views.AutoFilterDialog.txtSortHigh2Low": "Sort Highest to Lowest",
"SSE.Views.AutoFilterDialog.txtSortCellColor": "Sort by cells color",
"SSE.Views.AutoFilterDialog.txtSortFontColor": "Sort by font color",
"SSE.Views.AutoFilterDialog.txtNumFilter": "Number filter",
"SSE.Views.AutoFilterDialog.txtTextFilter": "Text filter",
"SSE.Views.AutoFilterDialog.txtFilterCellColor": "Filter by cells color",
"SSE.Views.AutoFilterDialog.txtFilterFontColor": "Filter by font color",
"SSE.Views.AutoFilterDialog.txtClear": "Clear",
"SSE.Views.AutoFilterDialog.txtReapply": "Reapply",
"SSE.Views.AutoFilterDialog.txtEquals": "Equals...",
"SSE.Views.AutoFilterDialog.txtNotEquals": "Does not equal...",
"SSE.Views.AutoFilterDialog.txtGreater": "Greater than...",
"SSE.Views.AutoFilterDialog.txtGreaterEquals": "Greater than or equal to...",
"SSE.Views.AutoFilterDialog.txtLess": "Less than...",
"SSE.Views.AutoFilterDialog.txtLessEquals": "Less than or equal to...",
"SSE.Views.AutoFilterDialog.txtBetween": "Between...",
"SSE.Views.AutoFilterDialog.txtTop10": "Top 10",
"SSE.Views.AutoFilterDialog.txtAboveAve": "Above average",
"SSE.Views.AutoFilterDialog.txtBelowAve": "Below average",
"SSE.Views.AutoFilterDialog.txtBegins": "Begins with...",
"SSE.Views.AutoFilterDialog.txtNotBegins": "Does not begin with...",
"SSE.Views.AutoFilterDialog.txtEnds": "Ends with...",
"SSE.Views.AutoFilterDialog.txtNotEnds": "Does not end with...",
"SSE.Views.AutoFilterDialog.txtContains": "Contains...",
"SSE.Views.AutoFilterDialog.txtNotContains": "Does not contain...",
"SSE.Views.AutoFilterDialog.textNoFilter": "None",
"SSE.Views.AutoFilterDialog.textSelectAllResults": "Select All Search Results",
"SSE.Views.AutoFilterDialog.textAddSelection": "Add current selection to filter",
"SSE.Views.CellEditor.textManager": "Name Manager", "SSE.Views.CellEditor.textManager": "Name Manager",
"SSE.Views.CellEditor.tipFormula": "Insert Function", "SSE.Views.CellEditor.tipFormula": "Insert Function",
"SSE.Views.CellRangeDialog.errorMaxRows": "ERROR! The maximum number of data series per chart is 255", "SSE.Views.CellRangeDialog.errorMaxRows": "ERROR! The maximum number of data series per chart is 255",