Crossed out cancelled hours, implemented file uploading

This commit is contained in:
2023-05-23 21:12:56 +02:00
parent 047282c5aa
commit 06b7c18158
6 changed files with 208 additions and 104 deletions

View File

@ -5,9 +5,9 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:marianum_mobile/api/marianumcloud/webdav/queries/listFiles/cacheableFile.dart';
import 'package:marianum_mobile/screen/pages/files/fileUpload.dart';
import 'package:marianum_mobile/widget/errorView.dart';
import 'package:nextcloud/nextcloud.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:persistent_bottom_nav_bar/persistent_tab_view.dart';
import '../../../api/marianumcloud/webdav/queries/listFiles/listFilesCache.dart';
import '../../../api/marianumcloud/webdav/queries/listFiles/listFilesResponse.dart';
@ -77,7 +77,10 @@ class _FilesState extends State<Files> {
@override
void initState() {
super.initState();
_query();
}
void _query() {
ListFilesCache(
path: widget.path.isEmpty ? "/" : widget.path.join("/"),
onUpdate: (ListFilesResponse d) => {
@ -192,13 +195,19 @@ class _FilesState extends State<Files> {
child: const Icon(Icons.upload),
),
body: data == null ? const Center(child: CircularProgressIndicator()) : data!.files.isEmpty ? const ErrorView(icon: Icons.folder_off_rounded, text: "Der Ordner ist leer") : LoaderOverlay(
child: ListView.builder(
itemCount: files.length,
itemBuilder: (context, index) {
CacheableFile file = files.toList().skip(index).first;
return FileElement(file, widget.path);
child: RefreshIndicator(
onRefresh: () {
_query();
return Future.delayed(const Duration(seconds: 3));
},
),
child: ListView.builder(
itemCount: files.length,
itemBuilder: (context, index) {
CacheableFile file = files.toList().skip(index).first;
return FileElement(file, widget.path);
},
),
)
)
);
}
@ -209,26 +218,10 @@ class _FilesState extends State<Files> {
return;
}
SharedPreferences preferences = await SharedPreferences.getInstance();
WebDavClient client = NextcloudClient("https://cloud.marianum-fulda.de/", username: preferences.getString("username"), password: preferences.getString("password"), loginName: preferences.getString("username")).webdav;
log("UPLOAD STARTING: $path");
context.loaderOverlay.show();
File file = File(path);
var remotePath = "${widget.path.join("/")}/${file.path.split(Platform.pathSeparator).last}";
PersistentNavBarNavigator.pushNewScreen(context, screen: FileUpload(localPath: path, remotePath: remotePath), withNavBar: false);
showDialog(
context: context,
builder: (context) {
return SimpleDialog(
children: [
Image.memory(file.readAsBytesSync()),
],
);
},
);
client.upload(file.readAsBytesSync(), "/${file.path.split(Platform.pathSeparator).last}").then((value) {
log("UPLOADED ${value.statusCode}");
context.loaderOverlay.hide();
});
}
}