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 59d50a40ec..e9b08947e9 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(i, row)) { + @if (hasAvailableActions(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 8ed24133f2..80321d4ef0 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,8 +206,20 @@ export class ExtensibleTableComponent implements OnChanges { }); } - hasAvailableActions(index, row): boolean { - const { permission, visible } = this.actionList.get(index).value; - return this.permissionService.getGrantedPolicy(permission) && visible(row); + hasAvailableActions(rowData): boolean { + let isActionAvailable = true; + this.actionList.toArray().map(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; + } + }); + return isActionAvailable; } }