54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
import { Component, Inject, OnInit } from '@angular/core';
|
|
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
import { UserAliasManagementService } from '../../../services/admin/useralias.management.service';
|
|
|
|
@Component({
|
|
standalone: false,
|
|
selector: 'admin-user-alias-edit-dialog',
|
|
templateUrl: './user-alias.edit.html',
|
|
styleUrls: ['../admin.scss']
|
|
})
|
|
export class AdminUserAliasEditDialog implements OnInit {
|
|
form: FormGroup;
|
|
isEditMode: boolean = false;
|
|
visibilityOptions = ['PRIVATE', 'PROTECTED', 'PUBLIC'];
|
|
|
|
constructor(
|
|
private fb: FormBuilder,
|
|
private userAliasManagementService: UserAliasManagementService,
|
|
public dialogRef: MatDialogRef<AdminUserAliasEditDialog>,
|
|
@Inject(MAT_DIALOG_DATA) public data: any
|
|
) {
|
|
this.isEditMode = !!data?.userAlias;
|
|
|
|
this.form = this.fb.group({
|
|
id: [data?.userAlias?.id || null],
|
|
target: [data?.userAlias?.target || null, Validators.required],
|
|
alias: [data?.userAlias?.alias || '', Validators.required],
|
|
visibility: [data?.userAlias?.visibility || 'PROTECTED', Validators.required]
|
|
});
|
|
}
|
|
|
|
ngOnInit(): void {}
|
|
|
|
onSubmit(): void {
|
|
if (this.form.valid) {
|
|
const userAlias = this.form.value;
|
|
|
|
this.userAliasManagementService.createOrUpdateAlias(userAlias).subscribe({
|
|
next: (result) => {
|
|
this.dialogRef.close(result);
|
|
},
|
|
error: (error) => {
|
|
console.error('Error saving user alias:', error);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
onCancel(): void {
|
|
this.dialogRef.close();
|
|
}
|
|
}
|