From 4591297e56525368db07e83f8bad52e7f531bc46 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Wed, 25 Jun 2014 11:00:10 +0200 Subject: [PATCH] SortBox: use POST instead of GET This avoids trouble with complex filter URLs fixes #6556 --- library/Icinga/Web/Widget/SortBox.php | 2 +- .../application/controllers/ListController.php | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/library/Icinga/Web/Widget/SortBox.php b/library/Icinga/Web/Widget/SortBox.php index f98173136..06210676e 100644 --- a/library/Icinga/Web/Widget/SortBox.php +++ b/library/Icinga/Web/Widget/SortBox.php @@ -138,7 +138,7 @@ class SortBox extends AbstractWidget { $form = new Form(); $form->setAttrib('class', 'inline'); - $form->setMethod('GET'); + $form->setMethod('POST'); $form->setTokenDisabled(); $form->setName($this->name); $form->addElement('select', 'sort', array( diff --git a/modules/monitoring/application/controllers/ListController.php b/modules/monitoring/application/controllers/ListController.php index 0491d900e..cba841db0 100644 --- a/modules/monitoring/application/controllers/ListController.php +++ b/modules/monitoring/application/controllers/ListController.php @@ -446,10 +446,18 @@ class Monitoring_ListController extends Controller protected function applyFilters($query) { $params = clone $this->params; + $request = $this->getRequest(); $limit = $params->shift('limit'); - $sort = $params->shift('sort'); - $dir = $params->shift('dir'); + + $sort = null; + $dir = null; + if ($request->isPost()) { + $sort = $request->getPost('sort', null); + $dir = $request->getPost('dir', null); + } + $sort = $params->shift('sort', $sort); + $dir = $params->shift('dir', $dir); $page = $params->shift('page'); $format = $params->shift('format'); $view = $params->shift('view');