Browse Source

Merge pull request #14813 from abpframework/auto-merge/rel-6-0/1493

Merge branch rel-7.0 with rel-6.0
pull/14817/head
Muhammed Altuğ 4 years ago
committed by GitHub
parent
commit
a6da832172
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html
  2. 49
      npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts

4
npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html

@ -32,10 +32,11 @@
class="nav-link pointer"
[class.active]="selectedGroup?.name === group?.name"
(click)="onChangeGroup(group)"
(select)="setDisabled(group.permissions)"
>
<div [class.font-weight-bold]="count.assignedCount">
{{ group?.displayName }}
<span>({{ count.assignedCount }})</span>
<span *ngIf="count.assignedCount > 0">({{ count.assignedCount }})</span>
</div>
</a>
</li>
@ -53,6 +54,7 @@
name="select-all-in-this-tabs"
class="form-check-input"
[(ngModel)]="selectThisTab"
[disabled]="disableSelectAllTab"
(click)="onClickSelectThisTab()"
/>
<label class="form-check-label" for="select-all-in-this-tabs">{{

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

@ -104,6 +104,8 @@ export class PermissionManagementComponent
selectAllTab = false;
disableSelectAllTab = false;
modalBusy = false;
trackByFn: TrackByFunction<PermissionGroupDto> = (_, item) => item.name;
@ -135,6 +137,18 @@ export class PermissionManagementComponent
return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted;
}
setDisabled(grantedProviders) {
if (grantedProviders.length) {
grantedProviders.forEach(permission => {
this.disableSelectAllTab = permission.grantedProviders?.some(
p => p.providerName !== this.providerName,
);
});
} else {
this.disableSelectAllTab = false;
}
}
isGrantedByOtherProviderName(grantedProviders: ProviderInfoDto[]): boolean {
if (grantedProviders.length) {
return grantedProviders.findIndex(p => p.providerName !== this.providerName) > -1;
@ -150,24 +164,25 @@ export class PermissionManagementComponent
return;
setTimeout(() => {
this.permissions = this.permissions.map(per => {
if (clickedPermission.name === per.name) {
return { ...per, isGranted: !per.isGranted };
} else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {
return { ...per, isGranted: false };
} else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {
return { ...per, isGranted: true };
}
return per;
}).map((per,index,permissions) => {
const childrens = permissions
.filter(p => p.parentName === per.name);
if(childrens.length > 0 && childrens.every(x => !x.isGranted)){
this.permissions = this.permissions
.map(per => {
if (clickedPermission.name === per.name) {
return { ...per, isGranted: !per.isGranted };
} else if (clickedPermission.name === per.parentName && clickedPermission.isGranted) {
return { ...per, isGranted: false };
} else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {
return { ...per, isGranted: true };
}
return per
});
return per;
})
.map((per, index, permissions) => {
const childrens = permissions.filter(p => p.parentName === per.name);
if (childrens.length > 0 && childrens.every(x => !x.isGranted)) {
return { ...per, isGranted: false };
}
return per;
});
this.setTabCheckboxState();
this.setGrantCheckboxState();
}, 0);
@ -231,6 +246,7 @@ export class PermissionManagementComponent
}
onChangeGroup(group: PermissionGroupDto) {
this.setDisabled(group.permissions);
this.selectedGroup = group;
this.setTabCheckboxState();
}
@ -283,6 +299,7 @@ export class PermissionManagementComponent
initModal() {
// TODO: Refactor
setTimeout(() => {
this.setDisabled(this.permissions);
this.setTabCheckboxState();
this.setGrantCheckboxState();
});

Loading…
Cancel
Save