summaryrefslogtreecommitdiff
path: root/lib/pages
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pages')
-rw-r--r--lib/pages/add_shift_page.dart33
-rw-r--r--lib/pages/agenda_page.dart16
-rw-r--r--lib/pages/home_page.dart14
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;
});
}