From c3a2794a01c6fc8d2fdbb40740c00055a246826f Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 7 Jul 2026 17:00:59 -0700 Subject: [PATCH] permissions dialogs etc --- .../permissions-group.component.ts | 12 ++++++-- .../permissions-user.component.ts | 12 ++++++-- .../permissions-dialog.component.ts | 28 +++++++++++++++++-- 3 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src-ui/src/app/components/common/input/permissions/permissions-group/permissions-group.component.ts b/src-ui/src/app/components/common/input/permissions/permissions-group/permissions-group.component.ts index 005dc5477..aab796c69 100644 --- a/src-ui/src/app/components/common/input/permissions/permissions-group/permissions-group.component.ts +++ b/src-ui/src/app/components/common/input/permissions/permissions-group/permissions-group.component.ts @@ -1,4 +1,4 @@ -import { Component, forwardRef, inject } from '@angular/core' +import { Component, forwardRef, inject, signal } from '@angular/core' import { FormsModule, NG_VALUE_ACCESSOR, @@ -24,7 +24,15 @@ import { AbstractInputComponent } from '../../abstract-input' imports: [NgSelectComponent, FormsModule, ReactiveFormsModule], }) export class PermissionsGroupComponent extends AbstractInputComponent { - groups: Group[] + private groupsSignal = signal(undefined) + + get groups(): Group[] { + return this.groupsSignal() + } + + set groups(groups: Group[]) { + this.groupsSignal.set(groups) + } constructor() { const groupService = inject(GroupService) diff --git a/src-ui/src/app/components/common/input/permissions/permissions-user/permissions-user.component.ts b/src-ui/src/app/components/common/input/permissions/permissions-user/permissions-user.component.ts index 8a071c1c1..a254a0d86 100644 --- a/src-ui/src/app/components/common/input/permissions/permissions-user/permissions-user.component.ts +++ b/src-ui/src/app/components/common/input/permissions/permissions-user/permissions-user.component.ts @@ -1,4 +1,4 @@ -import { Component, forwardRef, inject } from '@angular/core' +import { Component, forwardRef, inject, signal } from '@angular/core' import { FormsModule, NG_VALUE_ACCESSOR, @@ -24,7 +24,15 @@ import { AbstractInputComponent } from '../../abstract-input' imports: [NgSelectComponent, FormsModule, ReactiveFormsModule], }) export class PermissionsUserComponent extends AbstractInputComponent { - users: User[] + private usersSignal = signal(undefined) + + get users(): User[] { + return this.usersSignal() + } + + set users(users: User[]) { + this.usersSignal.set(users) + } constructor() { const userService = inject(UserService) diff --git a/src-ui/src/app/components/common/permissions-dialog/permissions-dialog.component.ts b/src-ui/src/app/components/common/permissions-dialog/permissions-dialog.component.ts index 56c26f785..efef891a9 100644 --- a/src-ui/src/app/components/common/permissions-dialog/permissions-dialog.component.ts +++ b/src-ui/src/app/components/common/permissions-dialog/permissions-dialog.component.ts @@ -1,4 +1,11 @@ -import { Component, EventEmitter, Input, Output, inject } from '@angular/core' +import { + Component, + EventEmitter, + Input, + Output, + inject, + signal, +} from '@angular/core' import { FormControl, FormGroup, @@ -27,13 +34,22 @@ export class PermissionsDialogComponent { activeModal = inject(NgbActiveModal) private userService = inject(UserService) - users: User[] + private usersSignal = signal(undefined) + private buttonsEnabledSignal = signal(true) private o: ObjectWithPermissions = undefined constructor() { this.userService.listAll().subscribe((r) => (this.users = r.results)) } + get users(): User[] { + return this.usersSignal() + } + + set users(users: User[]) { + this.usersSignal.set(users) + } + @Output() public confirmClicked = new EventEmitter() @@ -65,7 +81,13 @@ export class PermissionsDialogComponent { merge: new FormControl(true), }) - buttonsEnabled: boolean = true + get buttonsEnabled(): boolean { + return this.buttonsEnabledSignal() + } + + set buttonsEnabled(buttonsEnabled: boolean) { + this.buttonsEnabledSignal.set(buttonsEnabled) + } get permissions() { return {