diff --git a/library/Director/Web/Table/Extension/QuickSearch.php b/library/Director/Web/Table/Extension/QuickSearch.php new file mode 100644 index 00000000..36551a5c --- /dev/null +++ b/library/Director/Web/Table/Extension/QuickSearch.php @@ -0,0 +1,52 @@ +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; + } +}