diff options
author | Simon Rettberg | 2020-04-20 11:49:17 +0200 |
---|---|---|
committer | Simon Rettberg | 2020-04-20 11:49:17 +0200 |
commit | 5eaa4292c6db2c1ee1282c938c899dc5b88db65f (patch) | |
tree | 137eaa063302b055ddec03e2c4c3ff5c084f11bf /modules-available/statistics/page.inc.php | |
parent | [serversetup-bwlp-ipxe] Fix: Imported PXELINUX entries are invalid (diff) | |
download | slx-admin-5eaa4292c6db2c1ee1282c938c899dc5b88db65f.tar.gz slx-admin-5eaa4292c6db2c1ee1282c938c899dc5b88db65f.tar.xz slx-admin-5eaa4292c6db2c1ee1282c938c899dc5b88db65f.zip |
[statistics] New filter UI
Diffstat (limited to 'modules-available/statistics/page.inc.php')
-rw-r--r-- | modules-available/statistics/page.inc.php | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/modules-available/statistics/page.inc.php b/modules-available/statistics/page.inc.php index 533a9bf9..deba6681 100644 --- a/modules-available/statistics/page.inc.php +++ b/modules-available/statistics/page.inc.php @@ -19,6 +19,7 @@ class Page_Statistics extends Page } if (Request::isGet()) { + $this->transformLegacyQuery(); $this->show = Request::any('show', false, 'string'); if ($this->show === false) { if (Request::get('uuid') !== false) { @@ -85,6 +86,27 @@ class Page_Statistics extends Page Util::redirect('?do=statistics'); } + private function transformLegacyQuery() + { + if (!Request::isGet()) + return; + $query = Request::get('filters', false, 'string'); + if ($query === false) + return; + foreach (explode(StatisticsFilter::LEGACY_DELIMITER, $query) as $q) { + if (!preg_match('/^\s*(\w+)\s*([<>=!~]{1,2})\s*(.*?)\s*$/', $q, $out)) + continue; + $key = $out[1]; + $_GET['filter'][$key] = '1'; + $_GET['op'][$key] = $out[2]; + $_GET['arg'][$key] = $out[3]; + } + unset($_GET['filters']); + if (!empty($_GET['filter'])) { + Util::redirect('?' . http_build_query($_GET)); + } + } + private function wol() { if (!Module::isAvailable('rebootcontrol')) @@ -201,7 +223,7 @@ class Page_Statistics extends Page $sortColumn = Request::any('sortColumn'); $sortDirection = Request::any('sortDirection'); - $filters = StatisticsFilter::parseQuery(StatisticsFilter::getQuery()); + $filters = StatisticsFilter::parseQuery(); $filterSet = new StatisticsFilterSet($filters); $filterSet->setSort($sortColumn, $sortDirection); |