Files
fuse-angular/src/app/modules/admin/apps/mailbox/compose/compose.component.ts
2023-05-04 13:29:53 +03:00

119 lines
3.1 KiB
TypeScript

import { NgIf } from '@angular/common';
import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { FormsModule, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatDialogRef } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { QuillEditorComponent } from 'ngx-quill';
@Component({
selector : 'mailbox-compose',
templateUrl : './compose.component.html',
encapsulation: ViewEncapsulation.None,
standalone : true,
imports : [MatButtonModule, MatIconModule, FormsModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, NgIf, QuillEditorComponent],
})
export class MailboxComposeComponent implements OnInit
{
composeForm: UntypedFormGroup;
copyFields: { cc: boolean; bcc: boolean } = {
cc : false,
bcc: false,
};
quillModules: any = {
toolbar: [
['bold', 'italic', 'underline'],
[{align: []}, {list: 'ordered'}, {list: 'bullet'}],
['clean'],
],
};
/**
* Constructor
*/
constructor(
public matDialogRef: MatDialogRef<MailboxComposeComponent>,
private _formBuilder: UntypedFormBuilder,
)
{
}
// -----------------------------------------------------------------------------------------------------
// @ Lifecycle hooks
// -----------------------------------------------------------------------------------------------------
/**
* On init
*/
ngOnInit(): void
{
// Create the form
this.composeForm = this._formBuilder.group({
to : ['', [Validators.required, Validators.email]],
cc : ['', [Validators.email]],
bcc : ['', [Validators.email]],
subject: [''],
body : ['', [Validators.required]],
});
}
// -----------------------------------------------------------------------------------------------------
// @ Public methods
// -----------------------------------------------------------------------------------------------------
/**
* Show the copy field with the given field name
*
* @param name
*/
showCopyField(name: string): void
{
// Return if the name is not one of the available names
if ( name !== 'cc' && name !== 'bcc' )
{
return;
}
// Show the field
this.copyFields[name] = true;
}
/**
* Save and close
*/
saveAndClose(): void
{
// Save the message as a draft
this.saveAsDraft();
// Close the dialog
this.matDialogRef.close();
}
/**
* Discard the message
*/
discard(): void
{
}
/**
* Save the message as a draft
*/
saveAsDraft(): void
{
}
/**
* Send the message
*/
send(): void
{
}
}