add advanced search filter by mailbox
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
SERVER_URL=https://jmap.upn.integration-open-paas.org
|
SERVER_URL=http://localhost
|
||||||
DOMAIN_REDIRECT_URL=http://localhost:3000
|
DOMAIN_REDIRECT_URL=http://localhost:3000
|
||||||
WEB_OIDC_CLIENT_ID=teammail-web
|
WEB_OIDC_CLIENT_ID=teammail-web
|
||||||
@@ -13,7 +13,7 @@ class CheckOIDCIsAvailableInteractor {
|
|||||||
try {
|
try {
|
||||||
final result = await _oidcRepository.checkOIDCIsAvailable(oidcRequest);
|
final result = await _oidcRepository.checkOIDCIsAvailable(oidcRequest);
|
||||||
log('CheckOIDCIsAvailableInteractor::execute(): result: $result');
|
log('CheckOIDCIsAvailableInteractor::execute(): result: $result');
|
||||||
return Left<Failure, Success>(CheckOIDCIsAvailableFailure('aaaa'));
|
return Right<Failure, Success>(CheckOIDCIsAvailableSuccess(result));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log('CheckOIDCIsAvailableInteractor::execute(): ERROR: $e');
|
log('CheckOIDCIsAvailableInteractor::execute(): ERROR: $e');
|
||||||
return Left<Failure, Success>(CheckOIDCIsAvailableFailure(e));
|
return Left<Failure, Success>(CheckOIDCIsAvailableFailure(e));
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
|||||||
enum MailboxActions {
|
enum MailboxActions {
|
||||||
create,
|
create,
|
||||||
moveEmail,
|
moveEmail,
|
||||||
|
select,
|
||||||
delete,
|
delete,
|
||||||
rename,
|
rename,
|
||||||
move,
|
move,
|
||||||
@@ -21,6 +22,8 @@ extension MailboxActionsExtension on MailboxActions {
|
|||||||
return AppLocalizations.of(context).mailbox_location;
|
return AppLocalizations.of(context).mailbox_location;
|
||||||
case MailboxActions.moveEmail:
|
case MailboxActions.moveEmail:
|
||||||
return AppLocalizations.of(context).move_message;
|
return AppLocalizations.of(context).move_message;
|
||||||
|
case MailboxActions.select:
|
||||||
|
return AppLocalizations.of(context).selectMailbox;
|
||||||
case MailboxActions.move:
|
case MailboxActions.move:
|
||||||
return AppLocalizations.of(context).allMailboxes;
|
return AppLocalizations.of(context).allMailboxes;
|
||||||
default:
|
default:
|
||||||
|
|||||||
+42
-10
@@ -4,15 +4,18 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:model/mailbox/presentation_mailbox.dart';
|
import 'package:model/mailbox/presentation_mailbox.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||||
|
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
|
||||||
|
import 'package:tmail_ui_user/main/routes/app_routes.dart';
|
||||||
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
class AdvancedFilterController extends BaseController {
|
class AdvancedFilterController extends BaseController {
|
||||||
|
|
||||||
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
|
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
|
||||||
final mailboxFilterSelectedFormAdvancedSearch = Rxn<PresentationMailbox>();
|
|
||||||
final hasAttachment = false.obs;
|
final hasAttachment = false.obs;
|
||||||
|
|
||||||
TextEditingController fromFilterInputController = TextEditingController();
|
TextEditingController fromFilterInputController = TextEditingController();
|
||||||
@@ -34,34 +37,66 @@ class AdvancedFilterController extends BaseController {
|
|||||||
|
|
||||||
cleanSearchFilter() {
|
cleanSearchFilter() {
|
||||||
_searchController.cleanSearchFilter();
|
_searchController.cleanSearchFilter();
|
||||||
|
dateFilterSelectedFormAdvancedSearch.value = EmailReceiveTimeType.allTime;
|
||||||
|
fromFilterInputController.text = '';
|
||||||
|
toFilterInputController.text = '';
|
||||||
|
subjectFilterInputController.text = '';
|
||||||
|
hasKeyWordFilterInputController.text = '';
|
||||||
|
notKeyWordFilterInputController.text = '';
|
||||||
|
dateFilterInputController.text = '';
|
||||||
|
hasAttachment.value = false;
|
||||||
|
_searchController.isAdvancedSearchHasApply.isFalse;
|
||||||
|
_searchController.isAdvancedSearchViewOpen.toggle();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _updateFilterEmailFromAdvancedSearchView() {
|
void _updateFilterEmailFromAdvancedSearchView() {
|
||||||
if (fromFilterInputController.text.isNotEmpty) {
|
if (fromFilterInputController.text.isNotEmpty) {
|
||||||
_searchEmailFilter.from.add(fromFilterInputController.text);
|
_searchController.updateFilterEmail(from: fromFilterInputController.text.split(',').toSet());
|
||||||
}
|
}
|
||||||
if (toFilterInputController.text.isNotEmpty) {
|
if (toFilterInputController.text.isNotEmpty) {
|
||||||
_searchEmailFilter.to.add(toFilterInputController.text);
|
_searchController.updateFilterEmail(to: toFilterInputController.text.split(',').toSet());
|
||||||
}
|
}
|
||||||
_searchController.searchEmailFilter.value = _searchEmailFilter.copyWith(
|
|
||||||
|
_searchController.updateFilterEmail(
|
||||||
subject: StringConvert.writeEmptyToNull(subjectFilterInputController.text),
|
subject: StringConvert.writeEmptyToNull(subjectFilterInputController.text),
|
||||||
hasKeyword: Wrapped.value(
|
hasKeyword: Wrapped.value(
|
||||||
StringConvert.writeEmptyToNull(hasKeyWordFilterInputController.text)),
|
StringConvert.writeEmptyToNull(hasKeyWordFilterInputController.text)),
|
||||||
notKeyword: Wrapped.value(
|
notKeyword: Wrapped.value(
|
||||||
StringConvert.writeNullToEmpty(notKeyWordFilterInputController.text)),
|
StringConvert.writeEmptyToNull(notKeyWordFilterInputController.text)),
|
||||||
mailbox: mailboxFilterSelectedFormAdvancedSearch.value,
|
|
||||||
emailReceiveTimeType: dateFilterSelectedFormAdvancedSearch.value,
|
emailReceiveTimeType: dateFilterSelectedFormAdvancedSearch.value,
|
||||||
hasAttachment: hasAttachment.value,
|
hasAttachment: hasAttachment.value,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> selectedMailBox() async{
|
||||||
|
final PresentationMailbox destinationMailbox = await push(
|
||||||
|
AppRoutes.DESTINATION_PICKER,
|
||||||
|
arguments: DestinationPickerArguments(_mailboxDashBoardController.accountId.value!, MailboxActions.moveEmail));
|
||||||
|
_searchController.updateFilterEmail(mailbox: destinationMailbox);
|
||||||
|
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(destinationMailbox.name?.name);
|
||||||
|
}
|
||||||
|
|
||||||
applyAdvancedSearchFilter(BuildContext context){
|
applyAdvancedSearchFilter(BuildContext context){
|
||||||
_updateFilterEmailFromAdvancedSearchView();
|
_updateFilterEmailFromAdvancedSearchView();
|
||||||
_mailboxDashBoardController.searchEmail(context, StringConvert.writeNullToEmpty(_searchEmailFilter.text?.value));
|
_mailboxDashBoardController.searchEmail(context, StringConvert.writeNullToEmpty(_searchEmailFilter.text?.value));
|
||||||
|
_searchController.isAdvancedSearchViewOpen.toggle();
|
||||||
|
_searchController.isAdvancedSearchHasApply.value = _checkAdvancedSearchHasApply();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool _checkAdvancedSearchHasApply() {
|
||||||
|
return fromFilterInputController.text.isNotEmpty ||
|
||||||
|
toFilterInputController.text.isNotEmpty ||
|
||||||
|
subjectFilterInputController.text.isNotEmpty ||
|
||||||
|
hasKeyWordFilterInputController.text.isNotEmpty ||
|
||||||
|
notKeyWordFilterInputController.text.isNotEmpty ||
|
||||||
|
dateFilterInputController.text.isNotEmpty ||
|
||||||
|
mailBoxFilterInputController.text.isNotEmpty ||
|
||||||
|
hasAttachment.isFalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
initSearchFilterField(BuildContext context) {
|
initSearchFilterField(BuildContext context) {
|
||||||
fromFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.from.firstOrNull);
|
_searchController.updateFilterEmail(mailbox: _mailboxDashBoardController.selectedMailbox.value);
|
||||||
|
fromFilterInputController.text = StringConvert.writeNullToEmpty(_searchController.searchEmailFilter.value.from.firstOrNull);
|
||||||
toFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.to.firstOrNull);
|
toFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.to.firstOrNull);
|
||||||
subjectFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.subject);
|
subjectFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.subject);
|
||||||
hasKeyWordFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.hasKeyword);
|
hasKeyWordFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.hasKeyword);
|
||||||
@@ -69,18 +104,15 @@ class AdvancedFilterController extends BaseController {
|
|||||||
dateFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.emailReceiveTimeType.getTitle(context));
|
dateFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.emailReceiveTimeType.getTitle(context));
|
||||||
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.mailbox?.name?.name);
|
mailBoxFilterInputController.text = StringConvert.writeNullToEmpty(_searchEmailFilter.mailbox?.name?.name);
|
||||||
dateFilterSelectedFormAdvancedSearch.value = _searchEmailFilter.emailReceiveTimeType;
|
dateFilterSelectedFormAdvancedSearch.value = _searchEmailFilter.emailReceiveTimeType;
|
||||||
mailboxFilterSelectedFormAdvancedSearch.value = _searchEmailFilter.mailbox;
|
|
||||||
hasAttachment.value = _searchEmailFilter.hasAttachment;
|
hasAttachment.value = _searchEmailFilter.hasAttachment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onDone() {
|
void onDone() {
|
||||||
// TODO: implement onDone
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onError(error) {
|
void onError(error) {
|
||||||
// TODO: implement onError
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
+1
@@ -243,6 +243,7 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
void setNewFirstSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
void setNewFirstSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
||||||
selectedMailbox.firstRebuild = true;
|
selectedMailbox.firstRebuild = true;
|
||||||
selectedMailbox.value = newPresentationMailbox;
|
selectedMailbox.value = newPresentationMailbox;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSelectedEmail(PresentationEmail? newPresentationEmail) {
|
void setSelectedEmail(PresentationEmail? newPresentationEmail) {
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ class SearchController extends BaseController {
|
|||||||
final accountId = Rxn<AccountId>();
|
final accountId = Rxn<AccountId>();
|
||||||
final userProfile = Rxn<UserProfile>();
|
final userProfile = Rxn<UserProfile>();
|
||||||
final isAdvancedSearchViewOpen = false.obs;
|
final isAdvancedSearchViewOpen = false.obs;
|
||||||
|
final isAdvancedSearchHasApply = false.obs;
|
||||||
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
|
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
|
||||||
final mailboxFilterSelectedFormAdvancedSearch = Rxn<PresentationMailbox>();
|
final mailboxFilterSelectedFormAdvancedSearch = Rxn<PresentationMailbox>();
|
||||||
final hasAttachment = false.obs;
|
final hasAttachment = false.obs;
|
||||||
@@ -144,11 +145,11 @@ class SearchController extends BaseController {
|
|||||||
searchFocus.addListener(() {
|
searchFocus.addListener(() {
|
||||||
final hasFocus = searchFocus.hasFocus;
|
final hasFocus = searchFocus.hasFocus;
|
||||||
final query = searchEmailFilter.value.text?.value;
|
final query = searchEmailFilter.value.text?.value;
|
||||||
log('MailboxDashBoardController::_registerSearchFocusListener(): hasFocus: $hasFocus | query: $query');
|
log('SearchController::_registerSearchFocusListener(): hasFocus: $hasFocus | query: $query');
|
||||||
if (!hasFocus && (query == null || query.isEmpty)) {
|
if (!hasFocus && (query == null || query.isEmpty) && isAdvancedSearchHasApply.isFalse) {
|
||||||
updateFilterEmail(text: SearchQuery.initial());
|
updateFilterEmail(text: SearchQuery.initial());
|
||||||
searchInputController.clear();
|
searchInputController.clear();
|
||||||
cleanSearchFilter();
|
cleanSearchFilter();
|
||||||
searchFocus.unfocus();
|
searchFocus.unfocus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -165,7 +166,6 @@ class SearchController extends BaseController {
|
|||||||
searchState.value = searchState.value.disableSearchState();
|
searchState.value = searchState.value.disableSearchState();
|
||||||
updateFilterEmail(text: SearchQuery.initial());
|
updateFilterEmail(text: SearchQuery.initial());
|
||||||
searchInputController.clear();
|
searchInputController.clear();
|
||||||
cleanSearchFilter();
|
|
||||||
searchFocus.unfocus();
|
searchFocus.unfocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -433,6 +433,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
||||||
controller: controller.searchController.searchInputController,
|
controller: controller.searchController.searchInputController,
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
|
enabled: controller.searchController.isAdvancedSearchViewOpen.isFalse,
|
||||||
focusNode: controller.searchController.searchFocus,
|
focusNode: controller.searchController.searchFocus,
|
||||||
textInputAction: TextInputAction.done,
|
textInputAction: TextInputAction.done,
|
||||||
onSubmitted: (keyword) {
|
onSubmitted: (keyword) {
|
||||||
|
|||||||
+3
-1
@@ -20,7 +20,6 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
controller.initSearchFilterField(context);
|
|
||||||
return Material(
|
return Material(
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
child: Column(
|
child: Column(
|
||||||
@@ -55,6 +54,9 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
|||||||
context: context,
|
context: context,
|
||||||
advancedSearchFilterField: AdvancedSearchFilterField.mailBox,
|
advancedSearchFilterField: AdvancedSearchFilterField.mailBox,
|
||||||
isSelectFormList: true,
|
isSelectFormList: true,
|
||||||
|
onTap: () async {
|
||||||
|
await controller.selectedMailBox();
|
||||||
|
}
|
||||||
),
|
),
|
||||||
_buildFilterField(
|
_buildFilterField(
|
||||||
textEditingController: controller.dateFilterInputController,
|
textEditingController: controller.dateFilterInputController,
|
||||||
|
|||||||
+1
@@ -31,6 +31,7 @@ class AdvancedSearchFilterFormBottomView
|
|||||||
_buildButton(
|
_buildButton(
|
||||||
onAction: () {
|
onAction: () {
|
||||||
controller.cleanSearchFilter();
|
controller.cleanSearchFilter();
|
||||||
|
popBack();
|
||||||
},
|
},
|
||||||
colorButton: AppColor.primaryColor.withOpacity(0.14),
|
colorButton: AppColor.primaryColor.withOpacity(0.14),
|
||||||
colorText: AppColor.primaryColor,
|
colorText: AppColor.primaryColor,
|
||||||
|
|||||||
-10
@@ -25,16 +25,6 @@ class DateDropDownButton extends GetWidget<AdvancedFilterController> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class MailBoxDropDownButton extends StatelessWidget {
|
|
||||||
const MailBoxDropDownButton({Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Container();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Widget _buildDropDownButton<T>({
|
Widget _buildDropDownButton<T>({
|
||||||
required List<T> items,
|
required List<T> items,
|
||||||
required T itemSelected,
|
required T itemSelected,
|
||||||
|
|||||||
+8
-3
@@ -4,6 +4,7 @@ import 'package:core/presentation/views/button/icon_button_web.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||||
|
|
||||||
class IconOpenAdvancedSearchWidget extends StatelessWidget {
|
class IconOpenAdvancedSearchWidget extends StatelessWidget {
|
||||||
@@ -13,7 +14,8 @@ class IconOpenAdvancedSearchWidget extends StatelessWidget {
|
|||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final _imagePaths = Get.find<ImagePaths>();
|
final _imagePaths = Get.find<ImagePaths>();
|
||||||
final controller = Get.find<SearchController>();
|
final SearchController searchController = Get.find<SearchController>();
|
||||||
|
final AdvancedFilterController advancedFilterController = Get.find<AdvancedFilterController>();
|
||||||
final BuildContext _parentContext;
|
final BuildContext _parentContext;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -23,13 +25,16 @@ class IconOpenAdvancedSearchWidget extends StatelessWidget {
|
|||||||
minSize: 0,
|
minSize: 0,
|
||||||
iconPadding: const EdgeInsets.only(right: 8),
|
iconPadding: const EdgeInsets.only(right: 8),
|
||||||
icon: SvgPicture.asset(_imagePaths.icFilterAdvanced,
|
icon: SvgPicture.asset(_imagePaths.icFilterAdvanced,
|
||||||
color: controller.isAdvancedSearchViewOpen.isTrue
|
color: searchController.isAdvancedSearchViewOpen.isTrue || searchController.isAdvancedSearchHasApply.isTrue
|
||||||
? AppColor.colorFilterMessageEnabled
|
? AppColor.colorFilterMessageEnabled
|
||||||
: AppColor.colorFilterMessageDisabled,
|
: AppColor.colorFilterMessageDisabled,
|
||||||
width: 16,
|
width: 16,
|
||||||
height: 16),
|
height: 16),
|
||||||
onTap: () {
|
onTap: () {
|
||||||
controller.showAdvancedFilterView(_parentContext);
|
if(searchController.isAdvancedSearchViewOpen.isFalse && searchController.isAdvancedSearchHasApply.isFalse){
|
||||||
|
advancedFilterController.initSearchFilterField(context);
|
||||||
|
}
|
||||||
|
searchController.showAdvancedFilterView(_parentContext);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -820,7 +820,9 @@ class ThreadController extends BaseController {
|
|||||||
if (_accountId != null && searchQuery != null) {
|
if (_accountId != null && searchQuery != null) {
|
||||||
searchIsActive.value = true;
|
searchIsActive.value = true;
|
||||||
|
|
||||||
searchController.updateFilterEmail(mailbox: currentMailbox);
|
if(searchController.isAdvancedSearchHasApply.isFalse){
|
||||||
|
searchController.updateFilterEmail(mailbox: currentMailbox);
|
||||||
|
}
|
||||||
|
|
||||||
consumeState(_searchEmailInteractor.execute(
|
consumeState(_searchEmailInteractor.execute(
|
||||||
_accountId!,
|
_accountId!,
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
textFieldConfiguration: QuickSearchTextFieldConfiguration(
|
||||||
controller: controller.searchController.searchInputController,
|
controller: controller.searchController.searchInputController,
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
|
enabled: controller.searchController.isAdvancedSearchViewOpen.isFalse,
|
||||||
focusNode: controller.searchController.searchFocus,
|
focusNode: controller.searchController.searchFocus,
|
||||||
textInputAction: TextInputAction.done,
|
textInputAction: TextInputAction.done,
|
||||||
onSubmitted: (keyword) {
|
onSubmitted: (keyword) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"@@last_modified": "2022-06-25T22:39:15.113430",
|
"@@last_modified": "2022-06-26T22:28:09.520951",
|
||||||
"initializing_data": "Initializing data...",
|
"initializing_data": "Initializing data...",
|
||||||
"@initializing_data": {
|
"@initializing_data": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -1495,5 +1495,11 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders_order": [],
|
"placeholders_order": [],
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
|
},
|
||||||
|
"selectMailbox": "Select Mailbox",
|
||||||
|
"@selectMailbox": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1538,4 +1538,11 @@ class AppLocalizations {
|
|||||||
name: 'advancedSearch',
|
name: 'advancedSearch',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get selectMailbox {
|
||||||
|
return Intl.message(
|
||||||
|
'Select Mailbox',
|
||||||
|
name: 'selectMailbox',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user