RED-6225, add changes listener to permission page.

This commit is contained in:
George 2023-02-24 18:42:46 +02:00
parent e3828766fb
commit 3a223bac88

View File

@ -15,8 +15,8 @@ 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 { map, Subscription } from 'rxjs';
import { tap } from 'rxjs/operators';
import { interval, map, Subscription } from 'rxjs';
import { switchMap, tap } from 'rxjs/operators';
import { permissionsTranslations } from '@translations/permissions-translations';
import { RouterHistoryService } from '@services/router-history.service';
import { ROLES } from '@users/roles';
@ -35,7 +35,7 @@ export class PermissionsScreenComponent extends ListingComponent<PermissionsMapp
readonly tableHeaderLabel = _('permissions-screen.table-header.title');
readonly targetObject: string;
readonly mappedPermissions: string[];
readonly #subscription: Subscription;
readonly #subscription: Subscription = new Subscription();
constructor(
route: ActivatedRoute,
@ -55,14 +55,21 @@ export class PermissionsScreenComponent extends ListingComponent<PermissionsMapp
column: 'sort',
order: SortingOrders.asc,
});
this.#subscription = this._permissionsMapService
.get$(this.targetObject)
.pipe(
// force update internal mappings set in constructor
map(permissions => permissions.map(p => new PermissionsMapping(p))),
tap(permissions => this.entitiesService.setEntities(permissions)),
)
.subscribe();
this.#subscription.add(
this._permissionsMapService
.get$(this.targetObject)
.pipe(
// force update internal mappings set in constructor
map(permissions => permissions.map(p => new PermissionsMapping(p))),
tap(permissions => this.entitiesService.setEntities(permissions)),
)
.subscribe(),
);
this.#subscription.add(
interval(5000)
.pipe(switchMap(() => this._entityPermissionsService.loadFor(this.targetObject)))
.subscribe(),
);
}
async togglePermission(targetPermission: string, changedPermission: string): Promise<void> {