Browse Source
Merge pull request #19846 from abpframework/issue-19837
Angular - Extensible table logic errors for action list
pull/19854/head
oykuermann
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
18 additions and
13 deletions
-
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.html
-
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts
|
|
|
@ -17,7 +17,7 @@ |
|
|
|
*ngTemplateOutlet="actionsTemplate || gridActions; context: { $implicit: row, index: i }" |
|
|
|
></ng-container> |
|
|
|
<ng-template #gridActions> |
|
|
|
@if (hasAvailableActions(row)) { |
|
|
|
@if (isVisibleActions(row)) { |
|
|
|
<abp-grid-actions [index]="i" [record]="row" text="AbpUi::Actions"></abp-grid-actions> |
|
|
|
} |
|
|
|
</ng-template> |
|
|
|
|
|
|
|
@ -206,20 +206,25 @@ export class ExtensibleTableComponent<R = any> 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; |
|
|
|
} |
|
|
|
} |
|
|
|
|