sitzung luc
This commit is contained in:
20
Todo.txt
20
Todo.txt
@@ -2,6 +2,26 @@ todo:
|
|||||||
TESTEN!!
|
TESTEN!!
|
||||||
maybe auch vorschläge aus templates in dropdown menüs anzeigen
|
maybe auch vorschläge aus templates in dropdown menüs anzeigen
|
||||||
eintrag in db wenn http response (in sent column)
|
eintrag in db wenn http response (in sent column)
|
||||||
|
nachricht wenn einstellungen erfolgreich geändert
|
||||||
|
view cams übersetzen
|
||||||
|
abbaudat leer
|
||||||
|
datum step redesign (maybe linien dazwischen und sized box zwischen text und button weg)
|
||||||
|
beim nächsten schritt als template
|
||||||
|
im englischen abändern
|
||||||
|
systematic ???
|
||||||
|
standort automatisch in Karte
|
||||||
|
karte drehen aus
|
||||||
|
Auftrag absätze machen und textfeld größer wenn langer text
|
||||||
|
beim letzten weiter alle leeren felder anzeigen (array zurückgeben)
|
||||||
|
gespeicherten ordner anzeigen
|
||||||
|
zurückfeld in datenansicht
|
||||||
|
überschriften für view cams
|
||||||
|
Überall wo Kameras steht standorte hinschreiben
|
||||||
|
null eintrag in dropdown menüs weg
|
||||||
|
speichern funktion zum Abbrechen
|
||||||
|
fehler beim speichern anzeigen
|
||||||
|
ktage raus
|
||||||
|
|
||||||
|
|
||||||
not to do:
|
not to do:
|
||||||
clean db_helper
|
clean db_helper
|
||||||
|
|||||||
@@ -32,4 +32,5 @@
|
|||||||
</application>
|
</application>
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET"/>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import 'package:geolocator/geolocator.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:latlong2/latlong.dart';
|
import 'package:latlong2/latlong.dart';
|
||||||
import 'package:animations/animations.dart';
|
import 'package:animations/animations.dart';
|
||||||
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
class AddCamMain extends StatefulWidget {
|
class AddCamMain extends StatefulWidget {
|
||||||
final bool isTemplate;
|
final bool isTemplate;
|
||||||
@@ -49,10 +50,10 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
TextEditingController intKommC = TextEditingController();
|
TextEditingController intKommC = TextEditingController();
|
||||||
TextEditingController kontSumC = TextEditingController();
|
TextEditingController kontSumC = TextEditingController();
|
||||||
|
|
||||||
String selectedStatus = 'inaktiv';
|
String selectedStatus = 'aktiv';
|
||||||
String selectedSTTyp = 'opportunistisch';
|
String selectedSTTyp = 'opportunistisch';
|
||||||
String selectedFotoFilm = 'foto';
|
String selectedFotoFilm = 'foto';
|
||||||
String selectedMEZ = 'mez';
|
String selectedMEZ = 'sommerzeit';
|
||||||
String selectedPlatzung = 'kirrung';
|
String selectedPlatzung = 'kirrung';
|
||||||
String selectedBearsafe = 'nein';
|
String selectedBearsafe = 'nein';
|
||||||
|
|
||||||
@@ -69,11 +70,11 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
headingAccuracy: 0.0);
|
headingAccuracy: 0.0);
|
||||||
|
|
||||||
String datumS = DateFormat('yyyy-MM-dd').format(DateTime.now());
|
String datumS = DateFormat('yyyy-MM-dd').format(DateTime.now());
|
||||||
String kontDatS = DateFormat('yyyy-mm-dd').format(DateTime.now());
|
String kontDatS = DateFormat('yyyy-MM-dd').format(DateTime.now());
|
||||||
String abbauDatS = DateFormat('yyyy-mm-dd').format(DateTime.now());
|
String abbauDatS = DateFormat('yyyy-MM-dd').format(DateTime.now());
|
||||||
String ausVonS = DateFormat('yyyy-mm-dd').format(DateTime(2000));
|
String ausVonS = DateFormat('yyyy-MM-dd').format(DateTime(2000));
|
||||||
String ausBisS = DateFormat('yyyy-mm-dd').format(DateTime(2000));
|
String ausBisS = DateFormat('yyyy-MM-dd').format(DateTime(2000));
|
||||||
String protoAmS = DateFormat('yyyy-mm-dd').format(DateTime.now());
|
String protoAmS = DateFormat('yyyy-MM-dd').format(DateTime.now());
|
||||||
DateTime? ausBis;
|
DateTime? ausBis;
|
||||||
DateTime? ausVon;
|
DateTime? ausVon;
|
||||||
DateTime abbauDat = DateTime.now();
|
DateTime abbauDat = DateTime.now();
|
||||||
@@ -207,15 +208,17 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
title: Text(AppLocalizations.of(context)!.savemethod),
|
title: Text(AppLocalizations.of(context)!.savemethod),
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
Navigator.pushNamedAndRemoveUntil(context, '/home', (route) => false);
|
_httpRequest();
|
||||||
|
// Navigator.pushNamedAndRemoveUntil(context, '/home', (route) => false);
|
||||||
},
|
},
|
||||||
child: Text(AppLocalizations.of(context)!.sendtoserver)),
|
child: Text(AppLocalizations.of(context)!.sendtoserver)),
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await saveFile();
|
await saveFile();
|
||||||
// ignore: use_build_context_synchronously
|
// ignore: use_build_context_synchronously
|
||||||
Navigator.pushNamedAndRemoveUntil(context, '/home', (route) => false);
|
Navigator.pushNamedAndRemoveUntil(
|
||||||
|
context, '/home', (route) => false);
|
||||||
},
|
},
|
||||||
child: Text(AppLocalizations.of(context)!.saveasfile))
|
child: Text(AppLocalizations.of(context)!.saveasfile))
|
||||||
],
|
],
|
||||||
@@ -223,9 +226,55 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _httpRequest() async {
|
||||||
|
Map<String, dynamic> place = {
|
||||||
|
'CID': id.text,
|
||||||
|
'Rudel': rudelC.text,
|
||||||
|
'Datum': datumS,
|
||||||
|
'NameVorname': nameVornameC.text,
|
||||||
|
'PLZOrt': plzOrtC.text,
|
||||||
|
'EmailTel': emailTelC.text,
|
||||||
|
'BLand': bLandC.text,
|
||||||
|
'Lkr': lkrC.text,
|
||||||
|
'BeiOrt': beiOrtC.text,
|
||||||
|
'OrtInfo': ortInfoC.text,
|
||||||
|
'Status': selectedStatus,
|
||||||
|
'STTyp': selectedSTTyp,
|
||||||
|
'FFTyp': ffTypC.text,
|
||||||
|
'FotoFilm': selectedFotoFilm,
|
||||||
|
'MEZ': selectedMEZ,
|
||||||
|
'Platzung': selectedPlatzung,
|
||||||
|
'KSchloNr': kSchloNrC.text,
|
||||||
|
'Bearsafe': selectedBearsafe,
|
||||||
|
'KontDat': kontDatS,
|
||||||
|
'AbbauDat': abbauDatS,
|
||||||
|
'Auftrag': auftragC.text,
|
||||||
|
'Absprachen': absprachenC.text,
|
||||||
|
'SonstBemerkungen': sonstBemerkungenC.text,
|
||||||
|
'FKontakt1': fKontakt1C.text,
|
||||||
|
'FKontakt2': fKontakt2C.text,
|
||||||
|
'FKontakt3': fKontakt3C.text,
|
||||||
|
'AltStOrt': altStOrtC.text,
|
||||||
|
'AusVon': ausVonS,
|
||||||
|
'AusBis': ausBisS,
|
||||||
|
'KTage1': kTage1C.text,
|
||||||
|
'KTage2': kTage2C.text,
|
||||||
|
'ProtoAm': protoAmS,
|
||||||
|
'IntKomm': intKommC.text,
|
||||||
|
'KontSum': kontSumC.text,
|
||||||
|
};
|
||||||
|
|
||||||
|
final response = await http.post(Uri.parse("http://192.168.178.30/www.dbb-wolf.de/data/_nicoapi.php"),
|
||||||
|
headers: <String, String>{
|
||||||
|
'Content-Type': 'application/json; charset=UTF-8',
|
||||||
|
},
|
||||||
|
body: jsonEncode(place));
|
||||||
|
print(response);
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> saveFile() async {
|
Future<void> saveFile() async {
|
||||||
String? selectedDirectory = await FilePicker.platform.getDirectoryPath();
|
String? selectedDirectory = await FilePicker.platform.getDirectoryPath();
|
||||||
|
|
||||||
Map<String, dynamic> place = {
|
Map<String, dynamic> place = {
|
||||||
'CID': id.text,
|
'CID': id.text,
|
||||||
'Rudel': rudelC.text,
|
'Rudel': rudelC.text,
|
||||||
@@ -270,8 +319,7 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
|
|
||||||
File file = File('$selectedDirectory/cam-${id.text}.txt');
|
File file = File('$selectedDirectory/cam-${id.text}.txt');
|
||||||
|
|
||||||
await file
|
await file.writeAsString(jsonPlace);
|
||||||
.writeAsString(jsonPlace);
|
|
||||||
|
|
||||||
// ignore: use_build_context_synchronously
|
// ignore: use_build_context_synchronously
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
@@ -287,7 +335,6 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
'BLand': bLandC,
|
'BLand': bLandC,
|
||||||
'Lkr': lkrC,
|
'Lkr': lkrC,
|
||||||
'BeiOrt': beiOrtC,
|
'BeiOrt': beiOrtC,
|
||||||
'OrtInfo': ortInfoC,
|
|
||||||
'Status': TextEditingController(text: selectedStatus),
|
'Status': TextEditingController(text: selectedStatus),
|
||||||
'STTyp': TextEditingController(text: selectedSTTyp),
|
'STTyp': TextEditingController(text: selectedSTTyp),
|
||||||
'FFTyp': ffTypC,
|
'FFTyp': ffTypC,
|
||||||
@@ -572,7 +619,7 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
alignment: Alignment.bottomLeft,
|
alignment: Alignment.bottomLeft,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: [
|
children: [
|
||||||
Text(AppLocalizations.of(context)!.sommerzeit),
|
Text(AppLocalizations.of(context)!.zeiteinstellung),
|
||||||
const Text(
|
const Text(
|
||||||
'*',
|
'*',
|
||||||
style: TextStyle(color: Colors.red),
|
style: TextStyle(color: Colors.red),
|
||||||
@@ -685,7 +732,7 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
],
|
],
|
||||||
)),
|
)),
|
||||||
Step(
|
Step(
|
||||||
title: Text(AppLocalizations.of(context)!.secondStep),
|
title: Text(AppLocalizations.of(context)!.kontakt),
|
||||||
content: Column(
|
content: Column(
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
@@ -764,6 +811,7 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
final isLastStep = currentStep == getSteps().length - 1;
|
final isLastStep = currentStep == getSteps().length - 1;
|
||||||
|
|
||||||
if (!isLastStep) {
|
if (!isLastStep) {
|
||||||
|
// ! saveTemplate();
|
||||||
setState(() {
|
setState(() {
|
||||||
currentStep += 1;
|
currentStep += 1;
|
||||||
});
|
});
|
||||||
@@ -774,11 +822,14 @@ class _AddCamMainState extends State<AddCamMain> {
|
|||||||
();
|
();
|
||||||
return;
|
return;
|
||||||
} else if (empty == false) {
|
} else if (empty == false) {
|
||||||
|
// throw const FormatException(("Speichert"));
|
||||||
saveData();
|
saveData();
|
||||||
await showSaveOptionsDialog();
|
await showSaveOptionsDialog();
|
||||||
Navigator.pushNamedAndRemoveUntil(
|
Navigator.pushNamedAndRemoveUntil(
|
||||||
// ignore: use_build_context_synchronously
|
// ignore: use_build_context_synchronously
|
||||||
context, '/home', (route) => false);
|
context,
|
||||||
|
'/home',
|
||||||
|
(route) => false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -351,9 +351,9 @@ class _DatumState extends State<Datum> {
|
|||||||
Text(
|
Text(
|
||||||
'${datum?.day}. ${datum?.month}. ${datum?.year}',
|
'${datum?.day}. ${datum?.month}. ${datum?.year}',
|
||||||
),
|
),
|
||||||
const SizedBox(
|
//const SizedBox(
|
||||||
height: 8,
|
// height: 2,
|
||||||
),
|
//),
|
||||||
ElevatedButton(
|
ElevatedButton(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final date = await pickDate();
|
final date = await pickDate();
|
||||||
@@ -949,18 +949,7 @@ class _OrtInfoState extends State<OrtInfo> {
|
|||||||
flex: 2,
|
flex: 2,
|
||||||
child: TextField(
|
child: TextField(
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
hintText: AppLocalizations.of(context)!.ortinfo,
|
hintText: AppLocalizations.of(context)!.ortinfo,),
|
||||||
enabledBorder: widget.ortInfoC.text.isEmpty
|
|
||||||
? const UnderlineInputBorder(
|
|
||||||
borderSide: BorderSide(color: Colors.red))
|
|
||||||
: const UnderlineInputBorder(
|
|
||||||
borderSide: BorderSide(color: Colors.green)),
|
|
||||||
focusedBorder: widget.ortInfoC.text.isEmpty
|
|
||||||
? const UnderlineInputBorder(
|
|
||||||
borderSide: BorderSide(color: Colors.red))
|
|
||||||
: const UnderlineInputBorder(
|
|
||||||
borderSide: BorderSide(color: Colors.green)),
|
|
||||||
),
|
|
||||||
controller: widget.ortInfoC,
|
controller: widget.ortInfoC,
|
||||||
onChanged: (value) => setState(() {
|
onChanged: (value) => setState(() {
|
||||||
widget.ortInfoC.text = value;
|
widget.ortInfoC.text = value;
|
||||||
@@ -1417,7 +1406,7 @@ class MEZ extends StatefulWidget {
|
|||||||
final Function(String) onMEZChanged;
|
final Function(String) onMEZChanged;
|
||||||
final String initialMEZ;
|
final String initialMEZ;
|
||||||
|
|
||||||
const MEZ({super.key, required this.onMEZChanged, this.initialMEZ = 'aktiv'});
|
const MEZ({super.key, required this.onMEZChanged, this.initialMEZ = 'sommerzeit'});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<MEZ> createState() => _MEZState();
|
State<MEZ> createState() => _MEZState();
|
||||||
@@ -1438,9 +1427,9 @@ class _MEZState extends State<MEZ> {
|
|||||||
children: [
|
children: [
|
||||||
ListTile(
|
ListTile(
|
||||||
visualDensity: const VisualDensity(vertical: -4),
|
visualDensity: const VisualDensity(vertical: -4),
|
||||||
title: Text(AppLocalizations.of(context)!.mez),
|
title: Text(AppLocalizations.of(context)!.sommerzeit),
|
||||||
leading: Radio<String>(
|
leading: Radio<String>(
|
||||||
value: 'mez',
|
value: 'sommerzeit',
|
||||||
groupValue: _selectedMEZ,
|
groupValue: _selectedMEZ,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -1452,9 +1441,9 @@ class _MEZState extends State<MEZ> {
|
|||||||
),
|
),
|
||||||
ListTile(
|
ListTile(
|
||||||
visualDensity: const VisualDensity(vertical: -4),
|
visualDensity: const VisualDensity(vertical: -4),
|
||||||
title: Text(AppLocalizations.of(context)!.unklar),
|
title: Text(AppLocalizations.of(context)!.winterzeit),
|
||||||
leading: Radio<String>(
|
leading: Radio<String>(
|
||||||
value: 'unklar',
|
value: 'winterzeit',
|
||||||
groupValue: _selectedMEZ,
|
groupValue: _selectedMEZ,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|||||||
@@ -5,30 +5,31 @@
|
|||||||
"uncompleted": "Unvollständig",
|
"uncompleted": "Unvollständig",
|
||||||
"deleteEverything": "Alles löschen?",
|
"deleteEverything": "Alles löschen?",
|
||||||
"deleteEverythingContent": "Alle Kameras werden lokal gelöscht!",
|
"deleteEverythingContent": "Alle Kameras werden lokal gelöscht!",
|
||||||
"camLink": "Link zur Kamera",
|
"camLink": "ID der Kamera",
|
||||||
"firstStep": "Kamera, Rudel",
|
"firstStep": "KAMERA, TERRITORIUM",
|
||||||
"secondStep": "Datum, Kontakt",
|
"secondStep": "DATUM, KONTAKT",
|
||||||
"date": "Datum",
|
"date": "DATUM",
|
||||||
|
"kontakt": "KONTAKT",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"viewCamsAppbar": "Kameras ansehen",
|
"viewCamsAppbar": "Kameras ansehen",
|
||||||
"locations": "Standort",
|
"locations": "STANDORT",
|
||||||
"rudel": "Rudel",
|
"rudel": "Territorium",
|
||||||
"namevorname": "Name",
|
"namevorname": "Name",
|
||||||
"plzort": "PLZ und Ort",
|
"plzort": "PLZ und Ort",
|
||||||
"emailtel": "Email und/oder Telefon",
|
"emailtel": "Email und/oder Telefon",
|
||||||
"bland": "Bundesland",
|
"bland": "Bundesland",
|
||||||
"lkr": "Landkreis",
|
"lkr": "Landkreis",
|
||||||
"beiort": "Bei Ort",
|
"beiort": "Bei Ort",
|
||||||
"ortinfo": "Ort Info",
|
"ortinfo": "Nähere Ortsbeschreibung",
|
||||||
"aktiv": "Aktiv",
|
"aktiv": "Aktiv",
|
||||||
"inaktiv": "Inaktiv",
|
"inaktiv": "Inaktiv",
|
||||||
"opportunistisch": "opportunistisch",
|
"opportunistisch": "opportunistisch",
|
||||||
"systematic": "systematisch",
|
"systematic": "systematisch",
|
||||||
"fftyp": "Fotofallen typ",
|
"fftyp": "Fotofallentyp",
|
||||||
"foto": "Foto",
|
"foto": "Foto",
|
||||||
"film": "Film",
|
"film": "Film",
|
||||||
"mez": "MEZ",
|
"sommerzeit": "Sommerzeit",
|
||||||
"unklar": "Unklar",
|
"winterzeit": "Winterzeit",
|
||||||
"intkomm": "Interne Kommunikation",
|
"intkomm": "Interne Kommunikation",
|
||||||
"kirrung": "Kirrung",
|
"kirrung": "Kirrung",
|
||||||
"wasserstelle": "Wasserstelle",
|
"wasserstelle": "Wasserstelle",
|
||||||
@@ -38,10 +39,10 @@
|
|||||||
"kschlonr": "KSchloss Nummer",
|
"kschlonr": "KSchloss Nummer",
|
||||||
"nein": "Nein",
|
"nein": "Nein",
|
||||||
"ja": "Ja",
|
"ja": "Ja",
|
||||||
"pickkontdat": "KontDat Auswählen",
|
"pickkontdat": "Datum Kontrolle",
|
||||||
"pickabbaudat": "Abbau datum Auswählen",
|
"pickabbaudat": "Datum Abbau",
|
||||||
"platzung": "Platzung",
|
"platzung": "Platzierung",
|
||||||
"sommerzeit": "sommerzeit",
|
"zeiteinstellung": "Zeiteinstellung",
|
||||||
"auftrag": "Auftrag",
|
"auftrag": "Auftrag",
|
||||||
"absprachen": "Absprachen",
|
"absprachen": "Absprachen",
|
||||||
"sonstbemerkungen": "Sonstige Bemerkungen",
|
"sonstbemerkungen": "Sonstige Bemerkungen",
|
||||||
@@ -49,29 +50,29 @@
|
|||||||
"fkontakt2": "FKontakt 2",
|
"fkontakt2": "FKontakt 2",
|
||||||
"fkontakt3": "FKontakt 3",
|
"fkontakt3": "FKontakt 3",
|
||||||
"hofgarten": "Hof/Garten",
|
"hofgarten": "Hof/Garten",
|
||||||
"altstort": "AltStOrt",
|
"altstort": "Alter Standort",
|
||||||
"wiesefeld": "Wiese/Feld/offenfläche",
|
"wiesefeld": "Wiese/Feld/offenfläche",
|
||||||
"ausvon": "Aus von",
|
"ausvon": "Aus von",
|
||||||
"nichts": "Nichts",
|
"nichts": "---",
|
||||||
"ausbis": "Aus Bis",
|
"ausbis": "Aus Bis",
|
||||||
"ktage1": "KTage 1",
|
"ktage1": "KTage 1",
|
||||||
"ktage2": "KTage 2",
|
"ktage2": "KTage 2",
|
||||||
"eugrid": "EUGrid",
|
"eugrid": "EUGrid",
|
||||||
"pickDate": "Datum Auswählen",
|
"pickDate": "Datum Aufstelung",
|
||||||
"pickTime": "Zeit Auswählen",
|
"pickTime": "Zeit auswählen",
|
||||||
"delAll": "Alle Kameras löschen",
|
"delAll": "Alle Kameras löschen",
|
||||||
"fieldEmpty": "Folgendes Felde ist leer:",
|
"fieldEmpty": "Folgendes Feld ist leer:",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
"template": "Als Vorlage speichern",
|
"template": "Als Vorlage speichern",
|
||||||
"openMap": "Karte öffnen",
|
"openMap": "Karte öffnen",
|
||||||
"saveMap": "Speichern und Schleßen",
|
"saveMap": "Speichern und Schließen",
|
||||||
"locationDisabled": "Standort ausgeschaltet. Bitte einschalten",
|
"locationDisabled": "Standort ausgeschaltet. Bitte einschalten",
|
||||||
"locationForbidden": "Zugriff auf Standort verweigert. Es ist empfohlen dies zu erlauben",
|
"locationForbidden": "Zugriff auf Standort verweigert. Es ist empfohlen dies zu erlauben",
|
||||||
"map": "Karte",
|
"map": "Karte",
|
||||||
"markerSet": "Marker gesetzt auf",
|
"markerSet": "Marker gesetzt auf",
|
||||||
"kontsum": "Kontrollsumme",
|
"kontsum": "Kontrollsumme",
|
||||||
"bearsafe": "Bärensafe",
|
"bearsafe": "Bearsafe",
|
||||||
"sttyp": "STTyp",
|
"sttyp": "Status",
|
||||||
"ort": "Ort",
|
"ort": "Ort",
|
||||||
"continueB": "Weiter",
|
"continueB": "Weiter",
|
||||||
"settings": "Einstellungen",
|
"settings": "Einstellungen",
|
||||||
|
|||||||
@@ -132,14 +132,14 @@
|
|||||||
"description": "film radiobutton"
|
"description": "film radiobutton"
|
||||||
},
|
},
|
||||||
|
|
||||||
"mez": "MEZ",
|
"sommerzeit": "Summertime",
|
||||||
"@mez": {
|
"@sommerzeit": {
|
||||||
"description": "mez radiobutton"
|
"description": "summertime radiobutton"
|
||||||
},
|
},
|
||||||
|
|
||||||
"unklar": "unclear",
|
"winterzeit": "winterzeit",
|
||||||
"@unklar": {
|
"@winterzeit": {
|
||||||
"description": "unclear radiobutton"
|
"description": "winterzeit radiobutton"
|
||||||
},
|
},
|
||||||
|
|
||||||
"kirrung": "Kirrung",
|
"kirrung": "Kirrung",
|
||||||
@@ -197,9 +197,14 @@
|
|||||||
"description": "platzung header"
|
"description": "platzung header"
|
||||||
},
|
},
|
||||||
|
|
||||||
"sommerzeit": "Summertime",
|
"zeiteinstellung": "Timesetting",
|
||||||
"@sommerzeit": {
|
"@zeiteinstellung": {
|
||||||
"description": "mez summertime header"
|
"description": "summertime header"
|
||||||
|
},
|
||||||
|
|
||||||
|
"kontakt": "Contact",
|
||||||
|
"@kontakt": {
|
||||||
|
"description": "contact header"
|
||||||
},
|
},
|
||||||
|
|
||||||
"auftrag": "Order",
|
"auftrag": "Order",
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class MyApp extends StatelessWidget {
|
|||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
title: 'FFOrte',
|
title: 'FFOrte',
|
||||||
theme:
|
theme:
|
||||||
FlexThemeData.light(scheme: FlexScheme.greenM3, useMaterial3: true),
|
FlexThemeData.light(scheme: FlexScheme.gold, useMaterial3: true),
|
||||||
darkTheme:
|
darkTheme:
|
||||||
FlexThemeData.dark(scheme: FlexScheme.greenM3, useMaterial3: true),
|
FlexThemeData.dark(scheme: FlexScheme.greenM3, useMaterial3: true),
|
||||||
themeMode: ThemeMode.system,
|
themeMode: ThemeMode.system,
|
||||||
|
|||||||
@@ -47,6 +47,11 @@ class _SettingsState extends State<Settings> {
|
|||||||
await prefs.setString('nameVorname', nameVornameC.text);
|
await prefs.setString('nameVorname', nameVornameC.text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _saveBLand() async {
|
||||||
|
final SharedPreferences prefs = await SharedPreferences.getInstance();
|
||||||
|
await prefs.setString('bLand', bLandC.text);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@@ -95,6 +100,7 @@ class _SettingsState extends State<Settings> {
|
|||||||
child: const Icon(Icons.save),
|
child: const Icon(Icons.save),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
_saveName();
|
_saveName();
|
||||||
|
_saveBLand();
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ class _ViewCamsState extends State<ViewCams> {
|
|||||||
Map<String, dynamic> place =
|
Map<String, dynamic> place =
|
||||||
snapshot.data![index];
|
snapshot.data![index];
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text('Place ${index + 1}'),
|
title: Text('Standort ${index + 1}'),
|
||||||
subtitle: Text(
|
subtitle: Text(
|
||||||
'ID: ${place['CID']} DATUM: ${place['Datum']}'),
|
'ID: ${place['CID']} DATUM: ${place['Datum']}'),
|
||||||
trailing: Checkbox(
|
trailing: Checkbox(
|
||||||
@@ -199,7 +199,7 @@ class _ViewCamsState extends State<ViewCams> {
|
|||||||
Text(
|
Text(
|
||||||
'${AppLocalizations.of(context)!.ausbis}: ${place['AusBis']}'),
|
'${AppLocalizations.of(context)!.ausbis}: ${place['AusBis']}'),
|
||||||
Text(
|
Text(
|
||||||
'${AppLocalizations.of(context)!.mez}: ${place['MEZ']}'),
|
'${AppLocalizations.of(context)!.sommerzeit}: ${place['MEZ']}'),
|
||||||
Text(
|
Text(
|
||||||
'${AppLocalizations.of(context)!.kontsum}: ${place['KontSum']}'),
|
'${AppLocalizations.of(context)!.kontsum}: ${place['KontSum']}'),
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
18
pubspec.lock
18
pubspec.lock
@@ -238,13 +238,13 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.2"
|
version: "0.2.2"
|
||||||
http:
|
http:
|
||||||
dependency: transitive
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: http
|
name: http
|
||||||
sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba
|
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.2.0"
|
version: "1.2.1"
|
||||||
http_parser:
|
http_parser:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -481,10 +481,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: shared_preferences_web
|
name: shared_preferences_web
|
||||||
sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21"
|
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.2.2"
|
version: "2.3.0"
|
||||||
shared_preferences_windows:
|
shared_preferences_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -622,10 +622,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: web
|
name: web
|
||||||
sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
|
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.3.0"
|
version: "0.5.1"
|
||||||
win32:
|
win32:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@@ -651,5 +651,5 @@ packages:
|
|||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.4"
|
version: "1.0.4"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=3.2.0 <4.0.0"
|
dart: ">=3.3.0 <4.0.0"
|
||||||
flutter: ">=3.16.0"
|
flutter: ">=3.19.0"
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ dependencies:
|
|||||||
shared_preferences: ^2.2.2
|
shared_preferences: ^2.2.2
|
||||||
flutter_file_dialog: ^3.0.2
|
flutter_file_dialog: ^3.0.2
|
||||||
file_picker: ^6.2.0
|
file_picker: ^6.2.0
|
||||||
|
http: ^1.2.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_lints: ^3.0.1
|
flutter_lints: ^3.0.1
|
||||||
|
|||||||
6
time.txt
6
time.txt
@@ -21,7 +21,7 @@
|
|||||||
18 dez 2h
|
18 dez 2h
|
||||||
20 dez 15 min
|
20 dez 15 min
|
||||||
21 dez 1h 45 min
|
21 dez 1h 45 min
|
||||||
24 jan 1 20 min
|
24 jan 1h 20 min
|
||||||
25 jan 30 min
|
25 jan 30 min
|
||||||
26 jan 1h 10 min
|
26 jan 1h 10 min
|
||||||
31 jan 1h 10 min
|
31 jan 1h 10 min
|
||||||
@@ -37,4 +37,6 @@
|
|||||||
26 feb 1h 30 min
|
26 feb 1h 30 min
|
||||||
27 feb 1h 10 min
|
27 feb 1h 10 min
|
||||||
2 mär 1h 30 min
|
2 mär 1h 30 min
|
||||||
7 mär 1h
|
7 mär 1h
|
||||||
|
|
||||||
|
- abgerechnet -
|
||||||
Reference in New Issue
Block a user