Merge branch 'main' of https://git.getmemy.coffee/nico/fforte
This commit is contained in:
12
Todo.txt
12
Todo.txt
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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']}'),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user