QuickSearch: add a trait for tables too

This commit is contained in:
Thomas Gelf 2017-06-14 13:40:43 +02:00
parent 9d3b1d1096
commit 7502706284
1 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,52 @@
<?php
namespace Icinga\Module\Director\Web\Table\Extension;
use ipl\Html\BaseElement;
use ipl\Html\Html;
use ipl\Web\Url;
trait QuickSearch
{
/** @var BaseElement */
private $quickSearchForm;
public function getQuickSearch(BaseElement $parent, Url $url)
{
$this->requireQuickSearchForm($parent, $url);
$search = $url->getParam('q');
return $search;
}
private function requireQuickSearchForm(BaseElement $parent, Url $url)
{
if ($this->quickSearchForm === null) {
$this->quickSearchForm = $this->buildQuickSearchForm($parent, $url);
}
}
private function buildQuickSearchForm(BaseElement $parent, Url $url)
{
$search = $url->getParam('q');
$form = Html::tag('form', [
'action' => $url->without(array('q', 'page', 'modifyFilter')),
'class' => ['quicksearch', 'inline'],
'method' => 'GET'
]);
$form->add(
Html::tag('input', [
'type' => 'text',
'name' => 'q',
'value' => $search,
'placeholder' => $this->translate('Search...'),
'class' => 'search'
])
);
$parent->prepend($form);
return $form;
}
}