Browse Source

Merge pull request #9763 from abpframework/fix/9762

fix: hide action column when no action is permitted
rel-4.3
Muhammed Altuğ 5 years ago
committed by GitHub
parent
commit
73723bfa26
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html
  2. 13
      npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.ts

2
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html

@ -1,6 +1,6 @@
<ngx-datatable default [rows]="data" [count]="recordsTotal" [list]="list">
<ngx-datatable-column
*ngIf="actionsTemplate || actionList.length"
*ngIf="actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)"
[name]="actionsText | abpLocalization"
[maxWidth]="columnWidths[0]"
[width]="columnWidths[0]"

13
npm/ng-packs/packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.ts

@ -4,6 +4,7 @@ import {
getShortDateFormat,
getShortDateShortTimeFormat,
getShortTimeFormat,
PermissionService,
} from '@abp/ng.core';
import { formatDate } from '@angular/common';
import {
@ -65,6 +66,8 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
readonly trackByFn: TrackByFunction<EntityProp<R>> = (_, item) => item.name;
hasAtLeastOnePermittedAction: boolean;
constructor(
@Inject(LOCALE_ID) private locale: string,
private config: ConfigStateService,
@ -75,8 +78,14 @@ export class ExtensibleTableComponent<R = any> implements OnChanges {
const extensions = injector.get(ExtensionsService);
const name = injector.get(EXTENSIONS_IDENTIFIER);
this.propList = extensions.entityProps.get(name).props;
this.actionList = (extensions['entityActions'].get(name)
.actions as unknown) as EntityActionList<R>;
this.actionList = extensions['entityActions'].get(name)
.actions as unknown as EntityActionList<R>;
const permissionService = injector.get(PermissionService);
this.hasAtLeastOnePermittedAction =
permissionService.filterItemsByPolicy(
this.actionList.toArray().map(action => ({ requiredPolicy: action.permission })),
).length > 0;
this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);
}

Loading…
Cancel
Save