import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { JitsiRoomManagementService } from '../../../services/admin/jitsiroom.management.service'; @Component({ standalone: false, selector: 'admin-jitsi-room-edit-dialog', templateUrl: './jitsi-room.edit.html', styleUrls: ['../admin.scss'] }) export class AdminJitsiRoomEditDialog implements OnInit { form: FormGroup; isEditMode: boolean = false; constructor( private fb: FormBuilder, private jitsiRoomManagementService: JitsiRoomManagementService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any ) { this.isEditMode = !!data?.jitsiRoom; // Convert ISO strings to Date objects for the datepicker const startsDate = data?.jitsiRoom?.starts ? new Date(data.jitsiRoom.starts) : null; const moderationStartsDate = data?.jitsiRoom?.moderationStarts ? new Date(data.jitsiRoom.moderationStarts) : null; const expiresDate = data?.jitsiRoom?.expires ? new Date(data.jitsiRoom.expires) : null; this.form = this.fb.group({ id: [data?.jitsiRoom?.id || null], owner: [data?.jitsiRoom?.owner || null], room: [data?.jitsiRoom?.room || '', Validators.required], starts: [startsDate], moderationStarts: [moderationStartsDate], expires: [expiresDate] }); } ngOnInit(): void {} onSubmit(): void { if (this.form.valid) { const jitsiRoom = { ...this.form.value, // Convert Date objects back to ISO strings starts: this.form.value.starts ? this.form.value.starts.toISOString() : null, moderationStarts: this.form.value.moderationStarts ? this.form.value.moderationStarts.toISOString() : null, expires: this.form.value.expires ? this.form.value.expires.toISOString() : null }; this.jitsiRoomManagementService.createOrUpdateJitsiRoom(jitsiRoom).subscribe({ next: (result) => { this.dialogRef.close(result); }, error: (error) => { console.error('Error saving jitsi room:', error); } }); } } onCancel(): void { this.dialogRef.close(); } }