fixed error where complete entries are shown as incomplete and made ui enhancements to overview
This commit is contained in:
@@ -584,7 +584,7 @@ class _ExcursionMainState extends State<ExcursionMain> {
|
|||||||
bool pop = await AddEntriesDialogHelper.showSaveOptionsDialog(
|
bool pop = await AddEntriesDialogHelper.showSaveOptionsDialog(
|
||||||
context,
|
context,
|
||||||
getFieldsText(),
|
getFieldsText(),
|
||||||
widget.isTemplate,
|
isTemplate,
|
||||||
DatabasesEnum.excursion,
|
DatabasesEnum.excursion,
|
||||||
);
|
);
|
||||||
if (pop && context.mounted) Navigator.of(context).pop();
|
if (pop && context.mounted) Navigator.of(context).pop();
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ class _TrackingState extends State<Tracking> {
|
|||||||
currentPosition!.longitude,
|
currentPosition!.longitude,
|
||||||
),
|
),
|
||||||
radius: currentPosition!.accuracy,
|
radius: currentPosition!.accuracy,
|
||||||
color: Colors.blue.withOpacity(0.2),
|
color: Colors.blue.withAlpha(2),
|
||||||
borderColor: Colors.blue,
|
borderColor: Colors.blue,
|
||||||
borderStrokeWidth: 2,
|
borderStrokeWidth: 2,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ class AddEntriesDialogHelper {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint(e.toString());
|
print(e.toString());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Text(AppLocalizations.of(context)!.justsave),
|
child: Text(AppLocalizations.of(context)!.justsave),
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import 'package:fforte/screens/sharedMethods/delete_templates.dart';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class ViewEntriesDialogHelper {
|
class ViewEntriesDialogHelper {
|
||||||
static void deleteAllMainEntries(
|
static Future<void> deleteAllMainEntries(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
DatabasesEnum dbType,
|
DatabasesEnum dbType,
|
||||||
) async {
|
) async {
|
||||||
@@ -24,10 +24,10 @@ class ViewEntriesDialogHelper {
|
|||||||
),
|
),
|
||||||
actions: <Widget>[
|
actions: <Widget>[
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
DeleteMainEntries.deleteAll(dbType);
|
await DeleteMainEntries.deleteAll(dbType);
|
||||||
|
|
||||||
Navigator.of(context).pop();
|
if (context.mounted) Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
child: Text(AppLocalizations.of(context)!.deleteEverything),
|
child: Text(AppLocalizations.of(context)!.deleteEverything),
|
||||||
),
|
),
|
||||||
@@ -43,7 +43,7 @@ class ViewEntriesDialogHelper {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deleteAllTemplates(
|
static Future<void> deleteAllTemplates(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
DatabasesEnum dbType,
|
DatabasesEnum dbType,
|
||||||
) async {
|
) async {
|
||||||
@@ -62,9 +62,9 @@ class ViewEntriesDialogHelper {
|
|||||||
),
|
),
|
||||||
actions: <Widget>[
|
actions: <Widget>[
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
DeleteTemplates.deleteAll(dbType);
|
await DeleteTemplates.deleteAll(dbType);
|
||||||
Navigator.of(context).pop();
|
if (context.mounted) Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
child: Text(AppLocalizations.of(context)!.deleteEverything),
|
child: Text(AppLocalizations.of(context)!.deleteEverything),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import 'package:fforte/methods/excursion_db_helper.dart';
|
|||||||
import 'package:fforte/methods/place_db_helper.dart';
|
import 'package:fforte/methods/place_db_helper.dart';
|
||||||
|
|
||||||
class DeleteMainEntries {
|
class DeleteMainEntries {
|
||||||
static void deleteAll(DatabasesEnum dbType) {
|
static Future<void> deleteAll(DatabasesEnum dbType) async {
|
||||||
IDb? db;
|
IDb? db;
|
||||||
|
|
||||||
if (dbType == DatabasesEnum.place) {
|
if (dbType == DatabasesEnum.place) {
|
||||||
@@ -12,10 +12,10 @@ class DeleteMainEntries {
|
|||||||
} else if (dbType == DatabasesEnum.excursion) {
|
} else if (dbType == DatabasesEnum.excursion) {
|
||||||
db = ExcursionDBHelper();
|
db = ExcursionDBHelper();
|
||||||
}
|
}
|
||||||
db!.deleteAllMainEntries();
|
await db!.deleteAllMainEntries();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deleteSingle(DatabasesEnum dbType, int id) {
|
static Future<void> deleteSingle(DatabasesEnum dbType, int id) async {
|
||||||
IDb? db;
|
IDb? db;
|
||||||
|
|
||||||
if (dbType == DatabasesEnum.place) {
|
if (dbType == DatabasesEnum.place) {
|
||||||
@@ -24,6 +24,6 @@ class DeleteMainEntries {
|
|||||||
db = ExcursionDBHelper();
|
db = ExcursionDBHelper();
|
||||||
}
|
}
|
||||||
|
|
||||||
db!.deleteMainEntryById(id.toString());
|
await db!.deleteMainEntryById(id.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import 'package:fforte/methods/place_db_helper.dart';
|
|||||||
|
|
||||||
class DeleteTemplates {
|
class DeleteTemplates {
|
||||||
|
|
||||||
static void deleteSingle(DatabasesEnum dbType, String id) {
|
static Future<void> deleteSingle(DatabasesEnum dbType, String id) async {
|
||||||
IDb? db;
|
IDb? db;
|
||||||
|
|
||||||
if (dbType == DatabasesEnum.place) {
|
if (dbType == DatabasesEnum.place) {
|
||||||
@@ -14,10 +14,10 @@ class DeleteTemplates {
|
|||||||
db = ExcursionDBHelper();
|
db = ExcursionDBHelper();
|
||||||
}
|
}
|
||||||
|
|
||||||
db!.deleteTemplateById(id);
|
await db!.deleteTemplateById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deleteAll(DatabasesEnum dbType) {
|
static Future<void> deleteAll(DatabasesEnum dbType) async {
|
||||||
IDb? db;
|
IDb? db;
|
||||||
|
|
||||||
if (dbType == DatabasesEnum.place) {
|
if (dbType == DatabasesEnum.place) {
|
||||||
@@ -26,6 +26,6 @@ class DeleteTemplates {
|
|||||||
db = ExcursionDBHelper();
|
db = ExcursionDBHelper();
|
||||||
}
|
}
|
||||||
|
|
||||||
db!.deleteAllMainEntries();
|
await db!.deleteAllMainEntries();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// TODO remove sent
|
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:fforte/l10n/app_localizations.dart';
|
import 'package:fforte/l10n/app_localizations.dart';
|
||||||
import 'package:flutter_map/flutter_map.dart';
|
import 'package:flutter_map/flutter_map.dart';
|
||||||
import 'package:flutter_slidable/flutter_slidable.dart';
|
import 'package:flutter_slidable/flutter_slidable.dart';
|
||||||
|
import 'package:intl/intl.dart';
|
||||||
import 'package:latlong2/latlong.dart';
|
import 'package:latlong2/latlong.dart';
|
||||||
// * Site that shows all entries in the databases
|
// * Site that shows all entries in the databases
|
||||||
|
|
||||||
@@ -28,11 +29,13 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
List<Map<String, dynamic>> templates = [];
|
List<Map<String, dynamic>> templates = [];
|
||||||
List<Marker> marker = [];
|
List<Marker> marker = [];
|
||||||
|
|
||||||
|
final DateFormat dateFormat = DateFormat('dd.MM.yyyy');
|
||||||
|
|
||||||
// loads the entries
|
// loads the entries
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
|
||||||
reloadAllEntries();
|
reloadAllEntries();
|
||||||
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> reloadAllEntries() async {
|
Future<void> reloadAllEntries() async {
|
||||||
@@ -89,7 +92,9 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
Tab(text: AppLocalizations.of(context)!.map),
|
Tab(text: AppLocalizations.of(context)!.map),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
title: widget.dbType == DatabasesEnum.place ? Text(AppLocalizations.of(context)!.viewplacesappbar) : Text(AppLocalizations.of(context)!.viewExcursionen) ,
|
title: widget.dbType == DatabasesEnum.place
|
||||||
|
? Text(AppLocalizations.of(context)!.viewplacesappbar)
|
||||||
|
: Text(AppLocalizations.of(context)!.viewExcursionen),
|
||||||
),
|
),
|
||||||
body: TabBarView(
|
body: TabBarView(
|
||||||
children: [
|
children: [
|
||||||
@@ -97,11 +102,14 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
floatingActionButton: FloatingActionButton(
|
floatingActionButton: FloatingActionButton(
|
||||||
child: const Icon(Icons.delete),
|
child: const Icon(Icons.delete),
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
ViewEntriesDialogHelper.deleteAllMainEntries(
|
await ViewEntriesDialogHelper.deleteAllMainEntries(
|
||||||
context,
|
context,
|
||||||
widget.dbType,
|
widget.dbType,
|
||||||
);
|
);
|
||||||
|
setState(() {
|
||||||
|
reloadAllEntries();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
@@ -170,15 +178,15 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
title: Text('Standort ${index + 1}'),
|
title: Text(
|
||||||
|
'${widget.dbType == DatabasesEnum.place ? AppLocalizations.of(context)!.justplace : AppLocalizations.of(context)!.excursion} ${mainEntries[index]["ID"]}'),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
'ID: ${mainEntries[index]['ID']} DATUM: ${widget.dbType == DatabasesEnum.place ? mainEntries[index]['Datum'] : mainEntries[index]["LogDat"]}',
|
dateFormat.format(DateTime.parse(mainEntries[index]["Datum"])),
|
||||||
),
|
),
|
||||||
trailing: Checkbox(
|
trailing: Checkbox(
|
||||||
value:
|
value: mainEntries[index]['Sent'] == 0
|
||||||
mainEntries[index]['Sent'] == 0
|
? false
|
||||||
? false
|
: true,
|
||||||
: true,
|
|
||||||
onChanged: null,
|
onChanged: null,
|
||||||
),
|
),
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
@@ -186,14 +194,12 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder:
|
builder: (context) => AddCamMain(
|
||||||
(context) => AddCamMain(
|
isSent: mainEntries[index]['Sent'] == 1
|
||||||
isSent:
|
? true
|
||||||
mainEntries[index]['Sent'] == 1
|
: false,
|
||||||
? true
|
existingData: mainEntries[index],
|
||||||
: false,
|
),
|
||||||
existingData: mainEntries[index],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else if (widget.dbType ==
|
} else if (widget.dbType ==
|
||||||
@@ -201,14 +207,12 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder:
|
builder: (context) => ExcursionMain(
|
||||||
(context) => ExcursionMain(
|
isSent: mainEntries[index]['Sent'] == 1
|
||||||
isSent:
|
? true
|
||||||
mainEntries[index]['Sent'] == 1
|
: false,
|
||||||
? true
|
existingData: mainEntries[index],
|
||||||
: false,
|
),
|
||||||
existingData: mainEntries[index],
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -226,11 +230,14 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
floatingActionButton: FloatingActionButton(
|
floatingActionButton: FloatingActionButton(
|
||||||
child: const Icon(Icons.delete),
|
child: const Icon(Icons.delete),
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
ViewEntriesDialogHelper.deleteAllTemplates(
|
await ViewEntriesDialogHelper.deleteAllTemplates(
|
||||||
context,
|
context,
|
||||||
widget.dbType,
|
widget.dbType,
|
||||||
);
|
);
|
||||||
|
setState(() {
|
||||||
|
reloadAllEntries();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
@@ -263,16 +270,14 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
),
|
),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
|
|
||||||
if (widget.dbType == DatabasesEnum.place) {
|
if (widget.dbType == DatabasesEnum.place) {
|
||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder:
|
builder: (context) => AddCamMain(
|
||||||
(context) => AddCamMain(
|
isTemplate: true,
|
||||||
isTemplate: true,
|
existingData: templates[index],
|
||||||
existingData: templates[index],
|
),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else if (widget.dbType ==
|
} else if (widget.dbType ==
|
||||||
@@ -280,34 +285,18 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder:
|
builder: (context) => ExcursionMain(
|
||||||
(context) => ExcursionMain(
|
isTemplate: true,
|
||||||
isTemplate: true,
|
existingData: templates[index],
|
||||||
existingData: templates[index],
|
),
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Navigator.push(
|
|
||||||
// context,
|
|
||||||
// MaterialPageRoute(
|
|
||||||
// builder:
|
|
||||||
// (context) => AddCamMain(
|
|
||||||
// isTemplate: true,
|
|
||||||
// existingData: templates[index],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// );
|
|
||||||
},
|
},
|
||||||
|
title: Text(
|
||||||
|
'${widget.dbType == DatabasesEnum.place ? AppLocalizations.of(context)!.justplace : AppLocalizations.of(context)!.excursion} ${templates[index]["ID"]}'),
|
||||||
|
|
||||||
title: Text('Place ${index + 1}'),
|
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
'ID: ${templates[index]['CID']} DATUM: ${templates[index]['Datum']} RUDEL: ${templates[index]['Rudel']} STATUS: ${templates[index]['Status']}',
|
dateFormat.format(DateTime.parse(templates[index]["Datum"])),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -322,13 +311,11 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
Tab(
|
Tab(
|
||||||
child: FlutterMap(
|
child: FlutterMap(
|
||||||
options: MapOptions(
|
options: MapOptions(
|
||||||
initialCenter:
|
initialCenter: marker.isEmpty
|
||||||
marker.isEmpty
|
? const LatLng(50, 10)
|
||||||
? const LatLng(50, 10)
|
: marker.first.point,
|
||||||
: marker.first.point,
|
|
||||||
interactionOptions: const InteractionOptions(
|
interactionOptions: const InteractionOptions(
|
||||||
flags:
|
flags: InteractiveFlag.pinchZoom |
|
||||||
InteractiveFlag.pinchZoom |
|
|
||||||
InteractiveFlag.drag |
|
InteractiveFlag.drag |
|
||||||
InteractiveFlag.pinchMove,
|
InteractiveFlag.pinchMove,
|
||||||
),
|
),
|
||||||
@@ -337,7 +324,7 @@ class _ViewEntriesState extends State<ViewEntries> {
|
|||||||
TileLayer(
|
TileLayer(
|
||||||
urlTemplate:
|
urlTemplate:
|
||||||
'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
|
'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
|
||||||
userAgentPackageName: 'com.example.app',
|
userAgentPackageName: 'de.lupus.apps',
|
||||||
),
|
),
|
||||||
MarkerLayer(markers: marker),
|
MarkerLayer(markers: marker),
|
||||||
],
|
],
|
||||||
|
|||||||
Reference in New Issue
Block a user