Files
we_bstly-web/src/app/pages/admin/jitsi-rooms/jitsi-room.edit.ts
T
2025-11-09 01:58:54 +01:00

66 lines
2.3 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 { 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<AdminJitsiRoomEditDialog>,
@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();
}
}