Browse Source

did some reworks

pull/14060/head
Maksym Tsymbarov 12 months ago
parent
commit
e4c807bad4
  1. 9
      ui-ngx/src/app/modules/home/components/widget/lib/display-columns-panel.component.html
  2. 20
      ui-ngx/src/app/modules/home/components/widget/lib/display-columns-panel.component.ts

9
ui-ngx/src/app/modules/home/components/widget/lib/display-columns-panel.component.html

@ -24,8 +24,9 @@
{{'entity.show-all-columns' | translate}} {{'entity.show-all-columns' | translate}}
</mat-checkbox> </mat-checkbox>
<mat-divider/> <mat-divider/>
<mat-checkbox [(ngModel)]="column.display" *ngFor="let column of (columns | selectableColumns)" @for (column of columns; track column.def) {
(ngModelChange)="update()"> <mat-checkbox [(ngModel)]="column.display" (ngModelChange)="update()">
{{ column.title }} {{ column.title }}
</mat-checkbox> </mat-checkbox>
}
</div> </div>

20
ui-ngx/src/app/modules/home/components/widget/lib/display-columns-panel.component.ts

@ -15,6 +15,8 @@
/// ///
import { Component, Inject, InjectionToken } from '@angular/core'; import { Component, Inject, InjectionToken } from '@angular/core';
import { isDefinedAndNotNull } from '@app/core/utils';
import { SelectableColumnsPipe } from '@app/shared/pipe/selectable-columns.pipe';
import { DisplayColumn } from '@home/components/widget/lib/table-widget.models'; import { DisplayColumn } from '@home/components/widget/lib/table-widget.models';
export const DISPLAY_COLUMNS_PANEL_DATA = new InjectionToken<any>('DisplayColumnsPanelData'); export const DISPLAY_COLUMNS_PANEL_DATA = new InjectionToken<any>('DisplayColumnsPanelData');
@ -34,29 +36,23 @@ export class DisplayColumnsPanelComponent {
columns: DisplayColumn[]; columns: DisplayColumn[];
constructor(@Inject(DISPLAY_COLUMNS_PANEL_DATA) public data: DisplayColumnsPanelData) { constructor(@Inject(DISPLAY_COLUMNS_PANEL_DATA) public data: DisplayColumnsPanelData) {
this.columns = this.data.columns; const selectableColumnsPipe = new SelectableColumnsPipe();
} this.columns = selectableColumnsPipe.transform(this.data.columns);
get selectableColumns(): DisplayColumn[] {
return this.columns.filter(column => column.selectable);
} }
get allColumnsVisible(): boolean { get allColumnsVisible(): boolean {
const selectableColumns = this.selectableColumns; return isDefinedAndNotNull(this.columns) && this.columns.every(column => column.display);
return selectableColumns.length > 0 && selectableColumns.every(column => column.display);
} }
get someColumnsVisible(): boolean { get someColumnsVisible(): boolean {
const selectableColumns = this.selectableColumns; const filtredColumns = this.columns.filter(item => item.display);
const visibleCount = selectableColumns.filter(column => column.display).length; return filtredColumns.length !== 0 && this.columns.length !== filtredColumns.length;
return visibleCount > 0 && visibleCount < selectableColumns.length;
} }
public toggleAllColumns(event: any): void { public toggleAllColumns(event: any): void {
const isChecked = event.checked; const isChecked = event.checked;
const selectableColumns = this.selectableColumns;
selectableColumns.forEach(column => { this.columns.forEach(column => {
column.display = isChecked; column.display = isChecked;
}); });

Loading…
Cancel
Save