diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html index e9b08947e9..689fc60f05 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html @@ -17,7 +17,7 @@ *ngTemplateOutlet="actionsTemplate || gridActions; context: { $implicit: row, index: i }" > - @if (hasAvailableActions(row)) { + @if (isVisibleActions(row)) { } diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts index 80321d4ef0..e7b8371240 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts @@ -206,20 +206,25 @@ export class ExtensibleTableComponent implements OnChanges { }); } - hasAvailableActions(rowData): boolean { - let isActionAvailable = true; - this.actionList.toArray().map(action => { + isVisibleActions(rowData: any): boolean { + const actions = this.actionList.toArray(); + const visibleActions = actions.filter(action => { const { visible, permission } = action; - if (rowData && action) { - const visibilityCheck = visible({ - record: rowData, - getInjected: this.getInjected, - }); - const permissionCheck = this.permissionService.getGrantedPolicy(permission); - - isActionAvailable = visibilityCheck && permissionCheck; + + let isVisible = true; + let hasPermission = true; + + if (visible) { + isVisible = visible({ record: rowData, getInjected: this.getInjected }); + } + + if (permission) { + hasPermission = this.permissionService.getGrantedPolicy(permission); } + + return isVisible && hasPermission; }); - return isActionAvailable; + + return visibleActions.length > 0; } }