permissions dialogs etc

This commit is contained in:
shamoon
2026-07-07 17:00:59 -07:00
parent 4dd84d7367
commit c3a2794a01
3 changed files with 45 additions and 7 deletions
@@ -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<Group> {
groups: Group[]
private groupsSignal = signal<Group[]>(undefined)
get groups(): Group[] {
return this.groupsSignal()
}
set groups(groups: Group[]) {
this.groupsSignal.set(groups)
}
constructor() {
const groupService = inject(GroupService)
@@ -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<User[]> {
users: User[]
private usersSignal = signal<User[]>(undefined)
get users(): User[] {
return this.usersSignal()
}
set users(users: User[]) {
this.usersSignal.set(users)
}
constructor() {
const userService = inject(UserService)
@@ -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<User[]>(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 {