diff options
Diffstat (limited to 'modules-available/statistics/page.inc.php')
-rw-r--r-- | modules-available/statistics/page.inc.php | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/modules-available/statistics/page.inc.php b/modules-available/statistics/page.inc.php index d26649b6..baddd093 100644 --- a/modules-available/statistics/page.inc.php +++ b/modules-available/statistics/page.inc.php @@ -251,11 +251,24 @@ class Page_Statistics extends Page { if (!User::load()) return; - if (Request::any('action') === 'bios') { + $action = Request::any('action'); + if ($action === 'bios') { require_once 'modules/statistics/pages/machine.inc.php'; SubPage::ajaxCheckBios(); return; } + if ($action === 'json-lookup') { + $reply = []; + foreach (Request::post('list', [], 'array') as $item) { + $name = PciId::getPciId(PciId::AUTO, $item, true); + if ($name === false) { + $name = '?????'; + } + $reply[$item] = $name; + } + header('Content-Type: application/json'); + die(json_encode($reply)); + } $param = Request::any('lookup', false, 'string'); if ($param === false) { @@ -263,16 +276,9 @@ class Page_Statistics extends Page } $add = ''; if (preg_match('/^([a-f0-9]{4}):([a-f0-9]{4})$/', $param, $out)) { - $cat = 'DEVICE'; $add = ' (' . $param . ')'; - } elseif (preg_match('/^([a-f0-9]{4})$/', $param, $out)) { - $cat = 'VENDOR'; - } elseif (preg_match('/^c\.([a-f0-9]{2})([a-f0-9]{2})$/', $param, $out)) { - $cat = 'CLASS'; - } else { - die('Invalid format requested'); } - $cached = PciId::getPciId($cat, $param, true); + $cached = PciId::getPciId(PciId::AUTO, $param, true); if ($cached === false) { $cached = 'Unknown'; } |