#26 Listview of custom timetable events
This commit is contained in:
@ -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>(
|
||||
|
Reference in New Issue
Block a user