diff options
| author | Aldrik Ramaekers <aldrik@amftech.nl> | 2022-08-16 15:14:43 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrik@amftech.nl> | 2022-08-16 15:14:43 +0200 |
| commit | 9144664c98824924e3d7668557a4455693bcf7f6 (patch) | |
| tree | 5427daae2a5aa20a99809da44d11e33d0fe800a0 /lib/pages | |
| parent | 00bf8823311c067f5b0e9a785a5048e6bd8ad122 (diff) | |
saving and reading
Diffstat (limited to 'lib/pages')
| -rw-r--r-- | lib/pages/add_shift_page.dart | 33 | ||||
| -rw-r--r-- | lib/pages/agenda_page.dart | 16 | ||||
| -rw-r--r-- | lib/pages/home_page.dart | 14 |
3 files changed, 41 insertions, 22 deletions
diff --git a/lib/pages/add_shift_page.dart b/lib/pages/add_shift_page.dart index 64b6142..d81ae3e 100644 --- a/lib/pages/add_shift_page.dart +++ b/lib/pages/add_shift_page.dart @@ -32,6 +32,9 @@ class _AddShiftPageState extends State<AddShiftPage> { void addShift() { DateTime startDate = widget.mondayOfWeek; switch (dropdownValue) { + case 'Maandag': + startDate = startDate.add(Duration(days: 0)); + break; case 'Dinsdag': startDate = startDate.add(Duration(days: 1)); break; @@ -52,20 +55,34 @@ class _AddShiftPageState extends State<AddShiftPage> { break; } - shiftProvider.addShift(Shift( - start: startDate, - type: isSelected[0] - ? ShiftType.Dagrit - : isSelected[1] - ? ShiftType.Avondrit - : ShiftType.Terugscannen)); + ShiftType type = ShiftType.Dagrit; + if (isSelected[1]) type = ShiftType.Avondrit; + if (isSelected[2]) type = ShiftType.Terugscannen; + + switch (type) { + case ShiftType.Dagrit: + startDate = startDate.add(Duration(hours: 10)); + break; + case ShiftType.Avondrit: + startDate = startDate.add(Duration( + hours: startDate.weekday == 6 ? 15 : 17, + minutes: startDate.weekday == 6 ? 30 : 0)); + break; + case ShiftType.Terugscannen: + startDate = startDate.add( + Duration(hours: startDate.weekday == 6 ? 13 : 14, minutes: 30)); + break; + } + + shiftProvider.addShift(Shift(start: startDate, type: type)); Navigator.pop(context, true); // Previous page will not refresh without this. Navigator.pushAndRemoveUntil( context, - MaterialPageRoute(builder: (context) => HomePage()), + MaterialPageRoute( + builder: (context) => HomePage(agendaWeekNr: widget.pageIndex)), (Route<dynamic> route) => false, ); } diff --git a/lib/pages/agenda_page.dart b/lib/pages/agenda_page.dart index 55c7360..a273cd0 100644 --- a/lib/pages/agenda_page.dart +++ b/lib/pages/agenda_page.dart @@ -9,10 +9,12 @@ import 'package:training_planner/widgets/agenda_week.dart'; import 'package:flutter_local_notifications/flutter_local_notifications.dart'; class AgendaPage extends StatefulWidget { + final int agendaWeekNr; + @override _AgendaPageState createState() => _AgendaPageState(); - const AgendaPage({Key? key}) : super(key: key); + const AgendaPage({Key? key, required this.agendaWeekNr}) : super(key: key); } class _AgendaPageState extends State<AgendaPage> { @@ -28,10 +30,12 @@ class _AgendaPageState extends State<AgendaPage> { initState() { super.initState(); + weekToStartAt = widget.agendaWeekNr; weeks = getWeeks(); currentSelectedPageIndex = weekToStartAt; currentSelectedPageNr = weekNrs[weekToStartAt]; + currentSelectedWeek = dateTimes[weekToStartAt]; } List<Widget> getWeeks() { @@ -52,7 +56,7 @@ class _AgendaPageState extends State<AgendaPage> { bool isCurrentWeek = false; if (mondayOfWeek == firstDayOfCurrentWeek) { - weekToStartAt = i; + if (weekToStartAt == 0) weekToStartAt = i; isCurrentWeek = true; } @@ -102,13 +106,7 @@ class _AgendaPageState extends State<AgendaPage> { pageIndex: currentSelectedPageIndex, mondayOfWeek: currentSelectedWeek, )), - ).then((val) => { - setState(() { - weeks = getWeeks(); - currentSelectedPageIndex = weekToStartAt; - currentSelectedPageNr = weekNrs[weekToStartAt]; - }) - }); + ); }, backgroundColor: Style.titleColor, child: const Icon(Icons.add), diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 821caed..6b81451 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -6,27 +6,31 @@ import 'package:training_planner/main.dart'; import 'package:training_planner/style/style.dart'; class HomePage extends StatefulWidget { + int agendaWeekNr; @override _HomePageState createState() => _HomePageState(); - const HomePage({Key? key}) : super(key: key); + HomePage({Key? key, required this.agendaWeekNr}) : super(key: key); } class _HomePageState extends State<HomePage> { int _selectedIndex = 0; - static final List<Widget> _widgetOptions = <Widget>[ - new AgendaPage(), - new LogbookPage(), - ]; + List<Widget> _widgetOptions = []; @override initState() { + _widgetOptions = <Widget>[ + new AgendaPage(agendaWeekNr: widget.agendaWeekNr), + new LogbookPage(), + ]; + super.initState(); } void _onItemTapped(int index) { setState(() { + widget.agendaWeekNr = 0; _selectedIndex = index; }); } |
