2019-11-06 13:58:56 +09:00
|
|
|
import { RoomInfo } from '@ucap-webmessenger/protocol-room';
|
2020-01-08 12:30:39 +09:00
|
|
|
import { Component, OnInit, Inject, OnDestroy } from '@angular/core';
|
2020-01-07 16:17:27 +09:00
|
|
|
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
2019-11-06 13:58:56 +09:00
|
|
|
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
2020-01-08 12:30:39 +09:00
|
|
|
import { TranslateService } from '@ngx-translate/core';
|
|
|
|
import { take } from 'rxjs/operators';
|
2020-01-08 13:07:51 +09:00
|
|
|
import { Subscription } from 'rxjs';
|
2019-11-06 13:58:56 +09:00
|
|
|
|
|
|
|
export interface EditChatRoomDialogData {
|
|
|
|
title: string;
|
|
|
|
roomInfo: RoomInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface EditChatRoomDialogResult {
|
|
|
|
choice: boolean;
|
|
|
|
roomName?: string;
|
|
|
|
roomNameChangeTarget?: string;
|
|
|
|
timeRoomInterval?: number;
|
|
|
|
roomInfo: RoomInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
selector: 'app-layout-messenger-edit-chat-room',
|
|
|
|
templateUrl: './edit-chat-room.dialog.component.html',
|
|
|
|
styleUrls: ['./edit-chat-room.dialog.component.scss']
|
|
|
|
})
|
2020-01-08 12:30:39 +09:00
|
|
|
export class EditChatRoomDialogComponent implements OnInit, OnDestroy {
|
2019-11-06 13:58:56 +09:00
|
|
|
roomName: string;
|
|
|
|
inputForm: FormGroup;
|
|
|
|
|
2020-01-08 12:30:39 +09:00
|
|
|
timerArray: { value: number; text: string }[];
|
2019-11-06 13:58:56 +09:00
|
|
|
|
2020-01-08 13:07:51 +09:00
|
|
|
unitsI18nSubscription: Subscription;
|
2019-11-06 13:58:56 +09:00
|
|
|
|
|
|
|
constructor(
|
|
|
|
public dialogRef: MatDialogRef<
|
|
|
|
EditChatRoomDialogData,
|
|
|
|
EditChatRoomDialogResult
|
|
|
|
>,
|
|
|
|
@Inject(MAT_DIALOG_DATA) public data: EditChatRoomDialogData,
|
2020-01-08 12:30:39 +09:00
|
|
|
private formBuilder: FormBuilder,
|
|
|
|
private translateService: TranslateService
|
2019-11-06 13:58:56 +09:00
|
|
|
) {}
|
|
|
|
|
|
|
|
ngOnInit(): void {
|
|
|
|
this.inputForm = this.formBuilder.group({
|
2020-01-07 16:17:27 +09:00
|
|
|
roomName: [
|
|
|
|
this.data.roomInfo.roomName,
|
|
|
|
!this.data.roomInfo.isTimeRoom ? [Validators.required] : []
|
|
|
|
],
|
2019-11-06 13:58:56 +09:00
|
|
|
changeTarget: ['me'],
|
|
|
|
timerInterval: [this.data.roomInfo.timeRoomInterval]
|
|
|
|
});
|
2020-01-08 12:30:39 +09:00
|
|
|
|
2020-01-08 13:07:51 +09:00
|
|
|
this.unitsI18nSubscription = this.translateService
|
2020-01-08 12:30:39 +09:00
|
|
|
.get([
|
|
|
|
'common.units.hourFrom',
|
|
|
|
'common.units.minute',
|
|
|
|
'common.units.second'
|
|
|
|
])
|
|
|
|
.pipe(take(1))
|
|
|
|
.subscribe(vs => {
|
|
|
|
this.timerArray = [
|
|
|
|
{ value: 5, text: `5 ${vs['common.units.second']}` },
|
|
|
|
{ value: 10, text: `10 ${vs['common.units.second']}` },
|
|
|
|
{ value: 30, text: `30 ${vs['common.units.second']}` },
|
|
|
|
{ value: 60, text: `1 ${vs['common.units.minute']}` },
|
|
|
|
{ value: 300, text: `5 ${vs['common.units.minute']}` },
|
|
|
|
{ value: 600, text: `10 ${vs['common.units.minute']}` },
|
|
|
|
{ value: 1800, text: `30 ${vs['common.units.minute']}` },
|
|
|
|
{ value: 3600, text: `1 ${vs['common.units.hourFrom']}` },
|
|
|
|
{ value: 21600, text: `6 ${vs['common.units.hourFrom']}` },
|
|
|
|
{ value: 43200, text: `12 ${vs['common.units.hourFrom']}` },
|
|
|
|
{ value: 86400, text: `24 ${vs['common.units.hourFrom']}` }
|
|
|
|
];
|
|
|
|
});
|
2019-11-06 13:58:56 +09:00
|
|
|
}
|
|
|
|
|
2020-01-08 13:07:51 +09:00
|
|
|
ngOnDestroy(): void {
|
|
|
|
if (!!this.unitsI18nSubscription) {
|
|
|
|
this.unitsI18nSubscription.unsubscribe();
|
|
|
|
}
|
2019-11-06 13:58:56 +09:00
|
|
|
}
|
2020-01-08 12:30:39 +09:00
|
|
|
|
2019-11-06 13:58:56 +09:00
|
|
|
onClickChoice(choice: boolean): void {
|
|
|
|
this.dialogRef.close({
|
|
|
|
choice,
|
|
|
|
roomName: this.inputForm.get('roomName').value,
|
|
|
|
roomNameChangeTarget: this.inputForm.get('changeTarget').value,
|
|
|
|
timeRoomInterval: this.inputForm.get('timerInterval').value,
|
|
|
|
roomInfo: this.data.roomInfo
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|