diff --git a/Todo.txt b/Todo.txt index 41f9a78..ad21d9b 100644 --- a/Todo.txt +++ b/Todo.txt @@ -1,4 +1,5 @@ todo: +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 @@ -8,8 +9,7 @@ fehler beim speichern anzeigen nach koordinaten lkr auswählen (esri-leaflet-geocoder) fix ktage und nebeneinander positioniere textdateien auch an server senden -ausvon und ausbis fixen (falsches datum übergeben (20000-01-01)) - +error check wenn dateiauswahl abgebrochen wurde einfügen keine ahnung obs funktioniert: eintrg in db wenn http response (in sent column) diff --git a/lib/addCam/add_cam_main.dart b/lib/addCam/add_cam_main.dart index 67c1586..f0c7424 100644 --- a/lib/addCam/add_cam_main.dart +++ b/lib/addCam/add_cam_main.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'package:fforte/addCam/cam_widgets.dart'; -import 'package:fforte/db_helper.dart'; +import 'package:fforte/other/db_helper.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; diff --git a/lib/addCam/cam_widgets.dart b/lib/addCam/cam_widgets.dart index e2ba9aa..85ffb14 100644 --- a/lib/addCam/cam_widgets.dart +++ b/lib/addCam/cam_widgets.dart @@ -1,5 +1,5 @@ // ignore_for_file: non_constant_identifier_names -import 'package:fforte/db_helper.dart'; +import 'package:fforte/other/db_helper.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_map/flutter_map.dart'; diff --git a/lib/home.dart b/lib/home.dart index 28a70d0..446d9ad 100644 --- a/lib/home.dart +++ b/lib/home.dart @@ -47,7 +47,7 @@ class HomePage extends StatelessWidget { child: Text(AppLocalizations.of(context)!.addplace)), ElevatedButton(onPressed: () => Navigator.pushNamed(context, '/viewCams'), child: Text(AppLocalizations.of(context)!.viewplaces)), - + ElevatedButton(onPressed: () {}, child: Text(AppLocalizations.of(context)!.sendfile)) ], )), ], diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 3b7fef4..b50ef71 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -84,5 +84,7 @@ "filelocation": "Ort der zuletzt gespeicherten Datei:", "open": "öffnen", "date": "Datum", - "location": "Standort" + "location": "Standort", + "sendfile": "Datei zum Server schicken", + "pickfile": "Datei auswählen" } \ No newline at end of file diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index d0ac05c..013b9f0 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -407,6 +407,16 @@ "location": "Location", "@location": { "description": "Location text" + }, + + "sendfile": "Send file to server", + "@sendfile": { + "description": "Send file to server button" + }, + + "pickfile": "Pick file", + "@pickfile": { + "description": "Pick file button" } } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index d04bed3..74436fa 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,6 @@ import 'package:fforte/addCam/add_cam_main.dart'; -import 'package:fforte/intro_screen.dart'; -import 'package:fforte/settings.dart'; +import 'package:fforte/other/intro_screen.dart'; +import 'package:fforte/other/settings.dart'; import 'package:fforte/viewCam/view_cams.dart'; import 'package:flutter/material.dart'; import 'package:flex_color_scheme/flex_color_scheme.dart'; diff --git a/lib/db_helper.dart b/lib/other/db_helper.dart similarity index 100% rename from lib/db_helper.dart rename to lib/other/db_helper.dart diff --git a/lib/intro_screen.dart b/lib/other/intro_screen.dart similarity index 100% rename from lib/intro_screen.dart rename to lib/other/intro_screen.dart diff --git a/lib/other/send_file.dart b/lib/other/send_file.dart new file mode 100644 index 0000000..6c3ea13 --- /dev/null +++ b/lib/other/send_file.dart @@ -0,0 +1,71 @@ +import 'dart:convert'; + +import 'package:dio/dio.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'dart:io'; +import 'package:file_picker/file_picker.dart'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class SendFile extends StatefulWidget { + const SendFile({super.key}); + + @override + State createState() => _SendFileState(); +} + +class _SendFileState extends State { + File? pickedFile; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(), + body: Column( + children: [ + ElevatedButton( + onPressed: () async { + FilePickerResult? result = + await FilePicker.platform.pickFiles(); + + if (result != null) { + pickedFile = File(result.files.single.path!); + } else { + pickedFile = File(""); + } + }, + child: Text(AppLocalizations.of(context)!.pickfile)), + Text(pickedFile.toString()), + ElevatedButton( + onPressed: () async { + final dio = Dio(); + final SharedPreferences prefs = + await SharedPreferences.getInstance(); + String? fileContent = await pickedFile?.readAsString(); + + dio.options.responseType = ResponseType.plain; + Response response = Response( + requestOptions: RequestOptions(path: ''), statusCode: 400); + + try { + response = await dio.post(prefs.getString('apiAddress') ?? "", + data: jsonEncode(fileContent)); + } on DioException catch (e) { + if (e.response?.statusCode == 500) { +/* print('-------------------------'); + print('code 500'); */ + return; + } + } + if (response.statusCode == 201) { + // print(response.statusCode); + } else { + //print(response.statusCode); + } + }, + child: Text(AppLocalizations.of(context)!.sendtoserver)) + ], + ), + ); + } +} diff --git a/lib/settings.dart b/lib/other/settings.dart similarity index 100% rename from lib/settings.dart rename to lib/other/settings.dart diff --git a/lib/viewCam/view_cams.dart b/lib/viewCam/view_cams.dart index 709344e..d82e605 100644 --- a/lib/viewCam/view_cams.dart +++ b/lib/viewCam/view_cams.dart @@ -1,5 +1,5 @@ import 'package:fforte/addCam/add_cam_main.dart'; -import 'package:fforte/db_helper.dart'; +import 'package:fforte/other/db_helper.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_popup_card/flutter_popup_card.dart'; diff --git a/time.txt b/time.txt index 29fcf7f..0e9a590 100644 --- a/time.txt +++ b/time.txt @@ -45,4 +45,5 @@ 20 mär 6h 15 min 21 mär 4h 15 min 23 mär 2h 15 min -24 mär 1h \ No newline at end of file +24 mär 1h +26 mär beginn 10:20 \ No newline at end of file