mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
Merge branch 'main' of github.com:lollipopkit/flutter_server_box
This commit is contained in:
@@ -65,14 +65,18 @@ class BackupPage extends StatelessWidget {
|
||||
trailing: const Icon(Icons.save),
|
||||
onTap: () async {
|
||||
final path = await Backup.backup();
|
||||
debugPrint("Backup path: $path");
|
||||
|
||||
/// Issue #188
|
||||
final _ = switch (Pfs.type) {
|
||||
Pfs.windows =>
|
||||
await Process.run('explorer', ['/select,', path]),
|
||||
Pfs.linux => await Process.run('xdg-open', [path]),
|
||||
_ => await Pfs.sharePath(path),
|
||||
};
|
||||
switch (Pfs.type) {
|
||||
case Pfs.windows:
|
||||
final backslashPath = path.replaceAll('/', '\\');
|
||||
await Process.run('explorer', ['/select,$backslashPath']);
|
||||
case Pfs.linux:
|
||||
await Process.run('xdg-open', [path]);
|
||||
default:
|
||||
await Pfs.sharePath(path);
|
||||
}
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
@@ -263,6 +267,7 @@ class BackupPage extends StatelessWidget {
|
||||
|
||||
Future<void> _onTapWebdavDl(BuildContext context) async {
|
||||
webdavLoading.value = true;
|
||||
try {
|
||||
final files = await Webdav.list();
|
||||
if (files.isEmpty) {
|
||||
context.showSnackBar(l10n.dirEmpty);
|
||||
@@ -308,20 +313,34 @@ class BackupPage extends StatelessWidget {
|
||||
final dlBak = await Computer.shared.start(Backup.fromJsonString, dlFile);
|
||||
await dlBak.restore(force: true);
|
||||
webdavLoading.value = false;
|
||||
} catch (e) {
|
||||
context.showSnackBar(e.toString());
|
||||
rethrow;
|
||||
} finally {
|
||||
webdavLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onTapWebdavUp(BuildContext context) async {
|
||||
try {
|
||||
webdavLoading.value = true;
|
||||
final bakName = '${DateTime.now().ymdhms()}-${Paths.bakName}';
|
||||
final bakName =
|
||||
'${DateTime.now().ymdhms(ymdSep: "-", hmsSep: "-", sep: "-")}-${Paths.bakName}';
|
||||
await Backup.backup(bakName);
|
||||
final uploadResult = await Webdav.upload(relativePath: bakName);
|
||||
if (uploadResult != null) {
|
||||
Loggers.app.warning('Upload webdav backup failed: $uploadResult');
|
||||
context.showSnackBar(uploadResult.toString());
|
||||
} else {
|
||||
Loggers.app.info('Upload webdav backup success');
|
||||
}
|
||||
} catch (e) {
|
||||
context.showSnackBar(e.toString());
|
||||
rethrow;
|
||||
} finally {
|
||||
webdavLoading.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onTapWebdavSetting(BuildContext context) async {
|
||||
final urlCtrl = TextEditingController(
|
||||
|
||||
@@ -25,7 +25,7 @@ final class _AppBar extends CustomAppBar {
|
||||
return ValBuilder(
|
||||
listenable: selectIndex,
|
||||
builder: (idx) {
|
||||
if (idx == AppTab.ssh.index) return placeholder;
|
||||
if (idx == AppTab.ssh.index && !isWindows && !isLinux) return placeholder;
|
||||
return super.build(context);
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user