repaired editing function of templates

This commit is contained in:
Nico
2025-05-09 23:10:55 +02:00
parent cdd7f5cafb
commit fb0cf85d11
3 changed files with 36 additions and 12 deletions

View File

@@ -82,21 +82,21 @@ class _AddCamMainState extends State<AddCamMain> {
DateTime? kontDat = DateTime.now();
DateTime? protoAm = DateTime.now();
static Map<String, Map<String, dynamic>> rmap = {
Map<String, Map<String, dynamic>> rmap = {
// Step 1
"Standort": { "controller": TextEditingController(), "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, },
"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, },
"BLand": { "controller": TextEditingController(), "required": true, },
"Lkr": { "controller": TextEditingController(), "required": true, },
"BeiOrt": { "controller": TextEditingController(), "required": true, },
"OrtInfo": { "controller": TextEditingController(), "required": false, },
@@ -134,14 +134,14 @@ class _AddCamMainState extends State<AddCamMain> {
// "Betreuung": { "controller": TextEditingController(), "required": false, },
// "CID": { "controller": TextEditingController(), "required": true, },
// "FFTyp": { "controller": TextEditingController(), "required": true, },
// "Mez": { "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, },
// "BLand": { "controller": TextEditingController(), "required": true, },
// "Lkr": { "controller": TextEditingController(), "required": true, },
// "BeiOrt": { "controller": TextEditingController(), "required": true, },
// "OrtInfo": { "controller": TextEditingController(), "required": false, },
@@ -239,12 +239,28 @@ class _AddCamMainState extends State<AddCamMain> {
context, AppLocalizations.of(context)!.locationForbidden);
}
// select initial werte
rmap["Mez"]!["controller"]!.text = selectedMEZ;
rmap["MEZ"]!["controller"]!.text = selectedMEZ;
rmap["Status"]!["controller"]!.text = selectedStatus;
// TODO ADD THIS AGAIN BUT RIGHT
// If a template is edited this fills in the existing values
var firstRun = true;
if (widget.existingData?.isNotEmpty ?? false) {
for (var key in widget.existingData!.keys) {
if (firstRun) {
firstRun = false;
continue;
}
rmap[key]!["controller"]!.text = widget.existingData?[key].toString() ?? "";
}
}
// if (widget.isTemplate || widget.isFinished && widget.existingData != null) {
// cid.text = widget.existingData!['CID'] ?? "";
// rudelC.text = widget.existingData!['Rudel'] ?? "";
@@ -286,6 +302,14 @@ class _AddCamMainState extends State<AddCamMain> {
super.initState();
}
@override
void dispose() {
for (String key in rmap.keys) {
rmap[key]!["controller"].dispose();
}
super.dispose();
}
// checks if required fields are not empty. If one is the name will be returned
// TODO rewrite
// List<String> validateData() {
@@ -416,7 +440,7 @@ class _AddCamMainState extends State<AddCamMain> {
onMEZChanged: (mez) {
setState(() {
selectedMEZ = mez;
rmap["Mez"]!["controller"]!.text = mez;
rmap["MEZ"]!["controller"]!.text = mez;
});
},
),
@@ -507,7 +531,7 @@ class _AddCamMainState extends State<AddCamMain> {
),
// --------------------
VarTextField(
textController: rmap["Bland"]!["controller"]!,
textController: rmap["BLand"]!["controller"]!,
localization: AppLocalizations.of(context)!.bland,
dbName: "BLand",
required: true,
@@ -804,7 +828,7 @@ class _AddCamMainState extends State<AddCamMain> {
if (empty == true) {
DialogHelper.showTemplateDialog(
context, getFieldsText());
context, getFieldsText(), widget.existingData?.isNotEmpty ?? false);
return;
} else if (empty == false) {
await DialogHelper.showSaveOptionsDialog(

View File

@@ -10,7 +10,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class DialogHelper {
// 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,
Map<String, String> saveData) async {
Map<String, String> saveData, bool update) async {
return showDialog(
context: context,
barrierDismissible: false,
@@ -25,7 +25,7 @@ class DialogHelper {
child: Text(AppLocalizations.of(context)!.cancel)),
TextButton(
onPressed: () {
saveTemplate(saveData, DatabasesEnum.place, true);
saveTemplate(saveData, DatabasesEnum.place, update);
Navigator.pushNamedAndRemoveUntil(
context, '/home', (route) => false);
},

View File

@@ -47,7 +47,7 @@ class _VarTextFieldState extends State<VarTextField> {
}
Future<List<Map<String, dynamic>>> _loadData() async {
if (widget.dbDesignation == DatabasesEnum.excursion) {
if (widget.dbDesignation == DatabasesEnum.place) {
var entries = await PlaceDBHelper().getAllMainEntries();
var templatesEntries = await PlaceDBHelper().getAllTemplates();
return [...entries, ...templatesEntries];