From b5e879caa722359c8d15367fddf109d087c02fd0 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Fri, 17 Feb 2023 17:40:51 +0300 Subject: [PATCH] [SSE] Sort pivot data from context menu --- .../main/app/controller/DocumentHolder.js | 26 +++++++++++++++---- .../main/app/view/DocumentHolder.js | 26 ++++++++++++++++++- 2 files changed, 46 insertions(+), 6 deletions(-) diff --git a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js index bc83c47b03..3045d45c16 100644 --- a/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/controller/DocumentHolder.js @@ -224,6 +224,7 @@ define([ view.mnuSubtotalField.on('click', _.bind(me.onSubtotalField, me)); view.mnuSummarize.menu.on('item:click', _.bind(me.onSummarize, me)); view.mnuShowAs.menu.on('item:click', _.bind(me.onShowAs, me)); + view.mnuPivotSort.menu.on('item:click', _.bind(me.onPivotSort, me)); view.mnuPivotFilter.menu.on('item:click', _.bind(me.onPivotFilter, me)); view.pmiClear.menu.on('item:click', _.bind(me.onClear, me)); view.pmiSelectTable.menu.on('item:click', _.bind(me.onSelectTable, me)); @@ -782,11 +783,6 @@ define([ } } else if (item.value==='label') { this.showCustomFilterDlg(filter, item.value); - // if (item.value == Asc.c_oAscCustomAutoFilter.isGreaterThan || item.value == Asc.c_oAscCustomAutoFilter.isGreaterThanOrEqualTo || item.value == Asc.c_oAscCustomAutoFilter.isLessThan || - // item.value == Asc.c_oAscCustomAutoFilter.isLessThanOrEqualTo || item.value == -2 || item.value == -3) - // this.onNumCustomFilterItemClick(item); - // else - // this.onTextFilterMenuClick(menu, item); } else if (item.value==='top10') { var dlgTop10Filter = new SSE.Views.Top10FilterDialog({api:this.api, type: 'value'}).on({ 'close': function() { @@ -801,6 +797,25 @@ define([ } }, + onPivotSort: function(menu, item, e) { + if (!this.propsPivot.filter) return; + + var filter = this.propsPivot.filter, + me = this; + if (item.value==='advanced') { + var dlgSort = new SSE.Views.SortFilterDialog({api:this.api}).on({ + 'close': function() { + Common.NotificationCenter.trigger('edit:complete', me.documentHolder); + } + }); + dlgSort.setSettings(filter); + dlgSort.show(); + } else { + this.api.asc_sortColFilter(item.value, filter.asc_getCellId(), filter.asc_getDisplayName()); + Common.NotificationCenter.trigger('edit:complete', this.documentHolder); + } + }, + fillPivotProps: function() { var props = this.propsPivot.originalProps; if (!props) return; @@ -2622,6 +2637,7 @@ define([ documentHolder.mnuSummarize.setVisible(!!this.propsPivot.field && (this.propsPivot.fieldType===2)); documentHolder.mnuShowAs.setVisible(!!this.propsPivot.field && (this.propsPivot.fieldType===2) && !this.propsPivot.rowTotal && !this.propsPivot.colTotal); documentHolder.mnuPivotValueSeparator.setVisible(!!this.propsPivot.field && (this.propsPivot.fieldType===2)); + documentHolder.mnuPivotSort.setVisible(!!this.propsPivot.filter); documentHolder.mnuPivotFilter.setVisible(!!this.propsPivot.filter); documentHolder.mnuPivotFilterSeparator.setVisible(!!this.propsPivot.filter); diff --git a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js index 0c2c9eb071..0d9d8a9a2d 100644 --- a/apps/spreadsheeteditor/main/app/view/DocumentHolder.js +++ b/apps/spreadsheeteditor/main/app/view/DocumentHolder.js @@ -382,6 +382,28 @@ define([ }) }); + me.mnuPivotSort = new Common.UI.MenuItem({ + caption : this.txtSort, + menu : new Common.UI.Menu({ + cls: 'shifted-right', + menuAlign : 'tl-tr', + items: [ + { + iconCls: 'menu__icon btn-sort-down', + caption : me.txtAscending, + value : Asc.c_oAscSortOptions.Ascending + },{ + iconCls: 'menu__icon btn-sort-up', + caption : me.txtDescending, + value : Asc.c_oAscSortOptions.Descending + },{ + caption : me.txtSortOption, + value : 'advanced' + } + ] + }) + }); + me.mnuDeleteField = new Common.UI.MenuItem({ caption : this.txtDelField }); @@ -765,6 +787,7 @@ define([ me.pmiReapply, me.mnuRefreshPivot, me.mnuPivotRefreshSeparator, + me.mnuPivotSort, me.mnuPivotFilter, me.mnuPivotFilterSeparator, me.mnuSubtotalField, @@ -1619,7 +1642,8 @@ define([ txtValueFilter: 'Value filters', txtLabelFilter: 'Label filters', txtTop10: 'Top 10', - txtClearPivotField: 'Clear filter from {0}' + txtClearPivotField: 'Clear filter from {0}', + txtSortOption: 'More sort options' }, SSE.Views.DocumentHolder || {})); }); \ No newline at end of file