RED-6225, fix permission toggles not updating when leaving page.
This commit is contained in:
parent
fa526e9f4a
commit
5cf539ef14
@ -15,7 +15,7 @@ import { EntityPermissionsService } from '@services/entity-permissions/entity-pe
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { PermissionsMapService } from '@services/entity-permissions/permissions-map.service';
|
||||
import { PermissionsConfigurationMapService } from '@services/entity-permissions/permissions-configuration-map.service';
|
||||
import { Subscription } from 'rxjs';
|
||||
import { map, Subscription } from 'rxjs';
|
||||
import { tap } from 'rxjs/operators';
|
||||
import { permissionsTranslations } from '@translations/permissions-translations';
|
||||
import { RouterHistoryService } from '@services/router-history.service';
|
||||
@ -57,7 +57,11 @@ export class PermissionsScreenComponent extends ListingComponent<PermissionsMapp
|
||||
});
|
||||
this.#subscription = this._permissionsMapService
|
||||
.get$(this.targetObject)
|
||||
.pipe(tap(permissions => this.entitiesService.setEntities(permissions)))
|
||||
.pipe(
|
||||
// force update internal mappings set in constructor
|
||||
map(permissions => permissions.map(p => new PermissionsMapping(p))),
|
||||
tap(permissions => this.entitiesService.setEntities(permissions)),
|
||||
)
|
||||
.subscribe();
|
||||
}
|
||||
|
||||
|
||||
@ -8,14 +8,14 @@ export class PermissionsMapping extends Entity<IPermissionsMapping> implements I
|
||||
readonly targetPermission: IPermission;
|
||||
readonly sort: number;
|
||||
|
||||
readonly #currentValuesMap = new Map<string, boolean>();
|
||||
readonly #currentValues: string[] = [];
|
||||
|
||||
constructor(permissionsMapping: IPermissionsMapping) {
|
||||
super(permissionsMapping);
|
||||
this.mappedPermissions = permissionsMapping.mappedPermissions;
|
||||
this.targetPermission = permissionsMapping.targetPermission;
|
||||
this.sort = this.targetPermission.sort;
|
||||
this.mappedPermissions.forEach(permission => this.#currentValuesMap.set(permission.name, true));
|
||||
this.#currentValues = this.mappedPermissions.map(permission => permission.name);
|
||||
}
|
||||
|
||||
get id(): string {
|
||||
@ -27,6 +27,6 @@ export class PermissionsMapping extends Entity<IPermissionsMapping> implements I
|
||||
}
|
||||
|
||||
getValue(permissionName: string): boolean {
|
||||
return this.#currentValuesMap.has(permissionName);
|
||||
return this.#currentValues.includes(permissionName);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user