TF-3292 Fix [SEARCH] If I filter emails by date and then sort them by relevance, the filter isn't applied
This commit is contained in:
@@ -79,7 +79,7 @@ Accepted
|
|||||||
|
|
||||||
Brief the logic flows when click `Sort Order` in search:
|
Brief the logic flows when click `Sort Order` in search:
|
||||||
|
|
||||||
- To sort by `Subject`, `Sender` or `Relevance` we will have to use the `position` property and ignore `before` and `after` in `conditions` of `filter`
|
- To sort by `Subject`, `Sender` or `Relevance` we will have to use the `position` property of `filter`
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -99,16 +99,12 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
|
|||||||
? text?.value.trim()
|
? text?.value.trim()
|
||||||
: null,
|
: null,
|
||||||
inMailbox: mailbox?.mailboxId,
|
inMailbox: mailbox?.mailboxId,
|
||||||
after: sortOrderType.isScrollByPosition()
|
after: emailReceiveTimeType.getAfterDate(startDate),
|
||||||
? null
|
|
||||||
: emailReceiveTimeType.getAfterDate(startDate),
|
|
||||||
hasAttachment: !hasAttachment ? null : hasAttachment,
|
hasAttachment: !hasAttachment ? null : hasAttachment,
|
||||||
subject: subject?.trim().isNotEmpty == true
|
subject: subject?.trim().isNotEmpty == true
|
||||||
? subject?.trim()
|
? subject?.trim()
|
||||||
: null,
|
: null,
|
||||||
before: sortOrderType.isScrollByPosition()
|
before: emailReceiveTimeType.getBeforeDate(endDate, before),
|
||||||
? null
|
|
||||||
: emailReceiveTimeType.getBeforeDate(endDate, before),
|
|
||||||
from: from.length == 1
|
from: from.length == 1
|
||||||
? from.first
|
? from.first
|
||||||
: null,
|
: null,
|
||||||
|
|||||||
@@ -215,7 +215,9 @@ class SearchEmailController extends BaseController
|
|||||||
currentSearchText.value = value;
|
currentSearchText.value = value;
|
||||||
_updateSimpleSearchFilter(
|
_updateSimpleSearchFilter(
|
||||||
textOption: option(value.isNotEmpty, SearchQuery(value)),
|
textOption: option(value.isNotEmpty, SearchQuery(value)),
|
||||||
beforeOption: const None(),
|
beforeOption: !searchEmailFilter.value.sortOrderType.isScrollByPosition()
|
||||||
|
? const None()
|
||||||
|
: null,
|
||||||
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0)
|
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0)
|
||||||
);
|
);
|
||||||
if (value.isNotEmpty && session != null && accountId != null) {
|
if (value.isNotEmpty && session != null && accountId != null) {
|
||||||
@@ -319,7 +321,9 @@ class SearchEmailController extends BaseController
|
|||||||
: ThreadConstants.defaultLimit;
|
: ThreadConstants.defaultLimit;
|
||||||
|
|
||||||
_updateSimpleSearchFilter(
|
_updateSimpleSearchFilter(
|
||||||
beforeOption: const None(),
|
beforeOption: !searchEmailFilter.value.sortOrderType.isScrollByPosition()
|
||||||
|
? const None()
|
||||||
|
: null,
|
||||||
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0),
|
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -435,7 +439,9 @@ class SearchEmailController extends BaseController
|
|||||||
|
|
||||||
_updateSimpleSearchFilter(
|
_updateSimpleSearchFilter(
|
||||||
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0),
|
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0),
|
||||||
beforeOption: const None(),
|
beforeOption: !searchEmailFilter.value.sortOrderType.isScrollByPosition()
|
||||||
|
? const None()
|
||||||
|
: null,
|
||||||
);
|
);
|
||||||
|
|
||||||
consumeState(_searchEmailInteractor.execute(
|
consumeState(_searchEmailInteractor.execute(
|
||||||
|
|||||||
@@ -949,7 +949,10 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
|
|
||||||
searchController.updateFilterEmail(
|
searchController.updateFilterEmail(
|
||||||
positionOption: option(_searchEmailFilter.sortOrderType.isScrollByPosition(), 0),
|
positionOption: option(_searchEmailFilter.sortOrderType.isScrollByPosition(), 0),
|
||||||
beforeOption: const None());
|
beforeOption: !_searchEmailFilter.sortOrderType.isScrollByPosition()
|
||||||
|
? const None()
|
||||||
|
: null,
|
||||||
|
);
|
||||||
|
|
||||||
searchController.activateSimpleSearch();
|
searchController.activateSimpleSearch();
|
||||||
|
|
||||||
@@ -1023,10 +1026,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
if (_searchEmailFilter.sortOrderType.isScrollByPosition()) {
|
if (_searchEmailFilter.sortOrderType.isScrollByPosition()) {
|
||||||
final nextPosition = mailboxDashBoardController.emailsInCurrentMailbox.length;
|
final nextPosition = mailboxDashBoardController.emailsInCurrentMailbox.length;
|
||||||
log('ThreadController::_searchMoreEmails:nextPosition: $nextPosition');
|
log('ThreadController::_searchMoreEmails:nextPosition: $nextPosition');
|
||||||
searchController.updateFilterEmail(
|
searchController.updateFilterEmail(positionOption: Some(nextPosition));
|
||||||
positionOption: Some(nextPosition),
|
|
||||||
beforeOption: const None()
|
|
||||||
);
|
|
||||||
} else if (_searchEmailFilter.sortOrderType == EmailSortOrderType.oldest) {
|
} else if (_searchEmailFilter.sortOrderType == EmailSortOrderType.oldest) {
|
||||||
searchController.updateFilterEmail(startDateOption: optionOf(lastEmail?.receivedAt));
|
searchController.updateFilterEmail(startDateOption: optionOf(lastEmail?.receivedAt));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user