Pretty JSON and extended Webuntis Error Handling
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:jiffy/jiffy.dart';
|
||||
import 'package:marianum_mobile/api/webuntis/queries/getHolidays/getHolidaysResponse.dart';
|
||||
import 'package:marianum_mobile/screen/settings/debug/jsonViewer.dart';
|
||||
import 'package:timetable_view/timetable_view.dart';
|
||||
|
||||
import '../../../api/webuntis/queries/getHolidays/getHolidays.dart';
|
||||
@ -80,6 +82,20 @@ class _WeekViewState extends State<WeekView> {
|
||||
ListTile(
|
||||
leading: const Icon(Icons.people),
|
||||
title: Text("Klasse(n): ${timetableData.kl.map((e) => e['name']).join(", ")}"),
|
||||
),
|
||||
ListTile(
|
||||
leading: const Icon(Icons.bug_report_outlined),
|
||||
title: const Text("Webuntis Rohdaten zeigen"),
|
||||
onTap: () => showDialog(context: context, builder: (context) {
|
||||
return AlertDialog(
|
||||
scrollable: true,
|
||||
title: const Text("Rohdaten"),
|
||||
content: Text(JsonViewer.format(timetableData.toJson())),
|
||||
actions: [
|
||||
TextButton(onPressed: () => Navigator.of(context).pop(), child: const SingleChildScrollView(child: Text("Schließen")))
|
||||
],
|
||||
);
|
||||
}),
|
||||
)
|
||||
],
|
||||
),
|
||||
@ -142,8 +158,9 @@ class _WeekViewState extends State<WeekView> {
|
||||
//Every Day
|
||||
|
||||
List<TableEvent> events = List<TableEvent>.generate(
|
||||
timetable.result.where((element) => element.date == day).length, (index) {
|
||||
GetTimetableResponseObject tableEvent = timetable.result.where((element) => element.date == day).elementAt(index);
|
||||
timetable.result.where((element) => element.date == day).length, (index) {
|
||||
GetTimetableResponseObject tableEvent = timetable.result.where((element) => element.date == day).elementAt(index);
|
||||
try {
|
||||
GetSubjectsResponseObject subject = subjects.result.firstWhere((subject) => subject.id == tableEvent.su[0]['id']);
|
||||
|
||||
return TableEvent(
|
||||
@ -158,9 +175,12 @@ class _WeekViewState extends State<WeekView> {
|
||||
currentDay.add(Duration(hours: parseTime(tableEvent.startTime).hour, minutes: parseTime(tableEvent.startTime).minute)),
|
||||
currentDay.add(Duration(hours: parseTime(tableEvent.endTime).hour, minutes: parseTime(tableEvent.endTime).minute)),
|
||||
),
|
||||
location: "\n${rooms.result.firstWhere((room) => room.id == tableEvent.ro[0]['id']).name} - ${tableEvent.te[0]['longname']} (${tableEvent.te[0]['name']})",
|
||||
location: "\n${rooms.result.firstWhereOrNull((room) => room.id == tableEvent.ro[0]['id'])?.name ?? "?"} - ${tableEvent.te[0]['longname']} (${tableEvent.te[0]['name']})",
|
||||
);
|
||||
} on Error {
|
||||
return TableEvent(title: "Unbekannt", eventId: index, laneIndex: day, startTime: parseTime(tableEvent.startTime), endTime: parseTime(tableEvent.endTime));
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
//Timepointer
|
||||
@ -176,10 +196,10 @@ class _WeekViewState extends State<WeekView> {
|
||||
}
|
||||
|
||||
laneEvents.add(
|
||||
LaneEvents(
|
||||
lane: currentLane,
|
||||
events: events
|
||||
)
|
||||
LaneEvents(
|
||||
lane: currentLane,
|
||||
events: events
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@ -238,7 +258,7 @@ class CustomTableStyle extends TimetableStyle {
|
||||
@override
|
||||
double get timeItemHeight => MediaQuery.of(context).size.width > 1000 ? 60 : 90;
|
||||
@override
|
||||
double get timeItemWidth => 50;
|
||||
double get timeItemWidth => 40;
|
||||
@override
|
||||
double get laneHeight => 40;
|
||||
@override
|
||||
|
Reference in New Issue
Block a user