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:
<<<<<<< HEAD
TEST SEND FILE TO SERVER FUNCTION
maybe auch vorschläge aus templates in dropdown menüs anzeigen
im englischen abändern
zurückfeld in datenansicht
überschriften für view cams
dropdown menü fixen (ai fragen)
=======
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
fehler beim speichern anzeigen
nach koordinaten lkr auswählen (esri-leaflet-geocoder)
fix ktage und nebeneinander positioniere
textdateien auch an server senden
<<<<<<< HEAD
error check wenn dateiauswahl abgebrochen wurde einfügen
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:
dropdown menü fixen (ai fragen)
eintrg in db wenn http response (in sent column)
not to do:
überschriften für view cams
schritte latlang umbenennen
gespeicherten ordner anzeigen
Ü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)),
TextButton(
onPressed: () async {
<<<<<<< HEAD
saveData();
=======
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f
_httpRequest();
saveData();
Navigator.pushNamedAndRemoveUntil(
// ignore: use_build_context_synchronously
context,
@@ -268,7 +272,7 @@ class _AddCamMainState extends State<AddCamMain> {
TextButton(
onPressed: () async {
saveData();
await saveFile();
saveFile();
// ignore: use_build_context_synchronously
Navigator.pushNamedAndRemoveUntil(
// 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
class KTage1 extends StatefulWidget {

View File

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

View File

@@ -409,6 +409,7 @@
"description": "Location text"
},
<<<<<<< HEAD
"sendfile": "Send file to server",
"@sendfile": {
"description": "Send file to server button"
@@ -417,6 +418,16 @@
"pickfile": "Pick file",
"@pickfile": {
"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(
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(
child: ListView.builder(
itemCount: snapshot.data!.length,
@@ -149,93 +165,94 @@ class _ViewCamsState extends State<ViewCams> {
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(12)),
child: Container(
decoration:
BoxDecoration(
borderRadius: BorderRadius.circular(12),
color: Theme.of(context).cardColor,
boxShadow: [
BoxShadow(
color: Theme.of(context).primaryColor,
spreadRadius: 7,
blurRadius: 7,
offset: const Offset(0, 3))
]),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'${AppLocalizations.of(context)!.date}: ${place['Datum']}'),
Text(
'${AppLocalizations.of(context)!.rudel}: ${place['Rudel']}'),
Text(
'${AppLocalizations.of(context)!.fftyp}: ${place['Datum']}'),
Text(
'${AppLocalizations.of(context)!.bearsafe}: ${place['Bearsafe']}'),
Text(
'${AppLocalizations.of(context)!.status}: ${place['Status']}'),
Text(
'${AppLocalizations.of(context)!.sttyp}: ${place['STTyp']}'),
Text(
'${AppLocalizations.of(context)!.foto}/${AppLocalizations.of(context)!.film}: ${place['FotoFilm']}'),
Text(
'${AppLocalizations.of(context)!.kschlonr}: ${place['KSchloNr']}'),
Text(
'${AppLocalizations.of(context)!.ktage1}: ${place['KTage1']}'),
Text(
'${AppLocalizations.of(context)!.ktage2}: ${place['KTage2']}'),
Text(
'${AppLocalizations.of(context)!.pickkontdat}: ${place['KontDat']}'),
Text(
'${AppLocalizations.of(context)!.pickabbaudat}: ${place['AbbauDat']}'),
Text(
'${AppLocalizations.of(context)!.sommerzeit}: ${place['MEZ']}'),
Text(
'${AppLocalizations.of(context)!.betreuung}: ${place['Betreuung']}'),
Text(
'${AppLocalizations.of(context)!.location}: ${place['Standort']}'),
Text(
'${AppLocalizations.of(context)!.adresse3}: ${place['Adresse3']}'),
Text(
'${AppLocalizations.of(context)!.bland}: ${place['BLand']}'),
Text(
'${AppLocalizations.of(context)!.lkr}: ${place['Lkr']}'),
Text(
'${AppLocalizations.of(context)!.beiort}: ${place['BeiOrt']}'),
Text(
'${AppLocalizations.of(context)!.platzung}: ${place['Platzung']}'),
Text(
'${AppLocalizations.of(context)!.altstort}: ${place['AltStOrt']}'),
Text(
'${AppLocalizations.of(context)!.adresse1}: ${place['Adresse1']}'),
Text(
'${AppLocalizations.of(context)!.adresse2}: ${place['Adresse2']}'),
Text(
'${AppLocalizations.of(context)!.auftrag}: ${place['Auftrag']}'),
Text(
'${AppLocalizations.of(context)!.kontabsp}: ${place['KontAbsp']}'),
Text(
'${AppLocalizations.of(context)!.sonstbemerkungen}: ${place['SonstBem']}'),
Text(
'${AppLocalizations.of(context)!.fkontakt1}: ${place['FKontakt1']}'),
Text(
'${AppLocalizations.of(context)!.fkontakt2}: ${place['FKontakt2']}'),
Text(
'${AppLocalizations.of(context)!.fkontakt3}: ${place['FKontakt3']}'),
Text(
'${AppLocalizations.of(context)!.intkomm}: ${place['IntKomm']}'),
],
),
child: Container(
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(12),
color:
Theme.of(context).cardColor,
boxShadow: [
BoxShadow(
color: Theme.of(context)
.primaryColor,
spreadRadius: 7,
blurRadius: 7,
offset:
const Offset(0, 3))
]),
child: Padding(
padding:
const EdgeInsets.all(8.0),
child: SingleChildScrollView(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
'${AppLocalizations.of(context)!.date}: ${place['Datum']}'),
Text(
'${AppLocalizations.of(context)!.rudel}: ${place['Rudel']}'),
Text(
'${AppLocalizations.of(context)!.fftyp}: ${place['Datum']}'),
Text(
'${AppLocalizations.of(context)!.bearsafe}: ${place['Bearsafe']}'),
Text(
'${AppLocalizations.of(context)!.status}: ${place['Status']}'),
Text(
'${AppLocalizations.of(context)!.sttyp}: ${place['STTyp']}'),
Text(
'${AppLocalizations.of(context)!.foto}/${AppLocalizations.of(context)!.film}: ${place['FotoFilm']}'),
Text(
'${AppLocalizations.of(context)!.kschlonr}: ${place['KSchloNr']}'),
Text(
'${AppLocalizations.of(context)!.ktage1}: ${place['KTage1']}'),
Text(
'${AppLocalizations.of(context)!.ktage2}: ${place['KTage2']}'),
Text(
'${AppLocalizations.of(context)!.pickkontdat}: ${place['KontDat']}'),
Text(
'${AppLocalizations.of(context)!.pickabbaudat}: ${place['AbbauDat']}'),
Text(
'${AppLocalizations.of(context)!.sommerzeit}: ${place['MEZ']}'),
Text(
'${AppLocalizations.of(context)!.betreuung}: ${place['Betreuung']}'),
Text(
'${AppLocalizations.of(context)!.location}: ${place['Standort']}'),
Text(
'${AppLocalizations.of(context)!.adresse3}: ${place['Adresse3']}'),
Text(
'${AppLocalizations.of(context)!.bland}: ${place['BLand']}'),
Text(
'${AppLocalizations.of(context)!.lkr}: ${place['Lkr']}'),
Text(
'${AppLocalizations.of(context)!.beiort}: ${place['BeiOrt']}'),
Text(
'${AppLocalizations.of(context)!.platzung}: ${place['Platzung']}'),
Text(
'${AppLocalizations.of(context)!.altstort}: ${place['AltStOrt']}'),
Text(
'${AppLocalizations.of(context)!.adresse1}: ${place['Adresse1']}'),
Text(
'${AppLocalizations.of(context)!.adresse2}: ${place['Adresse2']}'),
Text(
'${AppLocalizations.of(context)!.auftrag}: ${place['Auftrag']}'),
Text(
'${AppLocalizations.of(context)!.kontabsp}: ${place['KontAbsp']}'),
Text(
'${AppLocalizations.of(context)!.sonstbemerkungen}: ${place['SonstBem']}'),
Text(
'${AppLocalizations.of(context)!.fkontakt1}: ${place['FKontakt1']}'),
Text(
'${AppLocalizations.of(context)!.fkontakt2}: ${place['FKontakt2']}'),
Text(
'${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
23 mär 2h 15 min
24 mär 1h
<<<<<<< HEAD
26 mär 45 min
20 mär 1h 30 min
20 mär 1h 30 min
=======
17 apr 45 min
>>>>>>> d6ae86598dd9d031af9fe29680dc050c5bb2946f