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

View File

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

View File

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