summaryrefslogtreecommitdiffstats
path: root/modules-available/statistics/page.inc.php
diff options
context:
space:
mode:
authorSimon Rettberg2020-04-20 11:49:17 +0200
committerSimon Rettberg2020-04-20 11:49:17 +0200
commit5eaa4292c6db2c1ee1282c938c899dc5b88db65f (patch)
tree137eaa063302b055ddec03e2c4c3ff5c084f11bf /modules-available/statistics/page.inc.php
parent[serversetup-bwlp-ipxe] Fix: Imported PXELINUX entries are invalid (diff)
downloadslx-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.php24
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);