TF-3406 Add edit as new email feature
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -43,6 +43,12 @@ mixin EmailActionController {
|
||||
mailboxDashBoardController.goToComposer(ComposerArguments.editDraftEmail(presentationEmail));
|
||||
}
|
||||
|
||||
void editAsNewEmail(PresentationEmail presentationEmail) {
|
||||
mailboxDashBoardController.goToComposer(
|
||||
ComposerArguments.fromPresentationEmail(presentationEmail),
|
||||
);
|
||||
}
|
||||
|
||||
void previewEmail(PresentationEmail presentationEmail) {
|
||||
log('EmailActionController::previewEmail():presentationEmailId: ${presentationEmail.id}');
|
||||
mailboxDashBoardController.openEmailDetailedView(presentationEmail);
|
||||
|
||||
@@ -1152,6 +1152,8 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
case EmailActionType.preview:
|
||||
if (mailboxContain?.isDrafts == true) {
|
||||
editDraftEmail(selectedEmail);
|
||||
} else if (mailboxContain?.isTemplates == true) {
|
||||
editAsNewEmail(selectedEmail);
|
||||
} else {
|
||||
previewEmail(selectedEmail);
|
||||
}
|
||||
|
||||
@@ -697,6 +697,8 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
_markAsEmailSpamOrUnSpamContextMenuItemAction(context, email, mailboxContain),
|
||||
if (mailboxContain?.isArchive == false)
|
||||
_archiveMessageContextMenuItemAction(context, email),
|
||||
if (mailboxContain?.isDrafts == false)
|
||||
_editAsNewEmailContextMenuItemAction(context, email),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -770,7 +772,7 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
email,
|
||||
iconLeftPadding: controller.responsiveUtils.isMobile(context)
|
||||
? const EdgeInsetsDirectional.only(start: 12, end: 16)
|
||||
: const EdgeInsetsDirectional.only(start: 12),
|
||||
: const EdgeInsetsDirectional.only(end: 12),
|
||||
iconRightPadding: controller.responsiveUtils.isMobile(context)
|
||||
? const EdgeInsetsDirectional.only(start: 12)
|
||||
: EdgeInsets.zero
|
||||
@@ -779,6 +781,35 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
).build();
|
||||
}
|
||||
|
||||
Widget _editAsNewEmailContextMenuItemAction(
|
||||
BuildContext context,
|
||||
PresentationEmail email,
|
||||
) {
|
||||
return (
|
||||
EmailActionCupertinoActionSheetActionBuilder(
|
||||
const Key('edit_as_new_email_action'),
|
||||
SvgPicture.asset(
|
||||
controller.imagePaths.icEdit,
|
||||
width: 24,
|
||||
height: 24,
|
||||
fit: BoxFit.fill,
|
||||
colorFilter: AppColor.colorTextButton.asFilter()
|
||||
),
|
||||
AppLocalizations.of(context).editAsNewEmail,
|
||||
email,
|
||||
iconLeftPadding: controller.responsiveUtils.isMobile(context)
|
||||
? const EdgeInsetsDirectional.only(start: 12, end: 16)
|
||||
: const EdgeInsetsDirectional.only(end: 12),
|
||||
iconRightPadding: controller.responsiveUtils.isMobile(context)
|
||||
? const EdgeInsetsDirectional.only(start: 12)
|
||||
: EdgeInsets.zero)
|
||||
..onActionClick((email) {
|
||||
popBack();
|
||||
controller.editAsNewEmail(email);
|
||||
})
|
||||
).build();
|
||||
}
|
||||
|
||||
List<PopupMenuEntry> _popupMenuActionTile(BuildContext context, PresentationEmail email) {
|
||||
final mailboxContain = email.mailboxContain;
|
||||
|
||||
@@ -788,6 +819,8 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
_buildMarkAsSpamPopupMenuItem(context, email, mailboxContain),
|
||||
if (mailboxContain?.isArchive == false)
|
||||
_buildArchiveMessagePopupMenuItem(context, email),
|
||||
if (mailboxContain?.isDrafts == false)
|
||||
_buildEditAsNewEmailPopupMenuItem(AppLocalizations.of(context), email),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -865,6 +898,29 @@ class ThreadView extends GetWidget<ThreadController>
|
||||
);
|
||||
}
|
||||
|
||||
PopupMenuEntry _buildEditAsNewEmailPopupMenuItem(
|
||||
AppLocalizations appLocalizations,
|
||||
PresentationEmail email,
|
||||
) {
|
||||
return PopupMenuItem(
|
||||
padding: EdgeInsets.zero,
|
||||
child: popupItem(
|
||||
controller.imagePaths.icEdit,
|
||||
appLocalizations.editAsNewEmail,
|
||||
colorIcon: AppColor.colorTextButton,
|
||||
styleName: const TextStyle(
|
||||
fontWeight: FontWeight.w500,
|
||||
fontSize: 16,
|
||||
color: Colors.black
|
||||
),
|
||||
onCallbackAction: () {
|
||||
popBack();
|
||||
controller.editAsNewEmail(email);
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildMailboxActionProgressBanner(BuildContext context) {
|
||||
return Obx(() {
|
||||
return _MailboxActionProgressBanner(
|
||||
|
||||
Reference in New Issue
Block a user