TF-3002 [WEB] Add Advanced Search & Clear filter button in search filters
This commit is contained in:
@@ -161,4 +161,22 @@ class SearchEmailByFromFieldsAction extends DashBoardAction {
|
||||
|
||||
class CloseSearchEmailViewAction extends DashBoardAction {}
|
||||
|
||||
class CancelSelectionSearchEmailAction extends DashBoardAction {}
|
||||
class CancelSelectionSearchEmailAction extends DashBoardAction {}
|
||||
|
||||
class OpenAdvancedSearchViewAction extends DashBoardAction {
|
||||
final BuildContext context;
|
||||
|
||||
OpenAdvancedSearchViewAction(this.context);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [context];
|
||||
}
|
||||
|
||||
class ClearSearchFilterAppliedAction extends DashBoardAction {
|
||||
final BuildContext context;
|
||||
|
||||
ClearSearchFilterAppliedAction(this.context);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [context];
|
||||
}
|
||||
@@ -83,6 +83,7 @@ class AdvancedFilterController extends BaseController {
|
||||
_resetAllToOriginalValue();
|
||||
_clearAllTextFieldInput();
|
||||
searchController.searchInputController.clear();
|
||||
searchController.clearSortOrder();
|
||||
searchController.deactivateAdvancedSearch();
|
||||
searchController.isAdvancedSearchViewOpen.value = false;
|
||||
_mailboxDashBoardController.searchEmail(context);
|
||||
@@ -421,6 +422,10 @@ class AdvancedFilterController extends BaseController {
|
||||
searchController.updateFilterEmail(fromOption: Some(listAddress));
|
||||
|
||||
_mailboxDashBoardController.dispatchAction(StartSearchEmailAction());
|
||||
} else if (action is OpenAdvancedSearchViewAction) {
|
||||
initSearchFilterField(action.context);
|
||||
} else if (action is ClearSearchFilterAppliedAction) {
|
||||
clearSearchFilter(action.context);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
+14
@@ -2815,6 +2815,20 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
||||
&& selectedMailbox.value!.countTotalEmails <= 0;
|
||||
}
|
||||
|
||||
bool get isSearchFilterHasApplied {
|
||||
return searchController.isSearchFilterHasApplied ||
|
||||
filterMessageOption.value != FilterMessageOption.all;
|
||||
}
|
||||
|
||||
void openAdvancedSearchView(BuildContext context) {
|
||||
dispatchAction(OpenAdvancedSearchViewAction(context));
|
||||
searchController.openAdvanceSearch();
|
||||
}
|
||||
|
||||
void clearAllSearchFilterApplied(BuildContext context) {
|
||||
dispatchAction(ClearSearchFilterAppliedAction(context));
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
if (PlatformInfo.isWeb) {
|
||||
|
||||
@@ -200,6 +200,15 @@ class SearchController extends BaseController with DateRangePickerMixin {
|
||||
|
||||
bool get isSearchEmailRunning => simpleSearchIsActivated.isTrue || advancedSearchIsActivated.isTrue;
|
||||
|
||||
bool get isSearchFilterHasApplied {
|
||||
return searchEmailFilter.value.from.isNotEmpty ||
|
||||
searchEmailFilter.value.to.isNotEmpty ||
|
||||
searchEmailFilter.value.emailReceiveTimeType != EmailReceiveTimeType.allTime ||
|
||||
(searchEmailFilter.value.mailbox != PresentationMailbox.unifiedMailbox && searchEmailFilter.value.mailbox != null) ||
|
||||
searchEmailFilter.value.hasAttachment == true ||
|
||||
sortOrderFiltered.value != EmailSortOrderType.mostRecent;
|
||||
}
|
||||
|
||||
void enableSearch() {
|
||||
searchState.value = searchState.value.enableSearchState();
|
||||
}
|
||||
@@ -263,7 +272,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
|
||||
searchFocus.unfocus();
|
||||
}
|
||||
|
||||
void _clearSortOrder() {
|
||||
void clearSortOrder() {
|
||||
sortOrderFiltered.value = EmailSortOrderType.mostRecent;
|
||||
}
|
||||
|
||||
@@ -272,7 +281,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
|
||||
deactivateSimpleSearch();
|
||||
hideSimpleSearchFormView();
|
||||
|
||||
_clearSortOrder();
|
||||
clearSortOrder();
|
||||
clearSearchFilter();
|
||||
deactivateAdvancedSearch();
|
||||
hideAdvancedSearchFormView();
|
||||
|
||||
@@ -441,7 +441,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
Flexible(
|
||||
child: SizedBox(
|
||||
height: 45,
|
||||
child: ScrollbarListView(
|
||||
@@ -469,12 +469,33 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
_buildQuickSearchFilterButton(context, QuickSearchFilter.dateTime),
|
||||
MailboxDashboardViewWebStyle.searchFilterSizeBoxMargin,
|
||||
_buildQuickSearchFilterButton(context, QuickSearchFilter.hasAttachment),
|
||||
MailboxDashboardViewWebStyle.searchFilterSizeBoxMargin,
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
),
|
||||
if (controller.isSearchFilterHasApplied)
|
||||
TMailButtonWidget.fromText(
|
||||
text: AppLocalizations.of(context).clearFilter,
|
||||
backgroundColor: Colors.transparent,
|
||||
margin: const EdgeInsetsDirectional.only(start: 8),
|
||||
borderRadius: 10,
|
||||
textStyle: const TextStyle(
|
||||
color: AppColor.primaryColor,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.w500),
|
||||
onTapActionCallback: () => controller.clearAllSearchFilterApplied(context))
|
||||
else
|
||||
TMailButtonWidget.fromText(
|
||||
text: AppLocalizations.of(context).advancedSearch,
|
||||
backgroundColor: Colors.transparent,
|
||||
margin: const EdgeInsetsDirectional.only(start: 8),
|
||||
borderRadius: 10,
|
||||
textStyle: const TextStyle(
|
||||
color: AppColor.primaryColor,
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.w500),
|
||||
onTapActionCallback: () => controller.openAdvancedSearchView(context))
|
||||
]
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user