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:
|
||||
<<<<<<< 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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']}'),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
),
|
||||
);
|
||||
});
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user