Compare commits
2 Commits
cc4991e211
...
4a598d00d1
Author | SHA1 | Date | |
---|---|---|---|
4a598d00d1 | |||
78037ed74f |
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
@ -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,
|
||||
),
|
||||
|
Loading…
x
Reference in New Issue
Block a user