This commit is contained in:
2026-02-13 15:53:22 +01:00
commit 25271189b5
639 changed files with 49083 additions and 0 deletions

212
lib/todo/calendar_old.dart Normal file
View File

@@ -0,0 +1,212 @@
import 'dart:core';
/*class CalendarListPage extends StatefulWidget with NavigationDrawerItem {
final String title = 'Termine';
@override
State<StatefulWidget> createState() => CalendarListPageState();
}
class CalendarListPageState extends State<CalendarListPage> {
List _selectedDayList = [];
Map<DateTime, List<EventModel>> _events = {};
CalendarController? _calendarController;
@override
void dispose() {
_calendarController!.dispose();
super.dispose();
}
@override
void initState() {
super.initState();
_calendarController = CalendarController();
init();
}
void init() async {
EventController.getEventListStream().forEach((events) {
setState(() {
_events = _mapListToCalendarEvents(events);
_selectedDayList = events
.where((e) =>
DateTime(e.schedule.startTime.year, e.schedule.startTime.month, e.schedule.startTime.day) ==
DateTime(
_calendarController!.selectedDay.year,
_calendarController!.selectedDay.month,
_calendarController!.selectedDay.day))
.toList();
});
});
}
@override
Widget build(BuildContext context) => SafeArea(
bottom: false,
child: Padding(
padding: const EdgeInsets.fromLTRB(UIShapes.paddingSimple,
UIShapes.paddingSimple, UIShapes.paddingSimple, 0),
child: ListView(
primary: true,
children: <Widget>[
FormattedCalendar(_events, _calendarController!, _onDaySelected),
ColumnExtension.builder(
itemCount: _selectedDayList.length,
itemBuilder: (context, index) =>
CalendarListTile(_selectedDayList[index]),
),
],
),
),
);
void _onDaySelected(DateTime dateTime, List list, List list2) {
setState(() {
_selectedDayList = list.isEmpty ? [] : list;
});
}
Map<DateTime, List<EventModel>> _mapListToCalendarEvents(List<EventModel> list) {
final map = <DateTime, List<EventModel>>{};
DateTime dateKey;
int i;
int j;
for (final e in list) {
j = 0;
dateKey = e.schedule.startTime;
do {
if (e.schedule.frequency != Frequency.once && e.schedule.interval != null) {
if (e.schedule.frequency == Frequency.days) {
dateKey = dateKey.add(Duration(days: e.schedule.interval!));
} else if (e.schedule.frequency == Frequency.weeks) {
dateKey = dateKey.add(Duration(days: 7 * e.schedule.interval!));
} else if (e.schedule.frequency == Frequency.months) {
dateKey = dateKey =
DateTime(dateKey.year, dateKey.month + e.schedule.interval!, dateKey.day);
}
if (e.schedule.until != null && e.schedule.until!.isBefore(dateKey)) {
break;
}
}
i = 0;
do {
var dateKey2 = dateKey.add(Duration(days: i));
dateKey2 = DateTime(dateKey2.year, dateKey2.month, dateKey2.day);
if (map.containsKey(dateKey2)) {
map[dateKey2]!.add(e);
} else {
map[dateKey2] = [e];
}
i++;
} while (i < e.schedule.endTime.difference(e.schedule.startTime).inDays);
j++;
} while (e.schedule.frequency != Frequency.once && e.schedule.interval != null && j < 52);
}
return map;
}
}
class FormattedCalendar extends StatelessWidget {
final Map<DateTime, List> _events;
final CalendarController _controller;
final void Function(DateTime, List, List) _onDaySelected;
const FormattedCalendar(this._events, this._controller, this._onDaySelected);
@override
Widget build(BuildContext context) {
final defaultCalendar = TableCalendar(
calendarController: CalendarController(),
);
final calendar = TableCalendar(
locale: 'de_DE',
availableCalendarFormats: const {
CalendarFormat.month: 'Month',
},
headerStyle: HeaderStyle(
centerHeaderTitle: true,
titleTextBuilder: (date, locale) =>
'${getMonthName(date.month)} ${date.year.toString()}'.toUpperCase(),
titleTextStyle: UITheme.theme.textTheme.headline5,
),
daysOfWeekStyle: DaysOfWeekStyle(
weekendStyle: defaultCalendar.daysOfWeekStyle.weekdayStyle,
dowTextBuilder: (date, locale) =>
getDayName(date.weekday).toUpperCase(),
),
startingDayOfWeek: StartingDayOfWeek.monday,
calendarStyle: CalendarStyle(
outsideWeekendStyle: defaultCalendar.calendarStyle.outsideStyle,
weekendStyle: defaultCalendar.calendarStyle.weekdayStyle
.apply(color: UIColors.grey5),
weekdayStyle: defaultCalendar.calendarStyle.weekdayStyle
.apply(color: UIColors.grey5),
eventDayStyle: defaultCalendar.calendarStyle.weekdayStyle
.apply(color: UIColors.grey5,),
todayColor: UIColors.grey3,
selectedColor: UIColors.grey5,
markersColor: Color(0xFFFFD445),
),
events: _events,
calendarController: _controller,
onDaySelected: _onDaySelected,
);
return calendar;
}
static String getMonthName(int month) {
switch (month) {
case 1:
return 'Januar';
case 2:
return 'Februar';
case 3:
return 'März';
case 4:
return 'April';
case 5:
return 'Mai';
case 6:
return 'Juni';
case 7:
return 'July';
case 8:
return 'August';
case 9:
return 'September';
case 10:
return 'Oktober';
case 11:
return 'November';
case 12:
return 'Dezember';
default:
return '?';
}
}
static String getDayName(int month) {
switch (month) {
case 1:
return 'Mo';
case 2:
return 'Di';
case 3:
return 'Mi';
case 4:
return 'Do';
case 5:
return 'Fr';
case 6:
return 'Sa';
case 7:
return 'So';
default:
return '?';
}
}
}
*/