]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/eg2/src/app/share/grid/grid-toolbar-actions-editor.component.ts
LP1945498 Responsive navbar for Angular staff
[Evergreen.git] / Open-ILS / src / eg2 / src / app / share / grid / grid-toolbar-actions-editor.component.ts
1 import {Component, Input, OnInit, Host} from '@angular/core';
2 import {GridToolbarAction, GridContext} from '@eg/share/grid/grid';
3 import {DialogComponent} from '@eg/share/dialog/dialog.component';
4
5 /** Allows users to show/hide toolbar action entries */
6
7 @Component({
8   selector: 'eg-grid-toolbar-actions-editor',
9   templateUrl: 'grid-toolbar-actions-editor.component.html'
10 })
11
12 export class GridToolbarActionsEditorComponent extends DialogComponent {
13
14     @Input() gridContext: GridContext;
15
16     showHideClicked(action: GridToolbarAction) {
17         action.hidden = !action.hidden;
18
19         if (!action.group) { return; }
20
21         // When hiding the last entry in a group, hide the group as well.
22
23         const group = this.gridContext.toolbarActions
24             .filter(entry => entry.isGroup && entry.label === action.group)[0];
25
26         const visibles = this.gridContext.toolbarActions
27             .filter(a => a.group === action.group && !a.hidden);
28
29         group.hidden = visibles.length === 0;
30     }
31 }
32