Implement time-range filter
Some checks failed
Build Docker and Deploy / Build Docker Container (push) Successful in 52s
Build Docker and Deploy / Run Unit-Tests (push) Failing after 11m28s
Build Docker and Deploy / Deploy to Server (push) Has been skipped

This commit is contained in:
2025-05-11 16:32:55 +02:00
parent 255fc9337c
commit 3e0c4845e9
6 changed files with 31 additions and 54 deletions

View File

@@ -5,8 +5,10 @@ import 'package:simplecloudnotifier/components/modals/filter_modal_keytoken.dart
import 'package:simplecloudnotifier/components/modals/filter_modal_priority.dart';
import 'package:simplecloudnotifier/components/modals/filter_modal_searchplain.dart';
import 'package:simplecloudnotifier/components/modals/filter_modal_sendername.dart';
import 'package:simplecloudnotifier/components/modals/filter_modal_time.dart';
import 'package:simplecloudnotifier/pages/message_list/message_filter_chiplet.dart';
import 'package:simplecloudnotifier/state/app_bar_state.dart';
import 'package:simplecloudnotifier/state/app_events.dart';
import 'package:simplecloudnotifier/state/app_settings.dart';
import 'package:simplecloudnotifier/utils/navi.dart';
class AppBarFilterDialog extends StatefulWidget {
@@ -116,7 +118,21 @@ class _AppBarFilterDialogState extends State<AppBarFilterDialog> {
}
void _showTimeModal(BuildContext context) {
showDialog<void>(context: context, builder: (BuildContext context) => FilterModalTime());
final dateFormat = AppSettings().dateFormat.dateOnlyFormat();
final now = DateTime.now();
showDateRangePicker(context: context, firstDate: DateTime(2000), lastDate: DateTime(now.year, now.month, now.day + 7)).then((value) {
if (value != null) {
List<MessageFilterChiplet> chiplets = [];
chiplets.add(MessageFilterChiplet(
label: dateFormat.format(value.start) + ' - ' + dateFormat.format(value.end),
value: value,
type: MessageFilterChipletType.timeRange,
));
AppEvents().notifyFilterListeners([MessageFilterChipletType.plainSearch], chiplets);
}
});
}
void _showPlainSearchModal(BuildContext context) {

View File

@@ -1,44 +0,0 @@
import 'package:flutter/material.dart';
import 'package:simplecloudnotifier/utils/navi.dart';
class FilterModalTime extends StatefulWidget {
@override
_FilterModalTimeState createState() => _FilterModalTimeState();
}
class _FilterModalTimeState extends State<FilterModalTime> {
DateTime? _tsBefore = null;
DateTime? _tsAfter = null;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return AlertDialog(
title: const Text('Timerange'),
content: Container(
width: 9000,
height: 9000,
child: Placeholder(),
),
actions: <Widget>[
TextButton(
style: TextButton.styleFrom(textStyle: Theme.of(context).textTheme.labelLarge),
child: const Text('Apply'),
onPressed: () {
onOkay();
},
),
],
);
}
void onOkay() {
Navi.popDialog(context);
//TODO
}
}