--- /dev/null
+<ng-template #dialogContent>
+ <div class="modal-header bg-info">
+ <h4 class="modal-title" i18n>Grid Menu Configuration</h4>
+ <button type="button" class="close"
+ i18n-aria-label aria-label="Close" (click)="close()">
+ <span aria-hidden="true">×</span>
+ </button>
+ </div>
+ <div class="modal-body">
+ <div class="row">
+ <div class="col-lg-9 eg-grid-header-cell" i18n>Menu Item</div>
+ <div class="col-lg-3 eg-grid-header-cell" i18n>Visible</div>
+ </div>
+ <div class="row pt-1" *ngFor="let action of gridContext.toolbarActions">
+ <ng-container *ngIf="action.isGroup">
+ <div class="col-lg-12 font-weight-bold font-italic">{{action.label}}</div>
+ </ng-container>
+ <ng-container *ngIf="action.isSeparator">
+ <div class="col-lg-12 dropdown-divider"></div>
+ </ng-container>
+ <ng-container *ngIf="!action.isGroup && !action.isSeparator">
+ <div class="col-lg-9">
+ <div [ngClass]="{'pl-2': action.group}"
+ (click)="action.hidden=!action.hidden">{{action.label}}</div>
+ </div>
+ <div class="col-lg-3" (click)="action.hidden=!action.hidden">
+ <span *ngIf="!action.hidden" class="badge badge-success">✓</span>
+ <span *ngIf="action.hidden" class="badge badge-warning">✗</span>
+ </div>
+ </ng-container>
+ </div>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-success ml-2"
+ (click)="close('confirmed')" i18n>Close</button>
+ </div>
+</ng-template>
--- /dev/null
+import {Component, Input, OnInit, Host} from '@angular/core';
+import {GridToolbarAction, GridContext} from '@eg/share/grid/grid';
+import {DialogComponent} from '@eg/share/dialog/dialog.component';
+
+/** Allows users to show/hide toolbar action entries */
+
+@Component({
+ selector: 'eg-grid-toolbar-actions-editor',
+ templateUrl: 'grid-toolbar-actions-editor.component.html'
+})
+
+export class GridToolbarActionsEditorComponent extends DialogComponent {
+
+ @Input() gridContext: GridContext;
+
+}
+
+<eg-grid-toolbar-actions-editor #toolbarActionsEditor [gridContext]="gridContext">
+</eg-grid-toolbar-actions-editor>
<div class="eg-grid-toolbar mb-2">
<span class="material-icons">compare_arrows</span>
<span class="ml-2" i18n>Manage Column Widths</span>
</a>
+ <a class="dropdown-item label-with-material-icon"
+ (click)="toolbarActionsEditor.open().subscribe()">
+ <span class="material-icons">menu</span>
+ <span class="ml-2" i18n>Manage Actions Menu</span>
+ </a>
<a class="dropdown-item label-with-material-icon"
*ngIf="!disableSaveSettings"
(click)="saveGridConfig()">
import {GridColumnWidthComponent} from './grid-column-width.component';
import {GridPrintComponent} from './grid-print.component';
import {GridFilterControlComponent} from './grid-filter-control.component';
+import {GridToolbarActionsEditorComponent} from './grid-toolbar-actions-editor.component';
@NgModule({
GridColumnConfigComponent,
GridColumnWidthComponent,
GridPrintComponent,
- GridFilterControlComponent
+ GridFilterControlComponent,
+ GridToolbarActionsEditorComponent
],
imports: [
EgCommonModule,
isGroup: boolean; // used for group placeholder entries
isSeparator: boolean;
disableOnRows: (rows: any[]) => boolean;
+ hidden?: boolean;
}
// Buttons are global actions