diff --git a/app/lib/disk_page.dart b/app/lib/disk_page.dart index dc39654..f0873a2 100644 --- a/app/lib/disk_page.dart +++ b/app/lib/disk_page.dart @@ -59,7 +59,7 @@ class _DiskPageState extends State { ), onTap: () { Provider.of(context, listen: false) - .pushPage(const DiskInfoPage(), data[idx].name); + .pushPage(DiskInfoPage(disk: data[idx]), data[idx].name); }, ); }, diff --git a/app/lib/types/disk.dart b/app/lib/types/disk.dart index a52d234..ad350a4 100644 --- a/app/lib/types/disk.dart +++ b/app/lib/types/disk.dart @@ -6,8 +6,9 @@ part 'disk.g.dart'; class Disk { String name; int size; + List mountpoints; - Disk(this.name, this.size); + Disk(this.name, this.size, this.mountpoints); factory Disk.fromJson(Map json) => _$DiskFromJson(json); Map toJson() => _$DiskToJson(this); } diff --git a/app/lib/types/disk.g.dart b/app/lib/types/disk.g.dart index 40c5a42..5da0bea 100644 --- a/app/lib/types/disk.g.dart +++ b/app/lib/types/disk.g.dart @@ -9,9 +9,11 @@ part of 'disk.dart'; Disk _$DiskFromJson(Map json) => Disk( json['name'] as String, json['size'] as int, + (json['mountpoints'] as List).map((e) => e as String).toList(), ); Map _$DiskToJson(Disk instance) => { 'name': instance.name, 'size': instance.size, + 'mountpoints': instance.mountpoints, }; diff --git a/app/lib/utils/disk_info_page.dart b/app/lib/utils/disk_info_page.dart index bbd0253..4bf6687 100644 --- a/app/lib/utils/disk_info_page.dart +++ b/app/lib/utils/disk_info_page.dart @@ -1,10 +1,13 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:raid_manager/utils/file_formatter.dart'; import '../breadcrumb_page/breadcrumb_controller.dart'; +import '../types/disk.dart'; class DiskInfoPage extends StatefulWidget { - const DiskInfoPage({Key? key}) : super(key: key); + const DiskInfoPage({Key? key, required this.disk}) : super(key: key); + final Disk disk; @override State createState() => _DiskInfoPageState(); @@ -14,8 +17,14 @@ class _DiskInfoPageState extends State { @override Widget build(BuildContext context) { return Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text("Mysupercool page"), + Text("Name:",style: Theme.of(context).textTheme.labelMedium), + Text(widget.disk.name,style: Theme.of(context).textTheme.labelMedium), + Text("Size:",style: Theme.of(context).textTheme.labelMedium), + Text(widget.disk.size.readableFileSize(),style: Theme.of(context).textTheme.labelMedium), + Text("Mountpoints:",style: Theme.of(context).textTheme.labelMedium), + Text(widget.disk.mountpoints.toString(),style: Theme.of(context).textTheme.labelMedium), TextButton( onPressed: () { Provider.of(context, listen: false) diff --git a/lib/src/parser/lsblk_parser.rs b/lib/src/parser/lsblk_parser.rs index 0fd12a1..acd75cb 100644 --- a/lib/src/parser/lsblk_parser.rs +++ b/lib/src/parser/lsblk_parser.rs @@ -186,6 +186,6 @@ mod tests { {"name":"/dev/nvme0n1", "maj:min":"259:0", "rm":false, "size":1000204886016, "ro":false, "type":"disk", "mountpoint":"/media/hdd3"} ] } - "#.to_string())).to_string(), r#"[{"name":"/dev/sda","size":120034123776},{"name":"/dev/sdb","size":3000592982016},{"name":"/dev/sdc","size":3000592982016},{"name":"/dev/sdd","size":4000787030016},{"name":"/dev/sde","size":240057409536},{"name":"/dev/sdf","size":120034123776},{"name":"/dev/sdg","size":3000592982016},{"name":"/dev/nvme0n1","size":1000204886016}]"#); + "#.to_string())).to_string(), r#"[{"mountpoints":[],"name":"/dev/sda","size":120034123776},{"mountpoints":[],"name":"/dev/sdb","size":3000592982016},{"mountpoints":[],"name":"/dev/sdc","size":3000592982016},{"mountpoints":[],"name":"/dev/sdd","size":4000787030016},{"mountpoints":["/media/hdd1"],"name":"/dev/sde","size":240057409536},{"mountpoints":["/media/hdd2"],"name":"/dev/sdf","size":120034123776},{"mountpoints":[],"name":"/dev/sdg","size":3000592982016},{"mountpoints":["/media/hdd3"],"name":"/dev/nvme0n1","size":1000204886016}]"#); } }