Compare commits

...

2 Commits

Author SHA1 Message Date
4a598d00d1 fix
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good
2025-03-02 17:59:09 -06:00
78037ed74f added mount support 2025-03-02 17:56:22 -06:00
3 changed files with 27 additions and 20 deletions

View File

@ -210,12 +210,16 @@ void handlers::handle_get_mount_status(auto &&req, auto &&res) const {
void handlers::handle_post_mount(auto &&req, auto &&res) const {
auto type = req.get_param_value("type");
auto name = req.get_param_value("name");
auto location = utils::path::absolute(req.get_param_value("location"));
auto unmount = utils::string::to_bool(req.get_param_value("unmount"));
auto prov = provider_type_from_string(type);
if (unmount) {
read_process(prov, name, "-unmount");
} else {
read_process(prov, name, fmt::format("\"{}\"", location));
}
res.status = http_error_codes::ok;
}

View File

@ -48,11 +48,11 @@ class Mount with ChangeNotifier {
notifyListeners();
}
Future<void> mount(bool unmount) async {
Future<void> mount(bool unmount, {String? location}) async {
await http.post(
Uri.parse(
Uri.encodeFull(
'${Uri.base.origin}/api/v1/mount?unmount=$unmount&name=$name&type=$type',
'${Uri.base.origin}/api/v1/mount?unmount=$unmount&name=$name&type=$type&location=$location',
),
),
);
@ -76,4 +76,8 @@ class Mount with ChangeNotifier {
return refresh();
}
Future<String?> getMountLocation() async {
return "~/mnt/encrypt";
}
}

View File

@ -65,30 +65,29 @@ class _MountWidgetState extends State<MountWidget> {
),
onPressed:
_enabled
? () {
? () async {
setState(() {
_enabled = false;
});
if (isActive) {
mount
.mount(isActive)
.then((_) {
setState(() {
_enabled = true;
});
})
.catchError((_) {
setState(() {
_enabled = true;
});
});
return;
String? location;
if (!isActive) {
location = await mount.getMountLocation();
if (location == null) {}
}
setState(() {
_enabled = true;
});
mount
.mount(isActive, location: location)
.then((_) {
setState(() {
_enabled = true;
});
})
.catchError((_) {
setState(() {
_enabled = true;
});
});
}
: null,
),