import { Component, Input, OnDestroy, OnInit, inject } from '@angular/core'; import { Subscription } from 'rxjs'; import { IDetailsControl } from '../../../../shared/models/details-control'; import { DialogService } from '../../../../shared/services/dialog.service'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { SubscriptionExpirationDateService } from '../../../../shared/services/subscription-expiration-date.service'; @Component({ selector: 'lib-users-add-user', templateUrl: './users-add-user.component.html', styleUrl: './users-add-user.component.scss' }) export class UsersAddUserComponent implements OnInit, OnDestroy { @Input() dialogID_addUser!: string; private dialogStateSubscription!: Subscription; private _expirationDateService = inject(SubscriptionExpirationDateService); private _dialogService = inject(DialogService); private _fb = inject(FormBuilder); public dialogState!: IDetailsControl; public addNewUserForm!: FormGroup; public selectedSubscriptions: any[] = []; public subcriptionsEntity: number = 1; public subscriptionStart: any; public minimumDate: any; public permisions:any ngOnInit(): void { this.dialogStateSubscription = this._dialogService .getDialogState(this.dialogID_addUser) .subscribe((state) => { this.dialogState = state; }); this.setFormStructure() } ngOnDestroy(): void { this.dialogStateSubscription.unsubscribe(); } setFormStructure(): void { this.addNewUserForm = this._fb.group({ userField: ['240', [Validators.required]], userCreationDate: ['', [Validators.required]], userCreation: ['', [Validators.required]], userFirstName: ['', [Validators.required]], userNick: ['', [Validators.required]], userEmail: ['', [Validators.required]], userPassword: ['', [Validators.required]], }); } editOn() { this.setEditMode(this.dialogID_addUser, true); } closeDialog(): void { this._dialogService.closeDialog(this.dialogID_addUser); } openDialog(id: string): void { this._dialogService.openDialog(id); } setEditMode(id: string, isEditing: boolean): void { this._dialogService.setEditingState(id, isEditing); } addNewSubscription(subName: string): void { const newSub = { name: subName, entity: 1, date: new Date(), }; this.selectedSubscriptions.push(newSub); } removeSub(index: number) { console.log(index); if (index !== -1) { this.selectedSubscriptions.splice(index, 1); } } getSubscriptionTypeColor(subscriptionType: string) { return this._expirationDateService.getSubscriptionTypeColor( subscriptionType ); } }