TF-1231 When remove Subject in AdvancedSearch, filter is not update because it is empty
This commit is contained in:
committed by
Dat H. Pham
parent
077eeed38b
commit
d9c0ded54d
+6
-10
@@ -1,5 +1,6 @@
|
|||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_date_range_picker/multiple_view_date_range_picker.dart';
|
import 'package:flutter_date_range_picker/multiple_view_date_range_picker.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@@ -36,18 +37,14 @@ class AdvancedFilterController extends BaseController {
|
|||||||
final lastTextForm = ''.obs;
|
final lastTextForm = ''.obs;
|
||||||
final lastTextTo = ''.obs;
|
final lastTextTo = ''.obs;
|
||||||
TextEditingController subjectFilterInputController = TextEditingController();
|
TextEditingController subjectFilterInputController = TextEditingController();
|
||||||
TextEditingController hasKeyWordFilterInputController =
|
TextEditingController hasKeyWordFilterInputController = TextEditingController();
|
||||||
TextEditingController();
|
TextEditingController notKeyWordFilterInputController = TextEditingController();
|
||||||
TextEditingController notKeyWordFilterInputController =
|
|
||||||
TextEditingController();
|
|
||||||
TextEditingController dateFilterInputController = TextEditingController();
|
TextEditingController dateFilterInputController = TextEditingController();
|
||||||
TextEditingController mailBoxFilterInputController = TextEditingController();
|
TextEditingController mailBoxFilterInputController = TextEditingController();
|
||||||
ContactSuggestionSource _contactSuggestionSource =
|
ContactSuggestionSource _contactSuggestionSource = ContactSuggestionSource.tMailContact;
|
||||||
ContactSuggestionSource.tMailContact;
|
|
||||||
|
|
||||||
final SearchController searchController = Get.find<SearchController>();
|
final SearchController searchController = Get.find<SearchController>();
|
||||||
final MailboxDashBoardController _mailboxDashBoardController =
|
final MailboxDashBoardController _mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
||||||
Get.find<MailboxDashBoardController>();
|
|
||||||
final _appToast = Get.find<AppToast>();
|
final _appToast = Get.find<AppToast>();
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
@@ -129,8 +126,7 @@ class AdvancedFilterController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
searchController.updateFilterEmail(
|
searchController.updateFilterEmail(
|
||||||
subject:
|
subjectOption: optionOf(subjectFilterInputController.text),
|
||||||
StringConvert.writeEmptyToNull(subjectFilterInputController.text),
|
|
||||||
emailReceiveTimeType: dateFilterSelectedFormAdvancedSearch.value,
|
emailReceiveTimeType: dateFilterSelectedFormAdvancedSearch.value,
|
||||||
hasAttachment: hasAttachment.value,
|
hasAttachment: hasAttachment.value,
|
||||||
endDate: _endDate.toUTCDate(),
|
endDate: _endDate.toUTCDate(),
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
@@ -119,7 +120,7 @@ class SearchController extends BaseController {
|
|||||||
Set<String>? from,
|
Set<String>? from,
|
||||||
Set<String>? to,
|
Set<String>? to,
|
||||||
SearchQuery? text,
|
SearchQuery? text,
|
||||||
String? subject,
|
Option<String>? subjectOption,
|
||||||
Set<String>? notKeyword,
|
Set<String>? notKeyword,
|
||||||
PresentationMailbox? mailbox,
|
PresentationMailbox? mailbox,
|
||||||
EmailReceiveTimeType? emailReceiveTimeType,
|
EmailReceiveTimeType? emailReceiveTimeType,
|
||||||
@@ -132,7 +133,7 @@ class SearchController extends BaseController {
|
|||||||
from: from,
|
from: from,
|
||||||
to: to,
|
to: to,
|
||||||
text: text,
|
text: text,
|
||||||
subject: subject,
|
subjectOption: subjectOption,
|
||||||
notKeyword: notKeyword,
|
notKeyword: notKeyword,
|
||||||
mailbox: mailbox,
|
mailbox: mailbox,
|
||||||
emailReceiveTimeType: emailReceiveTimeType,
|
emailReceiveTimeType: emailReceiveTimeType,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/filter/filter_operator.dart';
|
import 'package:jmap_dart_client/jmap/core/filter/filter_operator.dart';
|
||||||
@@ -46,7 +47,7 @@ class SearchEmailFilter with EquatableMixin {
|
|||||||
Set<String>? from,
|
Set<String>? from,
|
||||||
Set<String>? to,
|
Set<String>? to,
|
||||||
SearchQuery? text,
|
SearchQuery? text,
|
||||||
String? subject,
|
Option<String>? subjectOption,
|
||||||
Set<String>? notKeyword,
|
Set<String>? notKeyword,
|
||||||
PresentationMailbox? mailbox,
|
PresentationMailbox? mailbox,
|
||||||
EmailReceiveTimeType? emailReceiveTimeType,
|
EmailReceiveTimeType? emailReceiveTimeType,
|
||||||
@@ -59,7 +60,7 @@ class SearchEmailFilter with EquatableMixin {
|
|||||||
from: from ?? this.from,
|
from: from ?? this.from,
|
||||||
to: to ?? this.to,
|
to: to ?? this.to,
|
||||||
text: text ?? this.text,
|
text: text ?? this.text,
|
||||||
subject: subject ?? this.subject,
|
subject: _getOptionParam(subjectOption, subject),
|
||||||
notKeyword: notKeyword ?? this.notKeyword,
|
notKeyword: notKeyword ?? this.notKeyword,
|
||||||
mailbox: mailbox ?? this.mailbox,
|
mailbox: mailbox ?? this.mailbox,
|
||||||
emailReceiveTimeType: emailReceiveTimeType ?? this.emailReceiveTimeType,
|
emailReceiveTimeType: emailReceiveTimeType ?? this.emailReceiveTimeType,
|
||||||
@@ -70,6 +71,14 @@ class SearchEmailFilter with EquatableMixin {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
T? _getOptionParam<T>(Option<T?>? option, T? defaultValue) {
|
||||||
|
if (option != null) {
|
||||||
|
return option.toNullable();
|
||||||
|
} else {
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Filter? mappingToEmailFilterCondition({EmailFilterCondition? moreFilterCondition}) {
|
Filter? mappingToEmailFilterCondition({EmailFilterCondition? moreFilterCondition}) {
|
||||||
final emailEmailFilterConditionShared = EmailFilterCondition(
|
final emailEmailFilterConditionShared = EmailFilterCondition(
|
||||||
text: text?.value.trim().isNotEmpty == true
|
text: text?.value.trim().isNotEmpty == true
|
||||||
|
|||||||
Reference in New Issue
Block a user