Browse Source

Merge pull request #15703 from abpframework/refactor-permission-management

make selected group permissions as array
pull/15717/head
Barış Can Yılmaz 4 years ago
committed by GitHub
parent
commit
1fb4762c17
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 30
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

30
npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

@ -81,7 +81,7 @@ export class PermissionManagementComponent
}); });
}); });
} else { } else {
this.selectedGroup = null; this.setSelectedGroup(null);
this._visible = false; this._visible = false;
this.visibleChange.emit(false); this.visibleChange.emit(false);
} }
@ -110,10 +110,22 @@ export class PermissionManagementComponent
modalBusy = false; modalBusy = false;
selectedGroupPermissions: PermissionWithStyle[] = [];
trackByFn: TrackByFunction<PermissionGroupDto> = (_, item) => item.name; trackByFn: TrackByFunction<PermissionGroupDto> = (_, item) => item.name;
get selectedGroupPermissions(): PermissionWithStyle[] { constructor(protected service: PermissionsService, protected configState: ConfigStateService) {}
if (!this.selectedGroup) return [];
getChecked(name: string) {
return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;
}
setSelectedGroup(group: PermissionGroupDto) {
this.selectedGroup = group;
if (!this.selectedGroup) {
this.selectedGroupPermissions = [];
return;
}
const margin = `margin-${ const margin = `margin-${
(document.body.dir as LocaleDirection) === 'rtl' ? 'right' : 'left' (document.body.dir as LocaleDirection) === 'rtl' ? 'right' : 'left'
@ -123,7 +135,7 @@ export class PermissionManagementComponent
group => group.name === this.selectedGroup.name, group => group.name === this.selectedGroup.name,
).permissions; ).permissions;
return permissions.map( this.selectedGroupPermissions = permissions.map(
permission => permission =>
({ ({
...permission, ...permission,
@ -133,12 +145,6 @@ export class PermissionManagementComponent
); );
} }
constructor(protected service: PermissionsService, protected configState: ConfigStateService) {}
getChecked(name: string) {
return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;
}
setDisabled(permissions: PermissionGrantInfoDto[]) { setDisabled(permissions: PermissionGrantInfoDto[]) {
if (permissions.length) { if (permissions.length) {
this.disableSelectAllTab = permissions.every( this.disableSelectAllTab = permissions.every(
@ -248,7 +254,7 @@ export class PermissionManagementComponent
onChangeGroup(group: PermissionGroupDto) { onChangeGroup(group: PermissionGroupDto) {
this.setDisabled(group.permissions); this.setDisabled(group.permissions);
this.selectedGroup = group; this.setSelectedGroup(group);
this.setTabCheckboxState(); this.setTabCheckboxState();
} }
@ -291,8 +297,8 @@ export class PermissionManagementComponent
return this.service.get(this.providerName, this.providerKey).pipe( return this.service.get(this.providerName, this.providerKey).pipe(
tap((permissionRes: GetPermissionListResultDto) => { tap((permissionRes: GetPermissionListResultDto) => {
this.data = permissionRes; this.data = permissionRes;
this.selectedGroup = permissionRes.groups[0];
this.permissions = getPermissions(permissionRes.groups); this.permissions = getPermissions(permissionRes.groups);
this.setSelectedGroup(permissionRes.groups[0]);
this.disabledSelectAllInAllTabs = this.permissions.every( this.disabledSelectAllInAllTabs = this.permissions.every(
per => per =>
per.isGranted && per.isGranted &&

Loading…
Cancel
Save