TF-3515 Add save email as template feature
This commit is contained in:
@@ -39,12 +39,12 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
}
|
||||
}
|
||||
|
||||
Set<EmailAddress>? createReplyToRecipients({bool isDraft = false}) {
|
||||
Set<EmailAddress>? createReplyToRecipients({bool isNotReplyTo = false}) {
|
||||
if (replyToRecipients?.isNotEmpty == true) {
|
||||
return replyToRecipients;
|
||||
}
|
||||
|
||||
if (isDraft) return null;
|
||||
if (isNotReplyTo) return null;
|
||||
|
||||
return identity?.replyTo?.isNotEmpty == true
|
||||
? identity!.replyTo!
|
||||
@@ -60,18 +60,27 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
KeyWordIdentifier.emailDraft: true,
|
||||
KeyWordIdentifier.emailSeen: true,
|
||||
};
|
||||
} else if (templateMailboxId != null) {
|
||||
return {
|
||||
KeyWordIdentifier.emailSeen: true,
|
||||
};
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Map<MailboxId, bool>? createMailboxIds() {
|
||||
if (draftsMailboxId != null || outboxMailboxId != null) {
|
||||
if (draftsMailboxId != null
|
||||
|| outboxMailboxId != null
|
||||
|| templateMailboxId != null
|
||||
) {
|
||||
return {
|
||||
if (draftsMailboxId != null)
|
||||
draftsMailboxId!: true,
|
||||
if (outboxMailboxId != null)
|
||||
outboxMailboxId!: true,
|
||||
if (templateMailboxId != null)
|
||||
templateMailboxId!: true,
|
||||
};
|
||||
} else {
|
||||
return null;
|
||||
@@ -115,6 +124,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
required PartId partId,
|
||||
bool withIdentityHeader = false,
|
||||
bool isDraft = false,
|
||||
bool isTemplate = false,
|
||||
}) {
|
||||
return Email(
|
||||
mailboxIds: createMailboxIds(),
|
||||
@@ -122,7 +132,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
to: toRecipients,
|
||||
cc: ccRecipients,
|
||||
bcc: bccRecipients,
|
||||
replyTo: createReplyToRecipients(isDraft: isDraft),
|
||||
replyTo: createReplyToRecipients(isNotReplyTo: isDraft || isTemplate),
|
||||
inReplyTo: createInReplyTo(),
|
||||
references: createReferences(),
|
||||
keywords: createKeywords(),
|
||||
|
||||
@@ -65,8 +65,9 @@ extension SetupEmailContentExtension on ComposerController {
|
||||
inlineImages: uiState.inlineImages,
|
||||
);
|
||||
|
||||
if (currentEmailActionType == EmailActionType.editDraft) {
|
||||
setupEmailRequestReadReceiptFlagForEditDraft(
|
||||
if (currentEmailActionType == EmailActionType.editDraft ||
|
||||
currentEmailActionType == EmailActionType.editAsNewEmail) {
|
||||
setupEmailRequestReadReceiptFlag(
|
||||
uiState.emailCurrent!.hasRequestReadReceipt,
|
||||
);
|
||||
setupSelectedIdentityForEditDraft(
|
||||
@@ -81,8 +82,9 @@ extension SetupEmailContentExtension on ComposerController {
|
||||
inlineImages: uiState.inlineImages,
|
||||
);
|
||||
|
||||
if (currentEmailActionType == EmailActionType.editDraft) {
|
||||
setupEmailRequestReadReceiptFlagForEditDraft(
|
||||
if (currentEmailActionType == EmailActionType.editDraft ||
|
||||
currentEmailActionType == EmailActionType.editAsNewEmail) {
|
||||
setupEmailRequestReadReceiptFlag(
|
||||
uiState.emailCurrent.hasRequestReadReceipt,
|
||||
);
|
||||
setupSelectedIdentityForEditDraft(
|
||||
|
||||
+2
-1
@@ -10,7 +10,8 @@ extension SetupEmailRequestReadReceiptFlagExtension on ComposerController {
|
||||
void setupEmailRequestReadReceiptFlag(ComposerArguments arguments) {
|
||||
if (currentEmailActionType == EmailActionType.reopenComposerBrowser) {
|
||||
hasRequestReadReceipt.value = arguments.hasRequestReadReceipt ?? false;
|
||||
} else if (currentEmailActionType != EmailActionType.editDraft) {
|
||||
} else if (currentEmailActionType != EmailActionType.editDraft &&
|
||||
currentEmailActionType != EmailActionType.editAsNewEmail) {
|
||||
getServerSetting();
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ import 'package:tmail_ui_user/features/composer/presentation/composer_controller
|
||||
|
||||
extension SetupEmailRequestReadReceiptFlagExtension on ComposerController {
|
||||
|
||||
void setupEmailRequestReadReceiptFlagForEditDraft(bool isRequestReadReceipt) {
|
||||
void setupEmailRequestReadReceiptFlag(bool isRequestReadReceipt) {
|
||||
hasRequestReadReceipt.value = isRequestReadReceipt;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import 'package:model/email/email_action_type.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
|
||||
extension SetupEmailTemplateIdExtension on ComposerController {
|
||||
void setupEmailTemplateId(ComposerArguments arguments) {
|
||||
if (currentEmailActionType == EmailActionType.editAsNewEmail ||
|
||||
currentEmailActionType == EmailActionType.reopenComposerBrowser
|
||||
) {
|
||||
currentTemplateEmailId = arguments.savedEmailTemplateId;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user