TF-3002 [WEB] Allow select All folder from destination picker when search
This commit is contained in:
@@ -481,8 +481,12 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
|||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
controller.selectMailboxAction(PresentationMailbox.unifiedMailbox);
|
if (mailboxIdSelected != null
|
||||||
controller.dispatchSelectMailboxDestination(context);
|
&& mailboxIdSelected != PresentationMailbox.unifiedMailbox.id
|
||||||
|
) {
|
||||||
|
controller.selectMailboxAction(PresentationMailbox.unifiedMailbox);
|
||||||
|
controller.dispatchSelectMailboxDestination(context);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))),
|
customBorder: const RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(8))),
|
||||||
hoverColor: AppColor.colorMailboxHovered,
|
hoverColor: AppColor.colorMailboxHovered,
|
||||||
@@ -511,15 +515,16 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
|||||||
),
|
),
|
||||||
)),
|
)),
|
||||||
const SizedBox(width: 8),
|
const SizedBox(width: 8),
|
||||||
if (actions == MailboxActions.select && (mailboxIdSelected == null ||
|
if (_validateDisplaySelectedIcon(
|
||||||
mailboxIdSelected == PresentationMailbox.unifiedMailbox.id))
|
actions: actions,
|
||||||
|
mailboxIdSelected: mailboxIdSelected
|
||||||
|
))
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: const EdgeInsetsDirectional.only(end: 30.0),
|
||||||
right: AppUtils.isDirectionRTL(context) ? 0 : 30.0,
|
|
||||||
left: AppUtils.isDirectionRTL(context) ? 30 : 0.0,
|
|
||||||
),
|
|
||||||
child: SvgPicture.asset(
|
child: SvgPicture.asset(
|
||||||
controller.imagePaths.icFilterSelected,
|
actions == MailboxActions.create
|
||||||
|
? controller.imagePaths.icSelectedSB
|
||||||
|
: controller.imagePaths.icFilterSelected,
|
||||||
width: 20,
|
width: 20,
|
||||||
height: 20,
|
height: 20,
|
||||||
fit: BoxFit.fill
|
fit: BoxFit.fill
|
||||||
@@ -532,6 +537,14 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool _validateDisplaySelectedIcon({
|
||||||
|
MailboxActions? actions,
|
||||||
|
MailboxId? mailboxIdSelected
|
||||||
|
}) {
|
||||||
|
return (actions == MailboxActions.select || actions == MailboxActions.create)
|
||||||
|
&& (mailboxIdSelected == null || mailboxIdSelected == PresentationMailbox.unifiedMailbox.id);
|
||||||
|
}
|
||||||
|
|
||||||
void _handleOpenMailboxNodeClick(MailboxNode mailboxNode) {
|
void _handleOpenMailboxNodeClick(MailboxNode mailboxNode) {
|
||||||
PresentationMailbox presentationMailbox;
|
PresentationMailbox presentationMailbox;
|
||||||
final path = controller.findNodePath(mailboxNode.item.id)
|
final path = controller.findNodePath(mailboxNode.item.id)
|
||||||
|
|||||||
+10
-12
@@ -1718,19 +1718,17 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
|||||||
|
|
||||||
if (destinationMailbox is! PresentationMailbox) return;
|
if (destinationMailbox is! PresentationMailbox) return;
|
||||||
|
|
||||||
if (destinationMailbox != PresentationMailbox.unifiedMailbox &&
|
searchController.updateFilterEmail(
|
||||||
mailboxIdSelected != destinationMailbox.id) {
|
mailboxOption: destinationMailbox.id == PresentationMailbox.unifiedMailbox.id
|
||||||
|
? const None()
|
||||||
|
: Some(destinationMailbox),
|
||||||
|
beforeOption: const None(),
|
||||||
|
positionOption: searchController.sortOrderFiltered.value.isScrollByPosition()
|
||||||
|
? const Some(0)
|
||||||
|
: const None()
|
||||||
|
);
|
||||||
|
|
||||||
searchController.updateFilterEmail(
|
dispatchAction(StartSearchEmailAction());
|
||||||
mailboxOption: Some(destinationMailbox),
|
|
||||||
beforeOption: const None(),
|
|
||||||
positionOption: searchController.sortOrderFiltered.value.isScrollByPosition()
|
|
||||||
? const Some(0)
|
|
||||||
: const None()
|
|
||||||
);
|
|
||||||
|
|
||||||
dispatchAction(StartSearchEmailAction());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void selectReceiveTimeQuickSearchFilter(BuildContext context, EmailReceiveTimeType receiveTime) {
|
void selectReceiveTimeQuickSearchFilter(BuildContext context, EmailReceiveTimeType receiveTime) {
|
||||||
|
|||||||
@@ -600,19 +600,20 @@ class SearchEmailController extends BaseController
|
|||||||
? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments)
|
? await DialogRouter.pushGeneralDialog(routeName: AppRoutes.destinationPicker, arguments: arguments)
|
||||||
: await push(AppRoutes.destinationPicker, arguments: arguments);
|
: await push(AppRoutes.destinationPicker, arguments: arguments);
|
||||||
|
|
||||||
if (destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox is! PresentationMailbox) return;
|
||||||
final mailboxSelected = destinationMailbox == PresentationMailbox.unifiedMailbox ? null : destinationMailbox;
|
|
||||||
if (mailboxSelected != null && mailbox?.id != mailboxSelected.id) {
|
|
||||||
_updateSimpleSearchFilter(
|
|
||||||
mailboxOption: Some(mailboxSelected),
|
|
||||||
beforeOption: const None(),
|
|
||||||
positionOption: emailSortOrderType.value.isScrollByPosition() ? const Some(0) : const None()
|
|
||||||
);
|
|
||||||
|
|
||||||
if (context.mounted) {
|
_updateSimpleSearchFilter(
|
||||||
_searchEmailAction(context);
|
mailboxOption: destinationMailbox.id == PresentationMailbox.unifiedMailbox.id
|
||||||
}
|
? const None()
|
||||||
}
|
: Some(destinationMailbox),
|
||||||
|
beforeOption: const None(),
|
||||||
|
positionOption: emailSortOrderType.value.isScrollByPosition()
|
||||||
|
? const Some(0)
|
||||||
|
: const None()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (context.mounted) {
|
||||||
|
_searchEmailAction(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user