From 6dfc6ddb3b404f7c3d48e36c3c1e6fd9a63c22bf Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 14 Mar 2022 12:17:22 +0100 Subject: [passthrough] Redesign list; collapse non-VGA classes by default --- modules-available/passthrough/page.inc.php | 8 +- .../passthrough/templates/hardware-list.html | 129 ++++++++++++--------- 2 files changed, 76 insertions(+), 61 deletions(-) (limited to 'modules-available/passthrough') diff --git a/modules-available/passthrough/page.inc.php b/modules-available/passthrough/page.inc.php index 2db2525e..de63673a 100644 --- a/modules-available/passthrough/page.inc.php +++ b/modules-available/passthrough/page.inc.php @@ -128,14 +128,16 @@ class Page_Passthrough extends Page if ($row['class'] !== $lastClass) { // Add class row header $lastClass = $row['class']; - $finalRows[] = [ + $finalRows[$lastClass] = [ + 'collapse' => $row['class'] !== '0300', 'class' => $row['class'], 'class_name' => PciId::getPciId(PciId::DEVCLASS, $row['class'], true) ?: 'Unknown', + 'devlist' => [], ]; } $row['vendor_name'] = PciId::getPciId(PciId::VENDOR, $row['vendor'] ?? ''); $row['device_name'] = PciId::getPciId(PciId::DEVICE, $row['vendor'] . ':' . $row['device']); - $finalRows[] = $row; + $finalRows[$lastClass]['devlist'][] = $row; // Build up query if ($row['vendor_name'] === false) { $missing[$row['vendor']] = true; @@ -144,7 +146,7 @@ class Page_Passthrough extends Page $missing[$row['vendor'] . ':' . $row['device']] = true; } } - Render::addTemplate('hardware-list', ['list' => $finalRows]); + Render::addTemplate('hardware-list', ['classlist' => array_values($finalRows)]); if (!empty($missing)) { Render::addTemplate('js-pciquery', ['missing_ids' => json_encode(array_keys($missing))], 'statistics'); diff --git a/modules-available/passthrough/templates/hardware-list.html b/modules-available/passthrough/templates/hardware-list.html index 720427fd..b00baea7 100644 --- a/modules-available/passthrough/templates/hardware-list.html +++ b/modules-available/passthrough/templates/hardware-list.html @@ -1,63 +1,74 @@
- - - - - - - - - - - {{#list}} - - {{#class_name}} - - {{/class_name}} - {{^class_name}} - - - - - {{/class_name}} - - {{/list}} - -
{{lang_deviceIdNumeric}}{{lang_deviceName}}{{lang_useCount}}{{lang_passthroughGroup}}
+ {{#classlist}} +
+
+ {{#collapse}} + + + {{/collapse}} {{class}}{{class_name}} -
{{vendor}}:{{device}} [{{rev}}] - + {{#collapse}} + + {{/collapse}} + +
+
+ - + + + + + + + {{#devlist}} + + + + + + + {{/devlist}} +
- {{device_name}} - {{lang_deviceIdNumeric}}{{lang_deviceName}}{{lang_useCount}}{{lang_passthroughGroup}}
{{vendor}}:{{device}} [{{rev}}] + + + + +
+ {{device_name}} +
+
+ {{vendor_name}} +
+
{{connected_count}} + +
-
- {{vendor_name}} -
-
{{connected_count}} - -
-
-
-
- - +
+ {{/classlist}} +
+
+
+
+ +
+