fixed template bugs

This commit is contained in:
Nico
2024-03-23 15:11:23 +01:00
parent a7d832818f
commit 97f7e0796c
6 changed files with 125 additions and 124 deletions

View File

@@ -1,6 +1,5 @@
todo: todo:
maybe auch vorschläge aus templates in dropdown menüs anzeigen maybe auch vorschläge aus templates in dropdown menüs anzeigen
abbaudat leer
beim nächsten schritt als template beim nächsten schritt als template
im englischen abändern im englischen abändern
standort automatisch in Karte standort automatisch in Karte
@@ -28,6 +27,7 @@ eintrg in db wenn http response (in sent column)
not to do: not to do:
abbaudat leer
clean db_helper clean db_helper
In der Karte den save button erst zeigen nachdem marker gesetzt wurde In der Karte den save button erst zeigen nachdem marker gesetzt wurde
json string in csv und exportieren in text datei json string in csv und exportieren in text datei

View File

@@ -30,9 +30,9 @@ class _AddCamMainState extends State<AddCamMain> {
TextEditingController id = TextEditingController(); TextEditingController id = TextEditingController();
TextEditingController rudelC = TextEditingController(); TextEditingController rudelC = TextEditingController();
TextEditingController addresse1C = TextEditingController(); TextEditingController adresse1C = TextEditingController();
TextEditingController addresse2C = TextEditingController(); TextEditingController adresse2C = TextEditingController();
TextEditingController addresse3C = TextEditingController(); TextEditingController adresse3C = TextEditingController();
TextEditingController bLandC = TextEditingController(); TextEditingController bLandC = TextEditingController();
TextEditingController lkrC = TextEditingController(); TextEditingController lkrC = TextEditingController();
TextEditingController beiOrtC = TextEditingController(); TextEditingController beiOrtC = TextEditingController();
@@ -40,12 +40,12 @@ class _AddCamMainState extends State<AddCamMain> {
TextEditingController ffTypC = TextEditingController(); TextEditingController ffTypC = TextEditingController();
TextEditingController kSchloNrC = TextEditingController(); TextEditingController kSchloNrC = TextEditingController();
TextEditingController auftragC = TextEditingController(); TextEditingController auftragC = TextEditingController();
TextEditingController absprachenC = TextEditingController(); TextEditingController kontAbspC = TextEditingController();
TextEditingController sonstBemerkungenC = TextEditingController(); TextEditingController sonstBemC = TextEditingController();
TextEditingController fKontakt1C = TextEditingController(); TextEditingController fKontakt1C = TextEditingController();
TextEditingController fKontakt2C = TextEditingController(); TextEditingController fKontakt2C = TextEditingController();
TextEditingController fKontakt3C = TextEditingController(); TextEditingController fKontakt3C = TextEditingController();
TextEditingController altStOrtC = TextEditingController(); TextEditingController standortC = TextEditingController();
TextEditingController kTage1C = TextEditingController(); TextEditingController kTage1C = TextEditingController();
TextEditingController kTage2C = TextEditingController(); TextEditingController kTage2C = TextEditingController();
TextEditingController intKommC = TextEditingController(); TextEditingController intKommC = TextEditingController();
@@ -88,9 +88,9 @@ class _AddCamMainState extends State<AddCamMain> {
'CID': id.text, 'CID': id.text,
'Rudel': rudelC.text, 'Rudel': rudelC.text,
'Datum': datumS, 'Datum': datumS,
'Adresse1': addresse1C.text, 'Adresse1': adresse1C.text,
'Adresse2': addresse2C.text, 'Adresse2': adresse2C.text,
'Adresse3': addresse3C.text, 'Adresse3': adresse3C.text,
'BLand': bLandC.text, 'BLand': bLandC.text,
'Lkr': lkrC.text, 'Lkr': lkrC.text,
'BeiOrt': beiOrtC.text, 'BeiOrt': beiOrtC.text,
@@ -106,12 +106,12 @@ class _AddCamMainState extends State<AddCamMain> {
'KontDat': kontDatS, 'KontDat': kontDatS,
'AbbauDat': abbauDatS, 'AbbauDat': abbauDatS,
'Auftrag': auftragC.text, 'Auftrag': auftragC.text,
'KontAbsp': absprachenC.text, 'KontAbsp': kontAbspC.text,
'SonstBem': sonstBemerkungenC.text, 'SonstBem': sonstBemC.text,
'FKontakt1': fKontakt1C.text, 'FKontakt1': fKontakt1C.text,
'FKontakt2': fKontakt2C.text, 'FKontakt2': fKontakt2C.text,
'FKontakt3': fKontakt3C.text, 'FKontakt3': fKontakt3C.text,
'Standort': altStOrtC.text, 'Standort': standortC.text,
'AusVon': ausVonS, 'AusVon': ausVonS,
'AusBis': ausBisS, 'AusBis': ausBisS,
'KTage1': kTage1C.text, 'KTage1': kTage1C.text,
@@ -180,9 +180,9 @@ class _AddCamMainState extends State<AddCamMain> {
if (widget.isTemplate && widget.templateData != null) { if (widget.isTemplate && widget.templateData != null) {
id.text = widget.templateData!['CID']; id.text = widget.templateData!['CID'];
rudelC.text = widget.templateData!['Rudel']; rudelC.text = widget.templateData!['Rudel'];
addresse1C.text = widget.templateData!['Addresse1']; adresse1C.text = widget.templateData!['Adresse1'];
addresse2C.text = widget.templateData!['Addresse2']; adresse2C.text = widget.templateData!['Adresse2'];
addresse3C.text = widget.templateData!['Addresse3']; adresse3C.text = widget.templateData!['Adresse3'];
bLandC.text = widget.templateData!['BLand']; bLandC.text = widget.templateData!['BLand'];
lkrC.text = widget.templateData!['Lkr']; lkrC.text = widget.templateData!['Lkr'];
beiOrtC.text = widget.templateData!['BeiOrt']; beiOrtC.text = widget.templateData!['BeiOrt'];
@@ -199,12 +199,12 @@ class _AddCamMainState extends State<AddCamMain> {
kontDatS = widget.templateData!['KontDat']; kontDatS = widget.templateData!['KontDat'];
abbauDatS = widget.templateData!['AbbauDat']; abbauDatS = widget.templateData!['AbbauDat'];
auftragC.text = widget.templateData!['Auftrag']; auftragC.text = widget.templateData!['Auftrag'];
absprachenC.text = widget.templateData!['Absprachen']; kontAbspC.text = widget.templateData!['KontAbsp'];
sonstBemerkungenC.text = widget.templateData!['SonstBemerkungen']; sonstBemC.text = widget.templateData!['SonstBem'];
fKontakt1C.text = widget.templateData!['FKontakt1']; fKontakt1C.text = widget.templateData!['FKontakt1'];
fKontakt2C.text = widget.templateData!['FKontakt2']; fKontakt2C.text = widget.templateData!['FKontakt2'];
fKontakt3C.text = widget.templateData!['FKontakt3']; fKontakt3C.text = widget.templateData!['FKontakt3'];
altStOrtC.text = widget.templateData!['AltStOrt']; standortC.text = widget.templateData!['Standort'];
ausVonS = widget.templateData!['AusVon']; ausVonS = widget.templateData!['AusVon'];
ausBisS = widget.templateData!['AusBis']; ausBisS = widget.templateData!['AusBis'];
kTage1C.text = widget.templateData!['KTage1'].toString(); kTage1C.text = widget.templateData!['KTage1'].toString();
@@ -330,7 +330,7 @@ class _AddCamMainState extends State<AddCamMain> {
Map<String, TextEditingController> fields = { Map<String, TextEditingController> fields = {
'CID': id, 'CID': id,
'Rudel': rudelC, 'Rudel': rudelC,
'Addresse1': addresse1C, 'Adresse1': adresse1C,
'BLand': bLandC, 'BLand': bLandC,
'Lkr': lkrC, 'Lkr': lkrC,
'BeiOrt': beiOrtC, 'BeiOrt': beiOrtC,
@@ -342,7 +342,7 @@ class _AddCamMainState extends State<AddCamMain> {
'Platzung': TextEditingController(text: selectedPlatzung), 'Platzung': TextEditingController(text: selectedPlatzung),
'KTage1': kTage1C, 'KTage1': kTage1C,
'KTage2': kTage2C, 'KTage2': kTage2C,
'Standort': altStOrtC, 'Standort': standortC,
}; };
for (var entry in fields.entries) { for (var entry in fields.entries) {
@@ -393,7 +393,7 @@ class _AddCamMainState extends State<AddCamMain> {
children: [ children: [
Align( Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: AltStOrt(altStOrtC: altStOrtC), child: Standort(standortC: standortC),
), ),
const SizedBox( const SizedBox(
height: 1, height: 1,
@@ -509,7 +509,7 @@ class _AddCamMainState extends State<AddCamMain> {
final result = await Navigator.of(context) final result = await Navigator.of(context)
.push<LatLng>( .push<LatLng>(
MaterialPageRoute(builder: (context) { MaterialPageRoute(builder: (context) {
return Standort( return Karte(
currentPosition: currentPosition, currentPosition: currentPosition,
onPositionChange: (updatedPosition) { onPositionChange: (updatedPosition) {
setState(() { setState(() {
@@ -632,12 +632,12 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
Align( Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: Absprachen(absprachenC: absprachenC), child: KontAbsp(kontAbspC: kontAbspC),
), ),
Align( Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: child:
SonstBemerkungen(sonstBemerkungenC: sonstBemerkungenC), SonstBem(sonstBemC: sonstBemC),
), ),
], ],
)), )),
@@ -650,14 +650,14 @@ class _AddCamMainState extends State<AddCamMain> {
), ),
Align( Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: Addresse1(addresse1C: addresse1C)), child: Adresse1(adresse1C: adresse1C)),
Align( Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: Addresse2(addresse2C: addresse2C), child: Adresse2(adresse2C: adresse2C),
), ),
Align( Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: Addresse3(addresse3C: addresse3C), child: Adresse3(adresse3C: adresse3C),
), ),
const SizedBox( const SizedBox(
height: 15, height: 15,
@@ -712,7 +712,8 @@ class _AddCamMainState extends State<AddCamMain> {
final isLastStep = currentStep == getSteps().length - 1; final isLastStep = currentStep == getSteps().length - 1;
if (!isLastStep) { if (!isLastStep) {
// ! saveTemplate(); saveTemplate();
setState(() { setState(() {
currentStep += 1; currentStep += 1;
}); });

View File

@@ -213,23 +213,23 @@ class _RudelState extends State<Rudel> {
// //
// //
// //
// Standort // Karte
// ! completely new page // ! completely new page
class Standort extends StatefulWidget { class Karte extends StatefulWidget {
final Position currentPosition; final Position currentPosition;
final Function(Position) onPositionChange; final Function(Position) onPositionChange;
const Standort( const Karte(
{super.key, {super.key,
required this.currentPosition, required this.currentPosition,
required this.onPositionChange}); required this.onPositionChange});
@override @override
StandortState createState() => StandortState(); KarteState createState() => KarteState();
} }
class StandortState extends State<Standort> { class KarteState extends State<Karte> {
List<Marker> markers = []; List<Marker> markers = [];
LatLng? selectedPosition; LatLng? selectedPosition;
Position? updatedPosition; Position? updatedPosition;
@@ -387,20 +387,20 @@ class _DatumState extends State<Datum> {
} }
} }
// Addresse1 // Adresse1
class Addresse1 extends StatefulWidget { class Adresse1 extends StatefulWidget {
final TextEditingController addresse1C; final TextEditingController adresse1C;
const Addresse1({super.key, required this.addresse1C}); const Adresse1({super.key, required this.adresse1C});
@override @override
State<Addresse1> createState() => _Addresse1State(); State<Adresse1> createState() => _Adresse1State();
} }
class _Addresse1State extends State<Addresse1> { class _Adresse1State extends State<Adresse1> {
String? selectedRudel; String? selectedRudel;
late Future<List<Map<String, dynamic>>> Addresse1; late Future<List<Map<String, dynamic>>> Adresse1;
@override @override
void initState() { void initState() {
@@ -408,15 +408,15 @@ class _Addresse1State extends State<Addresse1> {
_loadPref(); _loadPref();
Addresse1 = DBHelper().getPlace(); Adresse1 = DBHelper().getPlace();
} }
void _loadPref() { void _loadPref() {
Future.delayed(Duration.zero, () async { Future.delayed(Duration.zero, () async {
SharedPreferences prefs = await SharedPreferences.getInstance(); SharedPreferences prefs = await SharedPreferences.getInstance();
String addresse1 = prefs.getString('addresse1') ?? ""; String adresse1 = prefs.getString('adresse1') ?? "";
setState(() { setState(() {
widget.addresse1C.text = addresse1; widget.adresse1C.text = adresse1;
}); });
}); });
} }
@@ -430,20 +430,20 @@ class _Addresse1State extends State<Addresse1> {
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.adresse1, hintText: AppLocalizations.of(context)!.adresse1,
enabledBorder: widget.addresse1C.text.isEmpty enabledBorder: widget.adresse1C.text.isEmpty
? const UnderlineInputBorder( ? const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.red)) borderSide: BorderSide(color: Colors.red))
: const UnderlineInputBorder( : const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green)), borderSide: BorderSide(color: Colors.green)),
focusedBorder: widget.addresse1C.text.isEmpty focusedBorder: widget.adresse1C.text.isEmpty
? const UnderlineInputBorder( ? const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.red)) borderSide: BorderSide(color: Colors.red))
: const UnderlineInputBorder( : const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green)), borderSide: BorderSide(color: Colors.green)),
), ),
controller: widget.addresse1C, controller: widget.adresse1C,
onChanged: (value) => setState(() { onChanged: (value) => setState(() {
widget.addresse1C.text = value; widget.adresse1C.text = value;
}), }),
)), )),
Expanded( Expanded(
@@ -451,20 +451,20 @@ class _Addresse1State extends State<Addresse1> {
child: Align( child: Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>( child: FutureBuilder<List<Map<String, dynamic>>>(
future: Addresse1, future: Adresse1,
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return DropdownButton<String>( return DropdownButton<String>(
items: snapshot.data! items: snapshot.data!
.map((item) => .map((item) =>
buildMenuItem(item['Addresse1'].toString())) buildMenuItem(item['Adresse1'].toString()))
.toList(), .toList(),
onChanged: (value) { onChanged: (value) {
setState( setState(
() { () {
selectedRudel = value; selectedRudel = value;
widget.addresse1C.text = value ?? ''; widget.adresse1C.text = value ?? '';
}, },
); );
}, },
@@ -490,25 +490,25 @@ class _Addresse1State extends State<Addresse1> {
); );
} }
// Addresse2 // Adresse2
class Addresse2 extends StatefulWidget { class Adresse2 extends StatefulWidget {
final TextEditingController addresse2C; final TextEditingController adresse2C;
const Addresse2({super.key, required this.addresse2C}); const Adresse2({super.key, required this.adresse2C});
@override @override
State<Addresse2> createState() => _Addresse2State(); State<Adresse2> createState() => _Adresse2State();
} }
class _Addresse2State extends State<Addresse2> { class _Adresse2State extends State<Adresse2> {
String? selectedRudel; String? selectedRudel;
late Future<List<Map<String, dynamic>>> Addresse2; late Future<List<Map<String, dynamic>>> Adresse2;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
Addresse2 = DBHelper().getPlace(); Adresse2 = DBHelper().getPlace();
} }
@override @override
@@ -520,9 +520,9 @@ class _Addresse2State extends State<Addresse2> {
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.adresse2), hintText: AppLocalizations.of(context)!.adresse2),
controller: widget.addresse2C, controller: widget.adresse2C,
onChanged: (value) => setState(() { onChanged: (value) => setState(() {
widget.addresse2C.text = value; widget.adresse2C.text = value;
}), }),
)), )),
Expanded( Expanded(
@@ -530,19 +530,19 @@ class _Addresse2State extends State<Addresse2> {
child: Align( child: Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>( child: FutureBuilder<List<Map<String, dynamic>>>(
future: Addresse2, future: Adresse2,
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return DropdownButton<String>( return DropdownButton<String>(
items: snapshot.data! items: snapshot.data!
.map((item) => buildMenuItem(item['Addresse2'].toString())) .map((item) => buildMenuItem(item['Adresse2'].toString()))
.toList(), .toList(),
onChanged: (value) { onChanged: (value) {
setState( setState(
() { () {
selectedRudel = value; selectedRudel = value;
widget.addresse2C.text = value ?? ''; widget.adresse2C.text = value ?? '';
}, },
); );
}, },
@@ -568,25 +568,25 @@ class _Addresse2State extends State<Addresse2> {
); );
} }
// Addresse3 // Adresse3
class Addresse3 extends StatefulWidget { class Adresse3 extends StatefulWidget {
final TextEditingController addresse3C; final TextEditingController adresse3C;
const Addresse3({super.key, required this.addresse3C}); const Adresse3({super.key, required this.adresse3C});
@override @override
State<Addresse3> createState() => _Addresse3State(); State<Adresse3> createState() => _Adresse3State();
} }
class _Addresse3State extends State<Addresse3> { class _Adresse3State extends State<Adresse3> {
String? selectedRudel; String? selectedRudel;
late Future<List<Map<String, dynamic>>> Addresse3; late Future<List<Map<String, dynamic>>> Adresse3;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
Addresse3 = DBHelper().getPlace(); Adresse3 = DBHelper().getPlace();
} }
@override @override
@@ -598,27 +598,27 @@ class _Addresse3State extends State<Addresse3> {
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.adresse3), hintText: AppLocalizations.of(context)!.adresse3),
controller: widget.addresse3C, controller: widget.adresse3C,
)), )),
Expanded( Expanded(
flex: 1, flex: 1,
child: Align( child: Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>( child: FutureBuilder<List<Map<String, dynamic>>>(
future: Addresse3, future: Adresse3,
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return DropdownButton<String>( return DropdownButton<String>(
items: snapshot.data! items: snapshot.data!
.map((item) => .map((item) =>
buildMenuItem(item['Addresse3'].toString())) buildMenuItem(item['Adresse3'].toString()))
.toList(), .toList(),
onChanged: (value) { onChanged: (value) {
setState( setState(
() { () {
selectedRudel = value; selectedRudel = value;
widget.addresse3C.text = value ?? ''; widget.adresse3C.text = value ?? '';
}, },
); );
}, },
@@ -1795,25 +1795,25 @@ class _AuftragState extends State<Auftrag> {
); );
} }
// Absprachen // KontAbsp
class Absprachen extends StatefulWidget { class KontAbsp extends StatefulWidget {
final TextEditingController absprachenC; final TextEditingController kontAbspC;
const Absprachen({super.key, required this.absprachenC}); const KontAbsp({super.key, required this.kontAbspC});
@override @override
State<Absprachen> createState() => _AbsprachenState(); State<KontAbsp> createState() => _KontAbspState();
} }
class _AbsprachenState extends State<Absprachen> { class _KontAbspState extends State<KontAbsp> {
String? selectedRudel; String? selectedRudel;
late Future<List<Map<String, dynamic>>> Absprachen; late Future<List<Map<String, dynamic>>> KontAbsp;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
Absprachen = DBHelper().getPlace(); KontAbsp = DBHelper().getPlace();
} }
@override @override
@@ -1824,28 +1824,28 @@ class _AbsprachenState extends State<Absprachen> {
flex: 2, flex: 2,
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.absprachen), hintText: AppLocalizations.of(context)!.kontabsp),
controller: widget.absprachenC, controller: widget.kontAbspC,
)), )),
Expanded( Expanded(
flex: 1, flex: 1,
child: Align( child: Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>( child: FutureBuilder<List<Map<String, dynamic>>>(
future: Absprachen, future: KontAbsp,
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return DropdownButton<String>( return DropdownButton<String>(
items: snapshot.data! items: snapshot.data!
.map((item) => .map((item) =>
buildMenuItem(item['Absprachen'].toString())) buildMenuItem(item['KontAbsp'].toString()))
.toList(), .toList(),
onChanged: (value) { onChanged: (value) {
setState( setState(
() { () {
selectedRudel = value; selectedRudel = value;
widget.absprachenC.text = value ?? ''; widget.kontAbspC.text = value ?? '';
}, },
); );
}, },
@@ -1871,25 +1871,25 @@ class _AbsprachenState extends State<Absprachen> {
); );
} }
// SonstBemerkungen // SonstBem
class SonstBemerkungen extends StatefulWidget { class SonstBem extends StatefulWidget {
final TextEditingController sonstBemerkungenC; final TextEditingController sonstBemC;
const SonstBemerkungen({super.key, required this.sonstBemerkungenC}); const SonstBem({super.key, required this.sonstBemC});
@override @override
State<SonstBemerkungen> createState() => _SonstBemerkungenState(); State<SonstBem> createState() => _SonstBemState();
} }
class _SonstBemerkungenState extends State<SonstBemerkungen> { class _SonstBemState extends State<SonstBem> {
String? selectedRudel; String? selectedRudel;
late Future<List<Map<String, dynamic>>> SonstBemerkungen; late Future<List<Map<String, dynamic>>> SonstBem;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
SonstBemerkungen = DBHelper().getPlace(); SonstBem = DBHelper().getPlace();
} }
@override @override
@@ -1901,27 +1901,27 @@ class _SonstBemerkungenState extends State<SonstBemerkungen> {
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.sonstbemerkungen), hintText: AppLocalizations.of(context)!.sonstbemerkungen),
controller: widget.sonstBemerkungenC, controller: widget.sonstBemC,
)), )),
Expanded( Expanded(
flex: 1, flex: 1,
child: Align( child: Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>( child: FutureBuilder<List<Map<String, dynamic>>>(
future: SonstBemerkungen, future: SonstBem,
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return DropdownButton<String>( return DropdownButton<String>(
items: snapshot.data! items: snapshot.data!
.map((item) => .map((item) =>
buildMenuItem(item['SonstBemerkungen'].toString())) buildMenuItem(item['SonstBem'].toString()))
.toList(), .toList(),
onChanged: (value) { onChanged: (value) {
setState( setState(
() { () {
selectedRudel = value; selectedRudel = value;
widget.sonstBemerkungenC.text = value ?? ''; widget.sonstBemC.text = value ?? '';
}, },
); );
}, },
@@ -2175,25 +2175,25 @@ class _FKontakt3State extends State<FKontakt3> {
); );
} }
// AltStOrt // Standort
class AltStOrt extends StatefulWidget { class Standort extends StatefulWidget {
final TextEditingController altStOrtC; final TextEditingController standortC;
const AltStOrt({super.key, required this.altStOrtC}); const Standort({super.key, required this.standortC});
@override @override
State<AltStOrt> createState() => _AltStOrtState(); State<Standort> createState() => _StandortState();
} }
class _AltStOrtState extends State<AltStOrt> { class _StandortState extends State<Standort> {
String? selectedRudel; String? selectedRudel;
late Future<List<Map<String, dynamic>>> AltStOrt; late Future<List<Map<String, dynamic>>> Standort;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
AltStOrt = DBHelper().getPlace(); Standort = DBHelper().getPlace();
} }
@override @override
@@ -2205,38 +2205,38 @@ class _AltStOrtState extends State<AltStOrt> {
child: TextField( child: TextField(
decoration: InputDecoration( decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.altstort, hintText: AppLocalizations.of(context)!.altstort,
enabledBorder: widget.altStOrtC.text.isEmpty enabledBorder: widget.standortC.text.isEmpty
? const UnderlineInputBorder( ? const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.red)) borderSide: BorderSide(color: Colors.red))
: const UnderlineInputBorder( : const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green)), borderSide: BorderSide(color: Colors.green)),
focusedBorder: widget.altStOrtC.text.isEmpty focusedBorder: widget.standortC.text.isEmpty
? const UnderlineInputBorder( ? const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.red)) borderSide: BorderSide(color: Colors.red))
: const UnderlineInputBorder( : const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green)), borderSide: BorderSide(color: Colors.green)),
), ),
controller: widget.altStOrtC, controller: widget.standortC,
)), )),
Expanded( Expanded(
flex: 1, flex: 1,
child: Align( child: Align(
alignment: Alignment.bottomLeft, alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>( child: FutureBuilder<List<Map<String, dynamic>>>(
future: AltStOrt, future: Standort,
builder: (BuildContext context, builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) { AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) { if (snapshot.hasData) {
return DropdownButton<String>( return DropdownButton<String>(
items: snapshot.data! items: snapshot.data!
.map((item) => .map((item) =>
buildMenuItem(item['AltStOrt'].toString())) buildMenuItem(item['Standort'].toString()))
.toList(), .toList(),
onChanged: (value) { onChanged: (value) {
setState( setState(
() { () {
selectedRudel = value; selectedRudel = value;
widget.altStOrtC.text = value ?? ''; widget.standortC.text = value ?? '';
}, },
); );
}, },

View File

@@ -43,7 +43,7 @@
"platzung": "Platzierung", "platzung": "Platzierung",
"zeiteinstellung": "Zeiteinstellung", "zeiteinstellung": "Zeiteinstellung",
"auftrag": "Auftrag", "auftrag": "Auftrag",
"absprachen": "Absprachen", "kontabsp": "Absprachen",
"sonstbemerkungen": "Sonstige Bemerkungen", "sonstbemerkungen": "Sonstige Bemerkungen",
"fkontakt1": "Kontakt für Fläche", "fkontakt1": "Kontakt für Fläche",
"fkontakt2": "Kontakt Eigentümer", "fkontakt2": "Kontakt Eigentümer",

View File

@@ -212,9 +212,9 @@
"description": "Auftrag textfield" "description": "Auftrag textfield"
}, },
"absprachen": "Agreements", "kontabsp": "Agreements",
"@absprachen": { "@kontabsp": {
"description": "absprachen textfield" "description": "kontabsp textfield"
}, },
"sonstbemerkungen": "Other remarks", "sonstbemerkungen": "Other remarks",

View File

@@ -205,7 +205,7 @@ class _ViewCamsState extends State<ViewCams> {
Text( Text(
'${AppLocalizations.of(context)!.locations}: ${place['Standort']}'), '${AppLocalizations.of(context)!.locations}: ${place['Standort']}'),
Text( Text(
'${AppLocalizations.of(context)!.adresse3}: ${place['PLZOrt']}'), '${AppLocalizations.of(context)!.adresse3}: ${place['Adresse3']}'),
Text( Text(
'${AppLocalizations.of(context)!.bland}: ${place['BLand']}'), '${AppLocalizations.of(context)!.bland}: ${place['BLand']}'),
Text( Text(
@@ -217,15 +217,15 @@ class _ViewCamsState extends State<ViewCams> {
Text( Text(
'${AppLocalizations.of(context)!.altstort}: ${place['AltStOrt']}'), '${AppLocalizations.of(context)!.altstort}: ${place['AltStOrt']}'),
Text( Text(
'${AppLocalizations.of(context)!.adresse1}: ${place['NameVorname']}'), '${AppLocalizations.of(context)!.adresse1}: ${place['Adresse1']}'),
Text( Text(
'${AppLocalizations.of(context)!.adresse2}: ${place['EmailTel']}'), '${AppLocalizations.of(context)!.adresse2}: ${place['Adresse2']}'),
Text( Text(
'${AppLocalizations.of(context)!.auftrag}: ${place['Auftrag']}'), '${AppLocalizations.of(context)!.auftrag}: ${place['Auftrag']}'),
Text( Text(
'${AppLocalizations.of(context)!.absprachen}: ${place['absprachen']}'), '${AppLocalizations.of(context)!.kontabsp}: ${place['KontAbsp']}'),
Text( Text(
'${AppLocalizations.of(context)!.sonstbemerkungen}: ${place['SonstBemerkungen']}'), '${AppLocalizations.of(context)!.sonstbemerkungen}: ${place['SonstBem']}'),
Text( Text(
'${AppLocalizations.of(context)!.fkontakt1}: ${place['FKontakt1']}'), '${AppLocalizations.of(context)!.fkontakt1}: ${place['FKontakt1']}'),
Text( Text(