Skip to content

Commit

Permalink
add: hasAvailableActions functionality to handle both visibility and …
Browse files Browse the repository at this point in the history
…permission for a specific action
  • Loading branch information
sumeyyeKurtulus committed Apr 29, 2024
1 parent 1e1e26c commit 9659028
Showing 1 changed file with 14 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ import {
Injector,
Input,
TrackByFunction,
inject,
} from '@angular/core';
import { EntityAction, EntityActionList } from '../../models/entity-actions';
import { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';
import { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';
import { NgbDropdownModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
import { LocalizationModule, PermissionDirective } from '@abp/ng.core';
import { LocalizationModule, PermissionDirective, PermissionService } from '@abp/ng.core';
import { EllipsisDirective } from '@abp/ng.theme.shared';
import { NgClass, NgTemplateOutlet } from '@angular/common';

Expand All @@ -23,7 +24,7 @@ import { NgClass, NgTemplateOutlet } from '@angular/common';
NgClass,
LocalizationModule,
NgTemplateOutlet,
NgbTooltipModule
NgbTooltipModule,
],
selector: 'abp-grid-actions',
templateUrl: './grid-actions.component.html',
Expand All @@ -43,8 +44,19 @@ export class GridActionsComponent<R = any> extends AbstractActionsComponent<Enti
@Input() text = '';

readonly trackByFn: TrackByFunction<EntityAction<R>> = (_, item) => item.text;
public readonly permissionService = inject(PermissionService);

constructor(injector: Injector) {
super(injector);
}

hasAvailableActions(): boolean {
return this.actionList.toArray().some(action => {
if (!action) return false;

const { permission, visible } = action;

return this.permissionService.getGrantedPolicy(permission) && visible(this.data);
});
}
}

0 comments on commit 9659028

Please sign in to comment.