rewrote check_required and did some map stuff. also fixed that typed in text in add place isnt saved

This commit is contained in:
Nico
2025-05-09 22:29:34 +02:00
parent b7b16c6acb
commit cdd7f5cafb
5 changed files with 158 additions and 95 deletions

View File

@@ -59,7 +59,7 @@
"pickDate": "Aufstellung", "pickDate": "Aufstellung",
"pickTime": "Zeit auswählen", "pickTime": "Zeit auswählen",
"delAll": "Alle Standorte löschen", "delAll": "Alle Standorte löschen",
"fieldEmpty": "Folgende Felder sind leer:", "fieldEmpty": "Pflichtfeld(er) nicht ausgefüllt",
"cancel": "Abbrechen", "cancel": "Abbrechen",
"template": "Als Unvollständig speichern", "template": "Als Unvollständig speichern",
"openMap": "Karte öffnen", "openMap": "Karte öffnen",

View File

@@ -297,7 +297,7 @@
"@delAll": { "@delAll": {
"description": "Delete all Places" "description": "Delete all Places"
}, },
"fieldEmpty": "Following Field is empty:", "fieldEmpty": "Required field(s) empty",
"@fieldEmpty": { "@fieldEmpty": {
"description": "field empty error message" "description": "field empty error message"
}, },

View File

@@ -1,9 +1,11 @@
import 'package:fforte/enums/databases.dart'; import 'package:fforte/enums/databases.dart';
import 'package:fforte/screens/addCam/cam_widgets.dart'; import 'package:fforte/screens/addCam/cam_widgets.dart';
import 'package:fforte/screens/helper/dialog_helper.dart';
import 'package:fforte/screens/helper/snack_bar_helper.dart'; import 'package:fforte/screens/helper/snack_bar_helper.dart';
import 'package:fforte/screens/addCam/exceptions/location_disabled_exception.dart'; import 'package:fforte/screens/addCam/exceptions/location_disabled_exception.dart';
import 'package:fforte/screens/addCam/exceptions/location_forbidden_exception.dart'; import 'package:fforte/screens/addCam/exceptions/location_forbidden_exception.dart';
import 'package:fforte/screens/addCam/services/geolocator_service.dart'; import 'package:fforte/screens/addCam/services/geolocator_service.dart';
import 'package:fforte/screens/sharedMethods/check_required.dart';
import 'package:fforte/screens/sharedMethods/save_template.dart'; import 'package:fforte/screens/sharedMethods/save_template.dart';
import 'package:fforte/screens/sharedWidgets/datum.dart'; import 'package:fforte/screens/sharedWidgets/datum.dart';
import 'package:fforte/screens/sharedWidgets/var_text_field.dart'; import 'package:fforte/screens/sharedWidgets/var_text_field.dart';
@@ -17,7 +19,7 @@ class AddCamMain extends StatefulWidget {
final bool isTemplate; final bool isTemplate;
final bool isFinished; final bool isFinished;
final bool isSent; final bool isSent;
final Map<String, TextEditingController>? existingData; final Map<String, dynamic>? existingData;
const AddCamMain( const AddCamMain(
{super.key, {super.key,
@@ -80,61 +82,105 @@ class _AddCamMainState extends State<AddCamMain> {
DateTime? kontDat = DateTime.now(); DateTime? kontDat = DateTime.now();
DateTime? protoAm = DateTime.now(); DateTime? protoAm = DateTime.now();
Map<String, TextEditingController> getFieldsController() { static Map<String, Map<String, dynamic>> rmap = {
Map<String, TextEditingController> rmap = {
// Step 1 // Step 1
"Status": TextEditingController(), "Standort": { "controller": TextEditingController(), "required": true, },
"Betreuung": TextEditingController(), "Status": { "controller": TextEditingController(), "required": true, },
"Standort": TextEditingController(), "Betreuung": { "controller": TextEditingController(), "required": false, },
"CID": TextEditingController(), "CID": { "controller": TextEditingController(), "required": true, },
"FFTyp": TextEditingController(), "FFTyp": { "controller": TextEditingController(), "required": true, },
"Mez": TextEditingController(), "Mez": { "controller": TextEditingController(), "required": true, },
"KSchloNr": TextEditingController(), "KSchloNr": { "controller": TextEditingController(), "required": false, },
"Rudel": TextEditingController(), "Rudel": { "controller": TextEditingController(), "required": true, },
// Step 2 // Step 2
"OrtInfo": TextEditingController(), "DECLNG": { "controller": TextEditingController(), "required": false, },
"BeiOrt": TextEditingController(), "DECLAT": { "controller": TextEditingController(), "required": false, },
"Bland": TextEditingController(), "Bland": { "controller": TextEditingController(), "required": true, },
"Lkr": TextEditingController(), "Lkr": { "controller": TextEditingController(), "required": true, },
"Platzung": TextEditingController(), "BeiOrt": { "controller": TextEditingController(), "required": true, },
"OrtInfo": { "controller": TextEditingController(), "required": false, },
"Platzung": { "controller": TextEditingController(), "required": true, },
// Step 3 // Step 3
"DECLNG": TextEditingController(), "Datum": { "controller": TextEditingController(), "required": false, },
"DECLAT": TextEditingController(), "KontDat": { "controller": TextEditingController(), "required": false, },
"Datum": TextEditingController(), "KTage1": { "controller": TextEditingController(), "required": true, },
"KontDat": TextEditingController(), "KTage2": { "controller": TextEditingController(), "required": true, },
"KTage1": TextEditingController(), "AbbauDat": { "controller": TextEditingController(), "required": false, },
"KTage2": TextEditingController(), "Auftrag": { "controller": TextEditingController(), "required": false, },
"AbbauDat": TextEditingController(), "KontAbsp": { "controller": TextEditingController(), "required": false, },
"Auftrag": TextEditingController(), "SonstBem": { "controller": TextEditingController(), "required": false, },
"KontAbsp": TextEditingController(),
"SonstBem": TextEditingController(),
// Step 4 // Step 4
"Adresse1": TextEditingController(), "Adresse1": { "controller": TextEditingController(), "required": true, },
"Adresse2": TextEditingController(), "Adresse2": { "controller": TextEditingController(), "required": false, },
"Adresse3": TextEditingController(), "Adresse3": { "controller": TextEditingController(), "required": false, },
"FKontakt1": TextEditingController(), "FKontakt1": { "controller": TextEditingController(), "required": false, },
"FKontakt2": TextEditingController(), "FKontakt2": { "controller": TextEditingController(), "required": false, },
"FKontakt3": TextEditingController(), "FKontakt3": { "controller": TextEditingController(), "required": false, },
"IntKomm": TextEditingController(), "IntKomm": { "controller": TextEditingController(), "required": false, },
// Gone? // Gone?
"ProtoAm": TextEditingController(), "ProtoAm": { "controller": TextEditingController(), "required": false, },
"FotoFilm": TextEditingController(), "FotoFilm": { "controller": TextEditingController(), "required": false, },
}; };
return rmap;
} // Map<String, Map<String, dynamic>> rmap {
// Map<String, Map<String, dynamic>> rmap = {
// // Step 1
// "Standort": { "controller": betreuungC, "required": true, },
// "Status": { "controller": TextEditingController(), "required": true, },
// "Betreuung": { "controller": TextEditingController(), "required": false, },
// "CID": { "controller": TextEditingController(), "required": true, },
// "FFTyp": { "controller": TextEditingController(), "required": true, },
// "Mez": { "controller": TextEditingController(), "required": true, },
// "KSchloNr": { "controller": TextEditingController(), "required": false, },
// "Rudel": { "controller": TextEditingController(), "required": true, },
//
// // Step 2
// "DECLNG": { "controller": TextEditingController(), "required": false, },
// "DECLAT": { "controller": TextEditingController(), "required": false, },
// "Bland": { "controller": TextEditingController(), "required": true, },
// "Lkr": { "controller": TextEditingController(), "required": true, },
// "BeiOrt": { "controller": TextEditingController(), "required": true, },
// "OrtInfo": { "controller": TextEditingController(), "required": false, },
// "Platzung": { "controller": TextEditingController(), "required": true, },
//
// // Step 3
// "Datum": { "controller": TextEditingController(), "required": false, },
// "KontDat": { "controller": TextEditingController(), "required": false, },
// "KTage1": { "controller": TextEditingController(), "required": true, },
// "KTage2": { "controller": TextEditingController(), "required": true, },
// "AbbauDat": { "controller": TextEditingController(), "required": false, },
// "Auftrag": { "controller": TextEditingController(), "required": false, },
// "KontAbsp": { "controller": TextEditingController(), "required": false, },
// "SonstBem": { "controller": TextEditingController(), "required": false, },
//
// // Step 4
// "Adresse1": { "controller": TextEditingController(), "required": true, },
// "Adresse2": { "controller": TextEditingController(), "required": false, },
// "Adresse3": { "controller": TextEditingController(), "required": false, },
// "FKontakt1": { "controller": TextEditingController(), "required": false, },
// "FKontakt2": { "controller": TextEditingController(), "required": false, },
// "FKontakt3": { "controller": TextEditingController(), "required": false, },
// "IntKomm": { "controller": TextEditingController(), "required": false, },
//
// // Gone?
// "ProtoAm": { "controller": TextEditingController(), "required": false, },
// "FotoFilm": { "controller": TextEditingController(), "required": false, },
// };
// return rmap;
// }
Map<String, String> getFieldsText() { Map<String, String> getFieldsText() {
Map<String, String> rmap = {}; Map<String, String> puff = {};
for (var itemKey in getFieldsController().keys) { for (var itemKey in rmap.keys) {
rmap[itemKey] = getFieldsController()["key"]!.text; puff[itemKey] = rmap[itemKey]!["controller"]!.text;
} }
return rmap; return puff;
} }
// Map<String, dynamic> getPlace() { // Map<String, dynamic> getPlace() {
@@ -177,11 +223,9 @@ class _AddCamMainState extends State<AddCamMain> {
// return place; // return place;
// } // }
bool empty = false;
@override @override
void initState() { void initState() {
super.initState();
// updates the currentPosition var after the _determine position has finished. Means user view updates with his live location // updates the currentPosition var after the _determine position has finished. Means user view updates with his live location
try { try {
@@ -194,6 +238,11 @@ class _AddCamMainState extends State<AddCamMain> {
SnackBarHelper.showSnackBarMessage( SnackBarHelper.showSnackBarMessage(
context, AppLocalizations.of(context)!.locationForbidden); context, AppLocalizations.of(context)!.locationForbidden);
} }
// select initial werte
rmap["Mez"]!["controller"]!.text = selectedMEZ;
rmap["Status"]!["controller"]!.text = selectedStatus;
// TODO ADD THIS AGAIN BUT RIGHT // TODO ADD THIS AGAIN BUT RIGHT
// If a template is edited this fills in the existing values // If a template is edited this fills in the existing values
// if (widget.isTemplate || widget.isFinished && widget.existingData != null) { // if (widget.isTemplate || widget.isFinished && widget.existingData != null) {
@@ -234,6 +283,7 @@ class _AddCamMainState extends State<AddCamMain> {
// intKommC.text = widget.existingData!['IntKomm'] ?? ""; // intKommC.text = widget.existingData!['IntKomm'] ?? "";
// betreuungC.text = widget.existingData!['Betreuung'] ?? ""; // betreuungC.text = widget.existingData!['Betreuung'] ?? "";
// } // }
super.initState();
} }
// checks if required fields are not empty. If one is the name will be returned // checks if required fields are not empty. If one is the name will be returned
@@ -290,7 +340,8 @@ class _AddCamMainState extends State<AddCamMain> {
child: VarTextField( child: VarTextField(
required: true, required: true,
dbName: "Standort", dbName: "Standort",
textController: getFieldsController()["Standort"]!, textController: rmap["Standort"]!["controller"]!,
// textController: betreuungC,
localization: AppLocalizations.of(context)!.altstort, localization: AppLocalizations.of(context)!.altstort,
dbDesignation: DatabasesEnum.place, dbDesignation: DatabasesEnum.place,
), ),
@@ -314,13 +365,13 @@ class _AddCamMainState extends State<AddCamMain> {
initialStatus: selectedStatus, initialStatus: selectedStatus,
onStatusChanged: (status) { onStatusChanged: (status) {
setState(() { setState(() {
getFieldsController()["Status"]!.text = status; rmap["Status"]!["controller"]!.text = status;
}); });
}, },
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Betreuung"]!, textController: rmap["Betreuung"]!["controller"]!,
localization: AppLocalizations.of(context)!.betreuung, localization: AppLocalizations.of(context)!.betreuung,
dbName: "Betreuung", dbName: "Betreuung",
required: false, required: false,
@@ -331,7 +382,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["CID"]!, textController: rmap["CID"]!["controller"],
localization: AppLocalizations.of(context)!.camLink, localization: AppLocalizations.of(context)!.camLink,
dbName: "CID", dbName: "CID",
required: true, required: true,
@@ -339,7 +390,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["FFTyp"]!, textController: rmap["FFTyp"]!["controller"],
localization: AppLocalizations.of(context)!.fftyp, localization: AppLocalizations.of(context)!.fftyp,
dbName: "FFTyp", dbName: "FFTyp",
required: true, required: true,
@@ -365,7 +416,7 @@ class _AddCamMainState extends State<AddCamMain> {
onMEZChanged: (mez) { onMEZChanged: (mez) {
setState(() { setState(() {
selectedMEZ = mez; selectedMEZ = mez;
getFieldsController()["Mez"]!.text = mez; rmap["Mez"]!["controller"]!.text = mez;
}); });
}, },
), ),
@@ -374,7 +425,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["KSchloNr"]!, textController: rmap["KSchloNr"]!["controller"],
localization: AppLocalizations.of(context)!.kschlonr, localization: AppLocalizations.of(context)!.kschlonr,
dbName: "KSchloNr", dbName: "KSchloNr",
required: false, required: false,
@@ -385,7 +436,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Rudel"]!, textController: rmap["Rudel"]!["controller"],
localization: AppLocalizations.of(context)!.rudel, localization: AppLocalizations.of(context)!.rudel,
dbName: "Rudel", dbName: "Rudel",
required: true, required: true,
@@ -420,15 +471,15 @@ class _AddCamMainState extends State<AddCamMain> {
.push<LatLng>( .push<LatLng>(
MaterialPageRoute(builder: (context) { MaterialPageRoute(builder: (context) {
return Karte( return Karte(
ortInfoC: getFieldsController()["OrtInfo"]!, ortInfoC: rmap["OrtInfo"]!["controller"],
beiOrtC: getFieldsController()["BeiOrt"]!, beiOrtC: rmap["BeiOrt"]!["controller"],
currentPosition: currentPosition, currentPosition: currentPosition,
onPositionChange: (updatedPosition) { onPositionChange: (updatedPosition) {
setState(() { setState(() {
currentPosition = updatedPosition; currentPosition = updatedPosition;
getFieldsController()["DECLNG"]!.text = rmap["DECLNG"]!["controller"]!.text =
updatedPosition.longitude.toString(); updatedPosition.longitude.toString();
getFieldsController()["DECLAT"]!.text = rmap["DECLAT"]!["controller"]!.text =
updatedPosition.latitude.toString(); updatedPosition.latitude.toString();
}); });
}, },
@@ -456,7 +507,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Bland"]!, textController: rmap["Bland"]!["controller"]!,
localization: AppLocalizations.of(context)!.bland, localization: AppLocalizations.of(context)!.bland,
dbName: "BLand", dbName: "BLand",
required: true, required: true,
@@ -465,7 +516,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Lkr"]!, textController: rmap["Lkr"]!["controller"]!,
localization: AppLocalizations.of(context)!.lkr, localization: AppLocalizations.of(context)!.lkr,
dbName: "Lkr", dbName: "Lkr",
required: true, required: true,
@@ -473,7 +524,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["BeiOrt"]!, textController: rmap["BeiOrt"]!["controller"]!,
localization: AppLocalizations.of(context)!.beiort, localization: AppLocalizations.of(context)!.beiort,
dbName: "BeiOrt", dbName: "BeiOrt",
required: true, required: true,
@@ -481,7 +532,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["OrtInfo"]!, textController: rmap["OrtInfo"]!["controller"]!,
localization: AppLocalizations.of(context)!.ortinfo, localization: AppLocalizations.of(context)!.ortinfo,
dbName: "OrtInfo", dbName: "OrtInfo",
required: false, required: false,
@@ -507,7 +558,7 @@ class _AddCamMainState extends State<AddCamMain> {
onPlatzungChanged: (platzung) { onPlatzungChanged: (platzung) {
setState(() { setState(() {
selectedPlatzung = platzung; selectedPlatzung = platzung;
getFieldsController()["Platzung"]!.text = platzung; rmap["Platzung"]!["controller"]!.text = platzung;
}); });
}, },
), ),
@@ -522,7 +573,7 @@ class _AddCamMainState extends State<AddCamMain> {
initDatum: datum, initDatum: datum,
onDateChanged: (value) { onDateChanged: (value) {
datum = value; datum = value;
getFieldsController()["Datum"]!.text = rmap["Datum"]!["controller"]!.text =
value.toString().split(" ").first; value.toString().split(" ").first;
}, },
name: AppLocalizations.of(context)!.pickDate, name: AppLocalizations.of(context)!.pickDate,
@@ -533,7 +584,7 @@ class _AddCamMainState extends State<AddCamMain> {
onDateChanged: (value) { onDateChanged: (value) {
setState(() { setState(() {
kontDat = value; kontDat = value;
getFieldsController()["KontDat"]!.text = rmap["KontDat"]!["controller"]!.text =
value.toString().split(" ").first; value.toString().split(" ").first;
}); });
}, },
@@ -565,7 +616,7 @@ class _AddCamMainState extends State<AddCamMain> {
flex: 4, flex: 4,
child: VarTextField( child: VarTextField(
otherDefault: "24", otherDefault: "24",
textController: getFieldsController()["KTage1"]!, textController: rmap["KTage1"]!["controller"]!,
localization: AppLocalizations.of(context)!.ktage1, localization: AppLocalizations.of(context)!.ktage1,
dbName: "KTage1", dbName: "KTage1",
required: true, required: true,
@@ -584,7 +635,7 @@ class _AddCamMainState extends State<AddCamMain> {
flex: 4, flex: 4,
child: VarTextField( child: VarTextField(
otherDefault: "48", otherDefault: "48",
textController: getFieldsController()["KTage2"]!, textController: rmap["KTage2"]!["controller"]!,
localization: AppLocalizations.of(context)!.ktage2, localization: AppLocalizations.of(context)!.ktage2,
dbName: "KTage2", dbName: "KTage2",
required: true, required: true,
@@ -602,7 +653,7 @@ class _AddCamMainState extends State<AddCamMain> {
initAbbauDat: abbauDat, initAbbauDat: abbauDat,
onDateChanged: (value) { onDateChanged: (value) {
abbauDat = value; abbauDat = value;
getFieldsController()["AbbauDat"]!.text = rmap["AbbauDat"]!["controller"]!.text =
value.toString().split(" ").first; value.toString().split(" ").first;
}, },
), ),
@@ -613,7 +664,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Auftrag"]!, textController: rmap["Auftrag"]!["controller"]!,
localization: AppLocalizations.of(context)!.auftrag, localization: AppLocalizations.of(context)!.auftrag,
dbName: "Auftrag", dbName: "Auftrag",
required: false, required: false,
@@ -621,7 +672,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["KontAbsp"]!, textController: rmap["KontAbsp"]!["controller"]!,
localization: AppLocalizations.of(context)!.kontabsp, localization: AppLocalizations.of(context)!.kontabsp,
dbName: "KontAbsp", dbName: "KontAbsp",
required: false, required: false,
@@ -629,7 +680,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["SonstBem"]!, textController: rmap["SonstBem"]!["controller"]!,
localization: localization:
AppLocalizations.of(context)!.sonstbemerkungen, AppLocalizations.of(context)!.sonstbemerkungen,
dbName: "SonstBem", dbName: "SonstBem",
@@ -643,7 +694,7 @@ class _AddCamMainState extends State<AddCamMain> {
content: Column( content: Column(
children: [ children: [
VarTextField( VarTextField(
textController: getFieldsController()["Adresse1"]!, textController: rmap["Adresse1"]!["controller"]!,
localization: AppLocalizations.of(context)!.adresse1, localization: AppLocalizations.of(context)!.adresse1,
dbName: "Adresse1", dbName: "Adresse1",
dbDesignation: DatabasesEnum.place, dbDesignation: DatabasesEnum.place,
@@ -652,7 +703,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Adresse2"]!, textController: rmap["Adresse2"]!["controller"]!,
localization: AppLocalizations.of(context)!.adresse2, localization: AppLocalizations.of(context)!.adresse2,
dbName: "Adresse2", dbName: "Adresse2",
required: false, required: false,
@@ -660,7 +711,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["Adresse3"]!, textController: rmap["Adresse3"]!["controller"]!,
localization: AppLocalizations.of(context)!.adresse3, localization: AppLocalizations.of(context)!.adresse3,
dbName: "Adresse3", dbName: "Adresse3",
required: false, required: false,
@@ -671,7 +722,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["FKontakt1"]!, textController: rmap["FKontakt1"]!["controller"]!,
localization: AppLocalizations.of(context)!.fkontakt1, localization: AppLocalizations.of(context)!.fkontakt1,
dbName: "FKontakt1", dbName: "FKontakt1",
required: false, required: false,
@@ -679,7 +730,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["FKontakt2"]!, textController: rmap["FKontakt2"]!["controller"]!,
localization: AppLocalizations.of(context)!.fkontakt2, localization: AppLocalizations.of(context)!.fkontakt2,
dbName: "FKontakt2", dbName: "FKontakt2",
required: false, required: false,
@@ -687,7 +738,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["FKontakt3"]!, textController: rmap["FKontakt3"]!["controller"]!,
localization: AppLocalizations.of(context)!.fkontakt3, localization: AppLocalizations.of(context)!.fkontakt3,
dbName: "FKontakt3", dbName: "FKontakt3",
required: false, required: false,
@@ -695,7 +746,7 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
// -------------------- // --------------------
VarTextField( VarTextField(
textController: getFieldsController()["IntKomm"]!, textController: rmap["IntKomm"]!["controller"]!,
localization: AppLocalizations.of(context)!.intkomm, localization: AppLocalizations.of(context)!.intkomm,
dbName: "IntKomm", dbName: "IntKomm",
required: false, required: false,
@@ -741,21 +792,24 @@ class _AddCamMainState extends State<AddCamMain> {
currentStep += 1; currentStep += 1;
}); });
} else { } else {
// TODO implement validateData again
// List<String> emptyFields = validateData();
// ! always filled out // ! always filled out
// empty = false;
// if (widget.isSent) { if (widget.isSent) {
// Navigator.pushNamedAndRemoveUntil( Navigator.pushNamedAndRemoveUntil(
// context, '/home', (route) => false); context, '/home', (route) => false);
// } else if (empty == true) { return;
// DialogHelper.showTemplateDialog( }
// context, emptyFields, getFieldsText();
// return; bool empty = CheckRequired.checkRequired(rmap);
// } else if (empty == false) {
// await DialogHelper.showSaveOptionsDialog( if (empty == true) {
// context, getFieldsText(), widget.isTemplate); DialogHelper.showTemplateDialog(
// } context, getFieldsText());
return;
} else if (empty == false) {
await DialogHelper.showSaveOptionsDialog(
context, getFieldsText(), widget.isTemplate);
}
} }
}, },
onStepCancel: () { onStepCancel: () {

View File

@@ -10,16 +10,13 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class DialogHelper { class DialogHelper {
// Function to show the dialog where the user has to choose if he want to safe his values as a template // Function to show the dialog where the user has to choose if he want to safe his values as a template
static Future<void> showTemplateDialog(BuildContext context, static Future<void> showTemplateDialog(BuildContext context,
List<String> emptyField, Map<String, String> saveData) async { Map<String, String> saveData) async {
return showDialog( return showDialog(
context: context, context: context,
barrierDismissible: false, barrierDismissible: false,
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertDialog( return AlertDialog(
title: Text(AppLocalizations.of(context)!.fieldEmpty), title: Text(AppLocalizations.of(context)!.fieldEmpty),
content: SingleChildScrollView(
child: ListBody(children: <Widget>[Text(emptyField.join("; "))]),
),
actions: <Widget>[ actions: <Widget>[
TextButton( TextButton(
onPressed: () { onPressed: () {

View File

@@ -0,0 +1,12 @@
class CheckRequired {
static bool checkRequired(Map<String, Map<String, dynamic>> fieldsList) {
for (String key in fieldsList.keys) {
if (fieldsList[key]!["required"]! && fieldsList[key]!["controller"]!.text.isEmpty) {
return true;
}
}
return false;
}
}