This commit is contained in:
2024-04-24 17:45:49 +02:00
7 changed files with 234 additions and 86 deletions

View File

@@ -1,22 +1,34 @@
todo: todo:
<<<<<<< HEAD
TEST SEND FILE TO SERVER FUNCTION TEST SEND FILE TO SERVER FUNCTION
maybe auch vorschläge aus templates in dropdown menüs anzeigen maybe auch vorschläge aus templates in dropdown menüs anzeigen
im englischen abändern im englischen abändern
zurückfeld in datenansicht zurückfeld in datenansicht
überschriften für view cams überschriften für view cams
dropdown menü fixen (ai fragen) dropdown menü fixen (ai fragen)
=======
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
fehler beim speichern anzeigen fehler beim speichern anzeigen
nach koordinaten lkr auswählen (esri-leaflet-geocoder) nach koordinaten lkr auswählen (esri-leaflet-geocoder)
fix ktage und nebeneinander positioniere fix ktage und nebeneinander positioniere
textdateien auch an server senden textdateien auch an server senden
<<<<<<< HEAD
error check wenn dateiauswahl abgebrochen wurde einfügen error check wenn dateiauswahl abgebrochen wurde einfügen
save option einfügen nur zum speichern save option einfügen nur zum speichern
=======
ausvon und ausbis fixen (falsches datum übergeben (20000-01-01))
zurückfeld in datenansicht
maybe auch vorschläge aus templates in dropdown menüs anzeigen
im englischen abändern
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
keine ahnung obs funktioniert: keine ahnung obs funktioniert:
dropdown menü fixen (ai fragen)
eintrg in db wenn http response (in sent column) eintrg in db wenn http response (in sent column)
not to do: not to do:
überschriften für view cams
schritte latlang umbenennen schritte latlang umbenennen
gespeicherten ordner anzeigen gespeicherten ordner anzeigen
Überall absätze machen und textfeld größer wenn langer text Überall absätze machen und textfeld größer wenn langer text

View File

@@ -256,8 +256,12 @@ class _AddCamMainState extends State<AddCamMain> {
child: Text(AppLocalizations.of(context)!.template)), child: Text(AppLocalizations.of(context)!.template)),
TextButton( TextButton(
onPressed: () async { onPressed: () async {
<<<<<<< HEAD
saveData(); saveData();
=======
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
_httpRequest(); _httpRequest();
saveData();
Navigator.pushNamedAndRemoveUntil( Navigator.pushNamedAndRemoveUntil(
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
context, context,
@@ -268,7 +272,7 @@ class _AddCamMainState extends State<AddCamMain> {
TextButton( TextButton(
onPressed: () async { onPressed: () async {
saveData(); saveData();
await saveFile(); saveFile();
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
Navigator.pushNamedAndRemoveUntil( Navigator.pushNamedAndRemoveUntil(
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously

View File

@@ -2417,6 +2417,101 @@ class _FKontakt3State extends State<FKontakt3> {
); );
} }
<<<<<<< HEAD
=======
// Standort
class Standort extends StatefulWidget {
final TextEditingController standortC;
const Standort({super.key, required this.standortC});
@override
State<Standort> createState() => _StandortState();
}
class _StandortState extends State<Standort> {
String? selectedRudel;
late Future<List<Map<String, dynamic>>> Standort;
@override
void initState() {
super.initState();
Standort = DBHelper().getPlace();
}
@override
Widget build(BuildContext context) {
return Row(
children: [
Expanded(
flex: 3,
child: TextField(
keyboardType: TextInputType.multiline,
maxLines: null,
decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.altstort,
enabledBorder: widget.standortC.text.isEmpty
? const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.red))
: const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green)),
focusedBorder: widget.standortC.text.isEmpty
? const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.red))
: const UnderlineInputBorder(
borderSide: BorderSide(color: Colors.green)),
),
controller: widget.standortC,
)),
Expanded(
flex: 1,
child: Align(
alignment: Alignment.bottomLeft,
child: FutureBuilder<List<Map<String, dynamic>>>(
future: Standort,
builder: (BuildContext context,
AsyncSnapshot<List<Map<String, dynamic>>> snapshot) {
if (snapshot.hasData) {
var filteredData = snapshot.data!
.where((item) => item['Standort'] != null)
.toList();
return DropdownButton<String>(
items: filteredData
.map((item) =>
buildMenuItem(item['Standort'].toString()))
.toList(),
onChanged: (value) {
setState(
() {
selectedRudel = value;
widget.standortC.text = value ?? '';
},
);
},
value: null,
underline: const SizedBox(),
);
} else if (snapshot.hasError) {
return Text('Fehler: ${snapshot.error}');
} else {
return const CircularProgressIndicator();
}
},
),
),
)
],
);
}
DropdownMenuItem<String> buildMenuItem(String item) => DropdownMenuItem(
value: item,
child: Text(item),
);
}
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
// KTage1 // KTage1
class KTage1 extends StatefulWidget { class KTage1 extends StatefulWidget {

View File

@@ -85,6 +85,11 @@
"open": "öffnen", "open": "öffnen",
"date": "Datum", "date": "Datum",
"location": "Standort", "location": "Standort",
<<<<<<< HEAD
"sendfile": "Datei zum Server schicken", "sendfile": "Datei zum Server schicken",
"pickfile": "Datei auswählen" "pickfile": "Datei auswählen"
=======
"placedata": "Standortdaten",
"sent": "Gesendet"
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
} }

View File

@@ -409,6 +409,7 @@
"description": "Location text" "description": "Location text"
}, },
<<<<<<< HEAD
"sendfile": "Send file to server", "sendfile": "Send file to server",
"@sendfile": { "@sendfile": {
"description": "Send file to server button" "description": "Send file to server button"
@@ -417,6 +418,16 @@
"pickfile": "Pick file", "pickfile": "Pick file",
"@pickfile": { "@pickfile": {
"description": "Pick file button" "description": "Pick file button"
=======
"placedata": "Placedata",
"@camdata": {
"description": "view data placedata header"
},
"sent": "Sent",
"@sent": {
"description": "view data sent header"
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
} }
} }

View File

@@ -126,6 +126,22 @@ class _ViewCamsState extends State<ViewCams> {
), ),
body: Column( body: Column(
children: [ children: [
const SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(AppLocalizations.of(context)!.placedata),
const SizedBox(
width: 250,
),
Text(AppLocalizations.of(context)!.sent),
],
),
const SizedBox(
height: 15,
),
Expanded( Expanded(
child: ListView.builder( child: ListView.builder(
itemCount: snapshot.data!.length, itemCount: snapshot.data!.length,
@@ -149,93 +165,94 @@ class _ViewCamsState extends State<ViewCams> {
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: borderRadius:
BorderRadius.circular(12)), BorderRadius.circular(12)),
child: Container(
child: Container( decoration: BoxDecoration(
borderRadius:
decoration: BorderRadius.circular(12),
BoxDecoration( color:
borderRadius: BorderRadius.circular(12), Theme.of(context).cardColor,
color: Theme.of(context).cardColor, boxShadow: [
boxShadow: [ BoxShadow(
BoxShadow( color: Theme.of(context)
color: Theme.of(context).primaryColor, .primaryColor,
spreadRadius: 7, spreadRadius: 7,
blurRadius: 7, blurRadius: 7,
offset: const Offset(0, 3)) offset:
]), const Offset(0, 3))
child: Padding( ]),
padding: const EdgeInsets.all(8.0), child: Padding(
child: SingleChildScrollView( padding:
child: Column( const EdgeInsets.all(8.0),
crossAxisAlignment: child: SingleChildScrollView(
CrossAxisAlignment.start, child: Column(
children: [ crossAxisAlignment:
Text( CrossAxisAlignment.start,
'${AppLocalizations.of(context)!.date}: ${place['Datum']}'), children: [
Text( Text(
'${AppLocalizations.of(context)!.rudel}: ${place['Rudel']}'), '${AppLocalizations.of(context)!.date}: ${place['Datum']}'),
Text( Text(
'${AppLocalizations.of(context)!.fftyp}: ${place['Datum']}'), '${AppLocalizations.of(context)!.rudel}: ${place['Rudel']}'),
Text( Text(
'${AppLocalizations.of(context)!.bearsafe}: ${place['Bearsafe']}'), '${AppLocalizations.of(context)!.fftyp}: ${place['Datum']}'),
Text( Text(
'${AppLocalizations.of(context)!.status}: ${place['Status']}'), '${AppLocalizations.of(context)!.bearsafe}: ${place['Bearsafe']}'),
Text( Text(
'${AppLocalizations.of(context)!.sttyp}: ${place['STTyp']}'), '${AppLocalizations.of(context)!.status}: ${place['Status']}'),
Text( Text(
'${AppLocalizations.of(context)!.foto}/${AppLocalizations.of(context)!.film}: ${place['FotoFilm']}'), '${AppLocalizations.of(context)!.sttyp}: ${place['STTyp']}'),
Text( Text(
'${AppLocalizations.of(context)!.kschlonr}: ${place['KSchloNr']}'), '${AppLocalizations.of(context)!.foto}/${AppLocalizations.of(context)!.film}: ${place['FotoFilm']}'),
Text( Text(
'${AppLocalizations.of(context)!.ktage1}: ${place['KTage1']}'), '${AppLocalizations.of(context)!.kschlonr}: ${place['KSchloNr']}'),
Text( Text(
'${AppLocalizations.of(context)!.ktage2}: ${place['KTage2']}'), '${AppLocalizations.of(context)!.ktage1}: ${place['KTage1']}'),
Text( Text(
'${AppLocalizations.of(context)!.pickkontdat}: ${place['KontDat']}'), '${AppLocalizations.of(context)!.ktage2}: ${place['KTage2']}'),
Text( Text(
'${AppLocalizations.of(context)!.pickabbaudat}: ${place['AbbauDat']}'), '${AppLocalizations.of(context)!.pickkontdat}: ${place['KontDat']}'),
Text( Text(
'${AppLocalizations.of(context)!.sommerzeit}: ${place['MEZ']}'), '${AppLocalizations.of(context)!.pickabbaudat}: ${place['AbbauDat']}'),
Text( Text(
'${AppLocalizations.of(context)!.betreuung}: ${place['Betreuung']}'), '${AppLocalizations.of(context)!.sommerzeit}: ${place['MEZ']}'),
Text( Text(
'${AppLocalizations.of(context)!.location}: ${place['Standort']}'), '${AppLocalizations.of(context)!.betreuung}: ${place['Betreuung']}'),
Text( Text(
'${AppLocalizations.of(context)!.adresse3}: ${place['Adresse3']}'), '${AppLocalizations.of(context)!.location}: ${place['Standort']}'),
Text( Text(
'${AppLocalizations.of(context)!.bland}: ${place['BLand']}'), '${AppLocalizations.of(context)!.adresse3}: ${place['Adresse3']}'),
Text( Text(
'${AppLocalizations.of(context)!.lkr}: ${place['Lkr']}'), '${AppLocalizations.of(context)!.bland}: ${place['BLand']}'),
Text( Text(
'${AppLocalizations.of(context)!.beiort}: ${place['BeiOrt']}'), '${AppLocalizations.of(context)!.lkr}: ${place['Lkr']}'),
Text( Text(
'${AppLocalizations.of(context)!.platzung}: ${place['Platzung']}'), '${AppLocalizations.of(context)!.beiort}: ${place['BeiOrt']}'),
Text( Text(
'${AppLocalizations.of(context)!.altstort}: ${place['AltStOrt']}'), '${AppLocalizations.of(context)!.platzung}: ${place['Platzung']}'),
Text( Text(
'${AppLocalizations.of(context)!.adresse1}: ${place['Adresse1']}'), '${AppLocalizations.of(context)!.altstort}: ${place['AltStOrt']}'),
Text( Text(
'${AppLocalizations.of(context)!.adresse2}: ${place['Adresse2']}'), '${AppLocalizations.of(context)!.adresse1}: ${place['Adresse1']}'),
Text( Text(
'${AppLocalizations.of(context)!.auftrag}: ${place['Auftrag']}'), '${AppLocalizations.of(context)!.adresse2}: ${place['Adresse2']}'),
Text( Text(
'${AppLocalizations.of(context)!.kontabsp}: ${place['KontAbsp']}'), '${AppLocalizations.of(context)!.auftrag}: ${place['Auftrag']}'),
Text( Text(
'${AppLocalizations.of(context)!.sonstbemerkungen}: ${place['SonstBem']}'), '${AppLocalizations.of(context)!.kontabsp}: ${place['KontAbsp']}'),
Text( Text(
'${AppLocalizations.of(context)!.fkontakt1}: ${place['FKontakt1']}'), '${AppLocalizations.of(context)!.sonstbemerkungen}: ${place['SonstBem']}'),
Text( Text(
'${AppLocalizations.of(context)!.fkontakt2}: ${place['FKontakt2']}'), '${AppLocalizations.of(context)!.fkontakt1}: ${place['FKontakt1']}'),
Text( Text(
'${AppLocalizations.of(context)!.fkontakt3}: ${place['FKontakt3']}'), '${AppLocalizations.of(context)!.fkontakt2}: ${place['FKontakt2']}'),
Text( Text(
'${AppLocalizations.of(context)!.intkomm}: ${place['IntKomm']}'), '${AppLocalizations.of(context)!.fkontakt3}: ${place['FKontakt3']}'),
], Text(
), '${AppLocalizations.of(context)!.intkomm}: ${place['IntKomm']}'),
],
), ),
), ),
), ),
),
); );
}); });
}, },

View File

@@ -46,5 +46,9 @@
21 mär 4h 15 min 21 mär 4h 15 min
23 mär 2h 15 min 23 mär 2h 15 min
24 mär 1h 24 mär 1h
<<<<<<< HEAD
26 mär 45 min 26 mär 45 min
20 mär 1h 30 min 20 mär 1h 30 min
=======
17 apr 45 min
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f