Commit 041d617b authored by Julia Radzhabova's avatar Julia Radzhabova

[SSE] В контекстное меню добавлена возможность фильтрации ячеек.

parent 503ee98e
...@@ -152,6 +152,8 @@ define([ ...@@ -152,6 +152,8 @@ define([
view.pmiInsertCells.menu.on('item:click', _.bind(me.onInsertCells, me)); view.pmiInsertCells.menu.on('item:click', _.bind(me.onInsertCells, me));
view.pmiDeleteCells.menu.on('item:click', _.bind(me.onDeleteCells, me)); view.pmiDeleteCells.menu.on('item:click', _.bind(me.onDeleteCells, me));
view.pmiSortCells.menu.on('item:click', _.bind(me.onSortCells, me)); view.pmiSortCells.menu.on('item:click', _.bind(me.onSortCells, me));
view.pmiFilterCells.menu.on('item:click', _.bind(me.onFilterCells, me));
view.pmiReapply.menu.on('item:click', _.bind(me.onReapply, me));
view.pmiClear.menu.on('item:click', _.bind(me.onClear, me)); view.pmiClear.menu.on('item:click', _.bind(me.onClear, me));
view.pmiSelectTable.menu.on('item:click', _.bind(me.onSelectTable, me)); view.pmiSelectTable.menu.on('item:click', _.bind(me.onSelectTable, me));
view.pmiInsertTable.menu.on('item:click', _.bind(me.onInsertTable, me)); view.pmiInsertTable.menu.on('item:click', _.bind(me.onInsertTable, me));
...@@ -343,6 +345,41 @@ define([ ...@@ -343,6 +345,41 @@ define([
} }
}, },
onFilterCells: function(menu, item) {
if (this.api) {
var autoFilterObject = new Asc.AutoFiltersOptions(),
filterObj = new Asc.AutoFilterObj();
if (item.value>0) {
filterObj.asc_setFilter(new Asc.ColorFilter());
filterObj.asc_setType(Asc.c_oAscAutoFilterTypes.ColorFilter);
var colorFilter = filterObj.asc_getFilter();
colorFilter.asc_setCellColor((item.value==1) ? null : false);
colorFilter.asc_setCColor((item.value==1) ? this.documentHolder.ssMenu.cellColor : this.documentHolder.ssMenu.fontColor);
} else {
filterObj.asc_setFilter(new Asc.CustomFilters());
filterObj.asc_setType(Asc.c_oAscAutoFilterTypes.CustomFilters);
var customFilter = filterObj.asc_getFilter();
customFilter.asc_setCustomFilters([new Asc.CustomFilter()]);
customFilter.asc_setAnd(true);
var customFilters = customFilter.asc_getCustomFilters();
customFilters[0].asc_setOperator(Asc.c_oAscCustomAutoFilter.equals);
// customFilters[0].asc_setVal('');
}
autoFilterObject.asc_setFilterObj(filterObj);
this.api.asc_applyAutoFilterByType(autoFilterObject);
Common.NotificationCenter.trigger('edit:complete', this.documentHolder);
Common.component.Analytics.trackEvent('DocumentHolder', 'Filter Cells');
}
},
onReapply: function() {
this.api.asc_applyAutoFilter(new Asc.AutoFiltersOptions());
},
onClear: function(menu, item) { onClear: function(menu, item) {
if (this.api) { if (this.api) {
this.api.asc_emptyCells(item.value); this.api.asc_emptyCells(item.value);
...@@ -1181,6 +1218,8 @@ define([ ...@@ -1181,6 +1218,8 @@ define([
formatTableInfo = cellinfo.asc_getFormatTableInfo(), formatTableInfo = cellinfo.asc_getFormatTableInfo(),
isintable = (formatTableInfo !== null); isintable = (formatTableInfo !== null);
documentHolder.ssMenu.formatTableName = (isintable) ? formatTableInfo.asc_getTableName() : null; documentHolder.ssMenu.formatTableName = (isintable) ? formatTableInfo.asc_getTableName() : null;
documentHolder.ssMenu.cellColor = cellinfo.asc_getFill().asc_getColor();
documentHolder.ssMenu.fontColor = cellinfo.asc_getFont().asc_getColor();
documentHolder.pmiInsertEntire.setVisible(isrowmenu||iscolmenu); documentHolder.pmiInsertEntire.setVisible(isrowmenu||iscolmenu);
documentHolder.pmiInsertEntire.setCaption((isrowmenu) ? this.textInsertTop : this.textInsertLeft); documentHolder.pmiInsertEntire.setCaption((isrowmenu) ? this.textInsertTop : this.textInsertLeft);
...@@ -1190,7 +1229,10 @@ define([ ...@@ -1190,7 +1229,10 @@ define([
documentHolder.pmiSelectTable.setVisible(iscellmenu && !iscelledit && isintable); documentHolder.pmiSelectTable.setVisible(iscellmenu && !iscelledit && isintable);
documentHolder.pmiInsertTable.setVisible(iscellmenu && !iscelledit && isintable); documentHolder.pmiInsertTable.setVisible(iscellmenu && !iscelledit && isintable);
documentHolder.pmiDeleteTable.setVisible(iscellmenu && !iscelledit && isintable); documentHolder.pmiDeleteTable.setVisible(iscellmenu && !iscelledit && isintable);
documentHolder.pmiSortCells.setVisible((iscellmenu||isallmenu||cansort) && !iscelledit && !isintable); documentHolder.pmiSortCells.setVisible((iscellmenu||isallmenu||cansort) && !iscelledit);
documentHolder.pmiFilterCells.setVisible((iscellmenu||cansort) && !iscelledit);
documentHolder.pmiReapply.setVisible((iscellmenu||isallmenu||cansort) && !iscelledit);
documentHolder.ssMenu.items[12].setVisible((iscellmenu||isallmenu||cansort) && !iscelledit);
documentHolder.pmiInsFunction.setVisible(iscellmenu||insfunc); documentHolder.pmiInsFunction.setVisible(iscellmenu||insfunc);
documentHolder.pmiAddNamedRange.setVisible(iscellmenu && !iscelledit); documentHolder.pmiAddNamedRange.setVisible(iscellmenu && !iscelledit);
...@@ -1218,7 +1260,7 @@ define([ ...@@ -1218,7 +1260,7 @@ define([
documentHolder.pmiFreezePanes.setCaption(this.api.asc_getSheetViewSettings().asc_getIsFreezePane() ? documentHolder.textUnFreezePanes : documentHolder.textFreezePanes); documentHolder.pmiFreezePanes.setCaption(this.api.asc_getSheetViewSettings().asc_getIsFreezePane() ? documentHolder.textUnFreezePanes : documentHolder.textFreezePanes);
/** coauthoring begin **/ /** coauthoring begin **/
documentHolder.ssMenu.items[13].setVisible(iscellmenu && !iscelledit && this.permissions.canCoAuthoring && this.permissions.canComments); documentHolder.ssMenu.items[16].setVisible(iscellmenu && !iscelledit && this.permissions.canCoAuthoring && this.permissions.canComments);
documentHolder.pmiAddComment.setVisible(iscellmenu && !iscelledit && this.permissions.canCoAuthoring && this.permissions.canComments); documentHolder.pmiAddComment.setVisible(iscellmenu && !iscelledit && this.permissions.canCoAuthoring && this.permissions.canComments);
/** coauthoring end **/ /** coauthoring end **/
documentHolder.pmiCellMenuSeparator.setVisible(iscellmenu || isrowmenu || iscolmenu || isallmenu || insfunc); documentHolder.pmiCellMenuSeparator.setVisible(iscellmenu || isrowmenu || iscolmenu || isallmenu || insfunc);
...@@ -1236,17 +1278,19 @@ define([ ...@@ -1236,17 +1278,19 @@ define([
documentHolder.pmiClear.menu.items[3].setVisible(!this.permissions.isEditDiagram); documentHolder.pmiClear.menu.items[3].setVisible(!this.permissions.isEditDiagram);
documentHolder.pmiClear.menu.items[4].setVisible(!this.permissions.isEditDiagram); documentHolder.pmiClear.menu.items[4].setVisible(!this.permissions.isEditDiagram);
var filterInfo = cellinfo.asc_getAutoFilterInfo(); var filterInfo = cellinfo.asc_getAutoFilterInfo(),
filterInfo = (filterInfo) ? filterInfo.asc_getIsApplyAutoFilter() : false; isApplyAutoFilter = (filterInfo) ? filterInfo.asc_getIsApplyAutoFilter() : false;
documentHolder.pmiInsertCells.menu.items[0].setDisabled(filterInfo); filterInfo = (filterInfo) ? filterInfo.asc_getIsAutoFilter() : null;
documentHolder.pmiDeleteCells.menu.items[0].setDisabled(filterInfo); documentHolder.pmiInsertCells.menu.items[0].setDisabled(isApplyAutoFilter);
documentHolder.pmiInsertCells.menu.items[1].setDisabled(filterInfo); documentHolder.pmiDeleteCells.menu.items[0].setDisabled(isApplyAutoFilter);
documentHolder.pmiDeleteCells.menu.items[1].setDisabled(filterInfo); documentHolder.pmiInsertCells.menu.items[1].setDisabled(isApplyAutoFilter);
documentHolder.pmiDeleteCells.menu.items[1].setDisabled(isApplyAutoFilter);
_.each(documentHolder.ssMenu.items, function(item) { _.each(documentHolder.ssMenu.items, function(item) {
item.setDisabled(isCellLocked); item.setDisabled(isCellLocked);
}); });
documentHolder.pmiCopy.setDisabled(false); documentHolder.pmiCopy.setDisabled(false);
documentHolder.pmiSortCells.setDisabled(isCellLocked || (filterInfo==null));
if (showMenu) this.showPopupMenu(documentHolder.ssMenu, {}, event); if (showMenu) this.showPopupMenu(documentHolder.ssMenu, {}, event);
} else if (this.permissions.isEditDiagram && seltype == Asc.c_oAscSelectionType.RangeChartText) { } else if (this.permissions.isEditDiagram && seltype == Asc.c_oAscSelectionType.RangeChartText) {
if (!showMenu && !documentHolder.textInShapeMenu.isVisible()) return; if (!showMenu && !documentHolder.textInShapeMenu.isVisible()) return;
......
...@@ -677,8 +677,8 @@ define([ ...@@ -677,8 +677,8 @@ define([
this.miTextFilter, this.miTextFilter,
this.miFilterCellColor, this.miFilterCellColor,
this.miFilterFontColor, this.miFilterFontColor,
{caption : '--'},
this.miClear, this.miClear,
{caption : '--'},
this.miReapply this.miReapply
] ]
}); });
......
...@@ -239,6 +239,29 @@ define([ ...@@ -239,6 +239,29 @@ define([
}) })
}); });
me.pmiFilterCells = new Common.UI.MenuItem({
caption : me.txtFilter,
menu : new Common.UI.Menu({
menuAlign : 'tl-tr',
items: [
{
caption : me.txtFilterValue,
value : 0
},{
caption : me.txtFilterCellColor,
value : 1
},{
caption : me.txtFilterFontColor,
value : 2
}
]
})
});
me.pmiReapply = new Common.UI.MenuItem({
caption : me.txtReapply
});
me.pmiInsFunction = new Common.UI.MenuItem({ me.pmiInsFunction = new Common.UI.MenuItem({
caption : me.txtFormula caption : me.txtFormula
}); });
...@@ -319,7 +342,10 @@ define([ ...@@ -319,7 +342,10 @@ define([
me.pmiDeleteCells, me.pmiDeleteCells,
me.pmiDeleteTable, me.pmiDeleteTable,
me.pmiClear, me.pmiClear,
{caption: '--'},
me.pmiSortCells, me.pmiSortCells,
me.pmiFilterCells,
me.pmiReapply,
{caption: '--'}, {caption: '--'},
me.pmiAddComment, me.pmiAddComment,
me.pmiCellMenuSeparator, me.pmiCellMenuSeparator,
...@@ -629,7 +655,12 @@ define([ ...@@ -629,7 +655,12 @@ define([
insertColumnRightText : 'Insert Column Right', insertColumnRightText : 'Insert Column Right',
deleteRowText : 'Delete Row', deleteRowText : 'Delete Row',
deleteColumnText : 'Delete Column', deleteColumnText : 'Delete Column',
deleteTableText : 'Delete Table' deleteTableText : 'Delete Table',
txtFilter: 'Filter',
txtFilterValue: 'Filter by Selected cell\'s value',
txtFilterCellColor: 'Filter by cell\'s color',
txtFilterFontColor: 'Filter by font color',
txtReapply: 'Reapply'
}, SSE.Views.DocumentHolder || {})); }, SSE.Views.DocumentHolder || {}));
}); });
\ No newline at end of file
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