From a87300e78cfae3dba945dd13723e5a3d5d40249d Mon Sep 17 00:00:00 2001 From: Ghislain Beaulac Date: Fri, 24 May 2019 10:09:49 -0400 Subject: [PATCH] feat(menu): add options to exclude column titles from Menus, closes #189 - excludeFromColumnPicker for the Column Picker - excludeFromGridMenu for the Grid Menu --- src/app/examples/grid-rowmove.component.ts | 5 ++++- .../extensions/checkboxSelectorExtension.ts | 4 +++- .../extensions/rowDetailViewExtension.ts | 2 ++ .../modules/angular-slickgrid/models/column.interface.ts | 8 +++++++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/app/examples/grid-rowmove.component.ts b/src/app/examples/grid-rowmove.component.ts index e931214c7..28ddc05ce 100644 --- a/src/app/examples/grid-rowmove.component.ts +++ b/src/app/examples/grid-rowmove.component.ts @@ -35,7 +35,10 @@ export class GridRowMoveComponent implements OnInit { behavior: 'selectAndMove', selectable: false, resizable: false, cssClass: 'cell-reorder dnd', - excludeFromExport: true + excludeFromExport: true, + excludeFromColumnPicker: true, + excludeFromHeaderMenu: true, + excludeFromGridMenu: true }, { id: 'title', name: 'Title', field: 'title' }, { id: 'duration', name: 'Duration', field: 'duration', sortable: true }, diff --git a/src/app/modules/angular-slickgrid/extensions/checkboxSelectorExtension.ts b/src/app/modules/angular-slickgrid/extensions/checkboxSelectorExtension.ts index 32faad733..8cb403021 100644 --- a/src/app/modules/angular-slickgrid/extensions/checkboxSelectorExtension.ts +++ b/src/app/modules/angular-slickgrid/extensions/checkboxSelectorExtension.ts @@ -26,11 +26,13 @@ export class CheckboxSelectorExtension implements Extension { if (columnDefinitions && gridOptions) { // dynamically import the SlickGrid plugin with requireJS this.extensionUtility.loadExtensionDynamically(ExtensionName.checkboxSelector); - if (!this._extension) { + if (!this._extension) { this._extension = new Slick.CheckboxSelectColumn(gridOptions.checkboxSelector || {}); } const selectionColumn: Column = this._extension.getColumnDefinition(); selectionColumn.excludeFromExport = true; + selectionColumn.excludeFromColumnPicker = true; + selectionColumn.excludeFromGridMenu = true; selectionColumn.excludeFromQuery = true; selectionColumn.excludeFromHeaderMenu = true; columnDefinitions.unshift(selectionColumn); diff --git a/src/app/modules/angular-slickgrid/extensions/rowDetailViewExtension.ts b/src/app/modules/angular-slickgrid/extensions/rowDetailViewExtension.ts index 11d35fc15..2be76c2d5 100644 --- a/src/app/modules/angular-slickgrid/extensions/rowDetailViewExtension.ts +++ b/src/app/modules/angular-slickgrid/extensions/rowDetailViewExtension.ts @@ -93,6 +93,8 @@ export class RowDetailViewExtension implements Extension { } const selectionColumn: Column = this._extension.getColumnDefinition(); selectionColumn.excludeFromExport = true; + selectionColumn.excludeFromColumnPicker = true; + selectionColumn.excludeFromGridMenu = true; selectionColumn.excludeFromQuery = true; selectionColumn.excludeFromHeaderMenu = true; columnDefinitions.unshift(selectionColumn); diff --git a/src/app/modules/angular-slickgrid/models/column.interface.ts b/src/app/modules/angular-slickgrid/models/column.interface.ts index 039e58d1a..79885970d 100644 --- a/src/app/modules/angular-slickgrid/models/column.interface.ts +++ b/src/app/modules/angular-slickgrid/models/column.interface.ts @@ -38,9 +38,15 @@ export interface Column { /** Any inline editor function that implements Editor for the cell value or ColumnEditor */ editor?: any | ColumnEditor; - /** Default to false, which leads to exclude the column from the export? */ + /** Default to false, which leads to exclude the column title from the Column Picker. */ + excludeFromColumnPicker?: boolean; + + /** Default to false, which leads to exclude the column from the export. */ excludeFromExport?: boolean; + /** Default to false, which leads to exclude the column title from the Grid Menu. */ + excludeFromGridMenu?: boolean; + /** Defaults to false, which leads to exclude the field from the query (mostly a backend service query) */ excludeFromQuery?: boolean;