TF-997 Custom date ranges in search
This commit is contained in:
+37
-14
@@ -10,6 +10,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/sear
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form_bottom_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/drop_down_button_filter_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_auto_complete_email_adress.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
with PopupContextMenuActionMixin {
|
||||
@@ -70,18 +71,30 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
|
||||
mouseCursor: SystemMouseCursors.click,
|
||||
onTap: () => controller.selectedMailBox()),
|
||||
_buildFilterField(
|
||||
textEditingController: controller.dateFilterInputController,
|
||||
context: context,
|
||||
advancedSearchFilterField: AdvancedSearchFilterField.date,
|
||||
isSelectFormList: true,
|
||||
onTap: () {
|
||||
openContextMenuAction(
|
||||
context,
|
||||
_buildEmailReceiveTimeTypeActionTiles(context),
|
||||
);
|
||||
},
|
||||
),
|
||||
Row(children: [
|
||||
Expanded(child: _buildFilterField(
|
||||
textEditingController: controller.dateFilterInputController,
|
||||
context: context,
|
||||
advancedSearchFilterField: AdvancedSearchFilterField.date,
|
||||
isSelectFormList: true,
|
||||
onTap: () {
|
||||
openContextMenuAction(
|
||||
context,
|
||||
_buildEmailReceiveTimeTypeActionTiles(context),
|
||||
);
|
||||
},
|
||||
)),
|
||||
const SizedBox(width: 10),
|
||||
buildIconWeb(
|
||||
icon: SvgPicture.asset(
|
||||
_imagePaths.icCalendarSB,
|
||||
width: 24,
|
||||
height: 24,
|
||||
fit: BoxFit.fill),
|
||||
tooltip: AppLocalizations.of(context).selectDate,
|
||||
iconPadding: EdgeInsets.zero,
|
||||
onTap: () => controller.selectDateRange(context)),
|
||||
]),
|
||||
AdvancedSearchFilterFormBottomView(focusManager: controller.focusManager)
|
||||
],
|
||||
);
|
||||
@@ -95,7 +108,11 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
child: Row(children: [
|
||||
const SizedBox(width: 12),
|
||||
Expanded(
|
||||
child: Text(e.getTitle(context),
|
||||
child: Text(
|
||||
e.getTitle(
|
||||
context,
|
||||
startDate: controller.startDate,
|
||||
endDate: controller.endDate),
|
||||
style: const TextStyle(
|
||||
fontSize: 15,
|
||||
color: Colors.black,
|
||||
@@ -112,8 +129,14 @@ class AdvancedSearchInputForm extends GetWidget<AdvancedFilterController>
|
||||
]
|
||||
]),
|
||||
onTap: () {
|
||||
if (e != EmailReceiveTimeType.customRange) {
|
||||
controller.clearDateRangeOfFilter();
|
||||
}
|
||||
controller.dateFilterSelectedFormAdvancedSearch.value = e;
|
||||
controller.dateFilterInputController.text = e.getTitle(context);
|
||||
controller.dateFilterInputController.text = e.getTitle(
|
||||
context,
|
||||
startDate: controller.startDate,
|
||||
endDate: controller.endDate);
|
||||
},
|
||||
),
|
||||
),
|
||||
|
||||
+19
-3
@@ -17,8 +17,17 @@ class DateDropDownButton extends GetWidget<AdvancedFilterController> {
|
||||
items: EmailReceiveTimeType.values,
|
||||
itemSelected: controller.dateFilterSelectedFormAdvancedSearch.value,
|
||||
context: context,
|
||||
startDate: controller.startDate,
|
||||
endDate: controller.endDate,
|
||||
onChanged: (item) {
|
||||
if (item != EmailReceiveTimeType.customRange) {
|
||||
controller.clearDateRangeOfFilter();
|
||||
}
|
||||
controller.dateFilterSelectedFormAdvancedSearch.value = item!;
|
||||
controller.dateFilterInputController.text = item.getTitle(
|
||||
context,
|
||||
startDate: controller.startDate,
|
||||
endDate: controller.endDate);
|
||||
},
|
||||
),
|
||||
);
|
||||
@@ -30,6 +39,8 @@ Widget _buildDropDownButton<T>({
|
||||
required T itemSelected,
|
||||
required BuildContext context,
|
||||
required Function(T?)? onChanged,
|
||||
DateTime? startDate,
|
||||
DateTime? endDate
|
||||
}) {
|
||||
final ImagePaths _imagePaths = Get.find<ImagePaths>();
|
||||
|
||||
@@ -43,6 +54,8 @@ Widget _buildDropDownButton<T>({
|
||||
StringConvert.writeNullToEmpty(_getTextItemDropdown<T>(
|
||||
item: item,
|
||||
context: context,
|
||||
startDate: startDate,
|
||||
endDate: endDate,
|
||||
)),
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
@@ -81,10 +94,13 @@ Widget _buildDropDownButton<T>({
|
||||
);
|
||||
}
|
||||
|
||||
String? _getTextItemDropdown<T>(
|
||||
{required T item, required BuildContext context}) {
|
||||
String? _getTextItemDropdown<T>({required T item,
|
||||
required BuildContext context,
|
||||
DateTime? startDate,
|
||||
DateTime? endDate
|
||||
}) {
|
||||
if (item is EmailReceiveTimeType) {
|
||||
return item.getTitle(context);
|
||||
return item.getTitle(context, startDate: startDate, endDate: endDate);
|
||||
}
|
||||
|
||||
if (item is Mailbox) {
|
||||
|
||||
Reference in New Issue
Block a user