#26 Listview of custom timetable events

This commit is contained in:
2024-03-10 14:48:09 +01:00
parent faf37ff19f
commit 9f467d079f
5 changed files with 166 additions and 26 deletions

View File

@ -20,6 +20,7 @@ import 'arbitraryAppointment.dart';
import 'customTimetableEventEditDialog.dart';
import 'timeRegionComponent.dart';
import 'timetableEvents.dart';
import 'viewCustomTimetableEvents.dart';
class Timetable extends StatefulWidget {
const Timetable({super.key});
@ -28,6 +29,8 @@ class Timetable extends StatefulWidget {
State<Timetable> createState() => _TimetableState();
}
enum CalendarActions { addEvent, viewEvents }
class _TimetableState extends State<Timetable> {
CalendarController controller = CalendarController();
late Timer updateTimings;
@ -66,16 +69,45 @@ class _TimetableState extends State<Timetable> {
controller.displayDate = DateTime.now().add(const Duration(days: 2));
}
),
IconButton(
icon: const Icon(Icons.add_outlined),
onPressed: () {
showDialog(
context: context,
builder: (context) => const CustomTimetableEventEditDialog(),
barrierDismissible: false,
);
PopupMenuButton<CalendarActions>(
icon: const Icon(Icons.edit_calendar_outlined),
itemBuilder: (context) {
return CalendarActions.values.map(
(e) {
String title;
Icon icon;
switch(e) {
case CalendarActions.addEvent:
title = "Kalendereintrag hinzufügen";
icon = const Icon(Icons.add);
case CalendarActions.viewEvents:
default:
title = "Kalendereinträge anzeigen";
icon = const Icon(Icons.perm_contact_calendar_outlined);
}
return PopupMenuItem<CalendarActions>(
value: e,
child: ListTile(
title: Text(title),
leading: icon,
)
);
}
).toList();
},
),
onSelected: (value) {
switch(value) {
case CalendarActions.addEvent:
showDialog(
context: context,
builder: (context) => const CustomTimetableEventEditDialog(),
barrierDismissible: false,
);
case CalendarActions.viewEvents:
Navigator.of(context).push(MaterialPageRoute(builder: (context) => const ViewCustomTimetableEvents()));
}
},
)
],
),
body: Consumer<TimetableProps>(